From ed42ee063641c81fd46913c7314514d3083f7feb Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Thu, 4 Apr 2019 09:35:06 -0700 Subject: [PATCH 01/13] Initial vendoring mock-up --- azext/batch/_file_utils.py | 46 +- azext/batch/_template_utils.py | 4 +- azext/batch/_vendor/README.md | 19 + .../batch/_vendor/v4/azext/batch/__init__.py | 4 + .../_vendor/v4/azext/batch/_file_utils.py | 352 + .../_vendor/v4/azext/batch/_pool_utils.py | 28 + .../_vendor/v4/azext/batch/_template_utils.py | 1202 ++ azext/batch/_vendor/v4/azext/batch/errors.py | 25 + .../_vendor/v4/azext/batch/models/__init__.py | 111 + .../batch/models/application_template.py | 109 + .../batch/models/application_template_info.py | 46 + .../models/application_template_info_py3.py | 46 + .../batch/models/application_template_py3.py | 111 + .../batch/models/apt_package_reference.py | 33 + .../batch/models/apt_package_reference_py3.py | 33 + .../batch/models/auto_pool_specification.py | 59 + .../models/auto_pool_specification_py3.py | 60 + .../models/chocolatey_package_reference.py | 37 + .../chocolatey_package_reference_py3.py | 37 + .../v4/azext/batch/models/constants.py | 65 + .../batch/models/extended_job_parameter.py | 151 + .../models/extended_job_parameter_py3.py | 170 + .../extended_output_file_destination.py | 33 + .../extended_output_file_destination_py3.py | 33 + .../batch/models/extended_pool_parameter.py | 185 + .../models/extended_pool_parameter_py3.py | 214 + .../models/extended_pool_specification.py | 179 + .../models/extended_pool_specification_py3.py | 206 + .../batch/models/extended_resource_file.py | 47 + .../models/extended_resource_file_py3.py | 52 + .../batch/models/extended_task_parameter.py | 147 + .../models/extended_task_parameter_py3.py | 168 + .../models/file_collection_task_factory.py | 40 + .../file_collection_task_factory_py3.py | 41 + .../v4/azext/batch/models/file_source.py | 32 + .../v4/azext/batch/models/file_source_py3.py | 33 + .../v4/azext/batch/models/job_manager_task.py | 167 + .../batch/models/job_manager_task_py3.py | 171 + .../batch/models/job_preparation_task.py | 127 + .../batch/models/job_preparation_task_py3.py | 129 + .../v4/azext/batch/models/job_release_task.py | 111 + .../batch/models/job_release_task_py3.py | 113 + .../v4/azext/batch/models/job_template.py | 37 + .../v4/azext/batch/models/job_template_py3.py | 37 + .../v4/azext/batch/models/merge_task.py | 130 + .../v4/azext/batch/models/merge_task_py3.py | 133 + .../batch/models/multi_instance_settings.py | 48 + .../models/multi_instance_settings_py3.py | 49 + .../v4/azext/batch/models/output_file.py | 56 + .../output_file_auto_storage_destination.py | 33 + ...utput_file_auto_storage_destination_py3.py | 33 + .../v4/azext/batch/models/output_file_py3.py | 56 + .../batch/models/package_reference_base.py | 41 + .../models/package_reference_base_py3.py | 41 + .../v4/azext/batch/models/parameter_set.py | 45 + .../azext/batch/models/parameter_set_py3.py | 45 + .../models/parametric_sweep_task_factory.py | 43 + .../parametric_sweep_task_factory_py3.py | 43 + .../v4/azext/batch/models/pool_template.py | 37 + .../azext/batch/models/pool_template_py3.py | 37 + .../v4/azext/batch/models/repeat_task.py | 117 + .../v4/azext/batch/models/repeat_task_py3.py | 121 + .../v4/azext/batch/models/start_task.py | 87 + .../v4/azext/batch/models/start_task_py3.py | 88 + .../models/task_collection_task_factory.py | 31 + .../task_collection_task_factory_py3.py | 31 + .../azext/batch/models/task_factory_base.py | 36 + .../batch/models/task_factory_base_py3.py | 36 + .../batch/models/yum_package_reference.py | 38 + .../batch/models/yum_package_reference_py3.py | 37 + .../batch/_vendor/v4/azure/batch/__init__.py | 10 + .../_vendor/v4/azure/batch/models/__init__.py | 721 + .../account_list_node_agent_skus_options.py | 57 + ...ccount_list_node_agent_skus_options_py3.py | 57 + .../account_list_pool_node_counts_options.py | 57 + ...count_list_pool_node_counts_options_py3.py | 57 + .../batch/models/affinity_information.py | 40 + .../batch/models/affinity_information_py3.py | 40 + .../batch/models/application_get_options.py | 46 + .../models/application_get_options_py3.py | 46 + .../batch/models/application_list_options.py | 51 + .../models/application_list_options_py3.py | 51 + .../models/application_package_reference.py | 43 + .../application_package_reference_py3.py | 43 + .../azure/batch/models/application_summary.py | 46 + .../batch/models/application_summary_paged.py | 27 + .../batch/models/application_summary_py3.py | 46 + .../models/authentication_token_settings.py | 33 + .../authentication_token_settings_py3.py | 33 + .../batch/models/auto_pool_specification.py | 58 + .../models/auto_pool_specification_py3.py | 58 + .../v4/azure/batch/models/auto_scale_run.py | 46 + .../batch/models/auto_scale_run_error.py | 40 + .../batch/models/auto_scale_run_error_py3.py | 40 + .../azure/batch/models/auto_scale_run_py3.py | 46 + .../batch/models/auto_user_specification.py | 35 + .../models/auto_user_specification_py3.py | 35 + .../v4/azure/batch/models/batch_error.py | 52 + .../azure/batch/models/batch_error_detail.py | 33 + .../batch/models/batch_error_detail_py3.py | 33 + .../v4/azure/batch/models/batch_error_py3.py | 52 + .../models/batch_service_client_enums.py | 277 + .../v4/azure/batch/models/certificate.py | 71 + .../batch/models/certificate_add_options.py | 46 + .../models/certificate_add_options_py3.py | 46 + .../batch/models/certificate_add_parameter.py | 60 + .../models/certificate_add_parameter_py3.py | 60 + .../certificate_cancel_deletion_options.py | 46 + ...certificate_cancel_deletion_options_py3.py | 46 + .../models/certificate_delete_options.py | 46 + .../models/certificate_delete_options_py3.py | 46 + .../batch/models/certificate_get_options.py | 50 + .../models/certificate_get_options_py3.py | 50 + .../batch/models/certificate_list_options.py | 61 + .../models/certificate_list_options_py3.py | 61 + .../azure/batch/models/certificate_paged.py | 27 + .../v4/azure/batch/models/certificate_py3.py | 71 + .../batch/models/certificate_reference.py | 70 + .../batch/models/certificate_reference_py3.py | 70 + .../v4/azure/batch/models/cloud_job.py | 158 + .../v4/azure/batch/models/cloud_job_paged.py | 27 + .../v4/azure/batch/models/cloud_job_py3.py | 158 + .../azure/batch/models/cloud_job_schedule.py | 107 + .../batch/models/cloud_job_schedule_paged.py | 27 + .../batch/models/cloud_job_schedule_py3.py | 107 + .../v4/azure/batch/models/cloud_pool.py | 237 + .../v4/azure/batch/models/cloud_pool_paged.py | 27 + .../v4/azure/batch/models/cloud_pool_py3.py | 237 + .../models/cloud_service_configuration.py | 61 + .../models/cloud_service_configuration_py3.py | 61 + .../v4/azure/batch/models/cloud_task.py | 208 + .../models/cloud_task_list_subtasks_result.py | 28 + .../cloud_task_list_subtasks_result_py3.py | 28 + .../v4/azure/batch/models/cloud_task_paged.py | 27 + .../v4/azure/batch/models/cloud_task_py3.py | 208 + .../v4/azure/batch/models/compute_node.py | 155 + .../models/compute_node_add_user_options.py | 46 + .../compute_node_add_user_options_py3.py | 46 + .../compute_node_delete_user_options.py | 46 + .../compute_node_delete_user_options_py3.py | 46 + ...compute_node_disable_scheduling_options.py | 46 + ...ute_node_disable_scheduling_options_py3.py | 46 + .../compute_node_enable_scheduling_options.py | 46 + ...pute_node_enable_scheduling_options_py3.py | 46 + .../compute_node_endpoint_configuration.py | 35 + ...compute_node_endpoint_configuration_py3.py | 35 + .../azure/batch/models/compute_node_error.py | 39 + .../batch/models/compute_node_error_py3.py | 39 + .../batch/models/compute_node_get_options.py | 50 + .../models/compute_node_get_options_py3.py | 50 + ...compute_node_get_remote_desktop_options.py | 46 + ...ute_node_get_remote_desktop_options_py3.py | 46 + ..._node_get_remote_login_settings_options.py | 46 + ...e_get_remote_login_settings_options_py3.py | 46 + ...e_node_get_remote_login_settings_result.py | 41 + ...de_get_remote_login_settings_result_py3.py | 41 + .../batch/models/compute_node_information.py | 52 + .../models/compute_node_information_py3.py | 52 + .../batch/models/compute_node_list_options.py | 61 + .../models/compute_node_list_options_py3.py | 61 + .../azure/batch/models/compute_node_paged.py | 27 + .../v4/azure/batch/models/compute_node_py3.py | 155 + .../models/compute_node_reboot_options.py | 46 + .../models/compute_node_reboot_options_py3.py | 46 + .../models/compute_node_reimage_options.py | 46 + .../compute_node_reimage_options_py3.py | 46 + .../compute_node_update_user_options.py | 46 + .../compute_node_update_user_options_py3.py | 46 + ..._node_upload_batch_service_logs_options.py | 46 + ...e_upload_batch_service_logs_options_py3.py | 46 + .../azure/batch/models/compute_node_user.py | 62 + .../batch/models/compute_node_user_py3.py | 62 + .../batch/models/container_configuration.py | 53 + .../models/container_configuration_py3.py | 53 + .../azure/batch/models/container_registry.py | 44 + .../batch/models/container_registry_py3.py | 44 + .../v4/azure/batch/models/data_disk.py | 56 + .../v4/azure/batch/models/data_disk_py3.py | 56 + .../batch/models/delete_certificate_error.py | 42 + .../models/delete_certificate_error_py3.py | 42 + .../azure/batch/models/environment_setting.py | 38 + .../batch/models/environment_setting_py3.py | 38 + .../v4/azure/batch/models/error_message.py | 32 + .../azure/batch/models/error_message_py3.py | 32 + .../azure/batch/models/exit_code_mapping.py | 41 + .../batch/models/exit_code_mapping_py3.py | 41 + .../batch/models/exit_code_range_mapping.py | 46 + .../models/exit_code_range_mapping_py3.py | 46 + .../v4/azure/batch/models/exit_conditions.py | 57 + .../azure/batch/models/exit_conditions_py3.py | 57 + .../v4/azure/batch/models/exit_options.py | 47 + .../v4/azure/batch/models/exit_options_py3.py | 47 + .../file_delete_from_compute_node_options.py | 46 + ...le_delete_from_compute_node_options_py3.py | 46 + .../models/file_delete_from_task_options.py | 46 + .../file_delete_from_task_options_py3.py | 46 + .../file_get_from_compute_node_options.py | 64 + .../file_get_from_compute_node_options_py3.py | 64 + .../models/file_get_from_task_options.py | 64 + .../models/file_get_from_task_options_py3.py | 64 + ...et_properties_from_compute_node_options.py | 59 + ...roperties_from_compute_node_options_py3.py | 59 + .../file_get_properties_from_task_options.py | 59 + ...le_get_properties_from_task_options_py3.py | 59 + .../file_list_from_compute_node_options.py | 57 + ...file_list_from_compute_node_options_py3.py | 57 + .../models/file_list_from_task_options.py | 57 + .../models/file_list_from_task_options_py3.py | 57 + .../v4/azure/batch/models/file_properties.py | 54 + .../azure/batch/models/file_properties_py3.py | 54 + .../v4/azure/batch/models/image_reference.py | 60 + .../azure/batch/models/image_reference_py3.py | 60 + .../v4/azure/batch/models/inbound_endpoint.py | 62 + .../batch/models/inbound_endpoint_py3.py | 62 + .../v4/azure/batch/models/inbound_nat_pool.py | 86 + .../batch/models/inbound_nat_pool_py3.py | 86 + .../v4/azure/batch/models/job_add_options.py | 46 + .../azure/batch/models/job_add_options_py3.py | 46 + .../azure/batch/models/job_add_parameter.py | 134 + .../batch/models/job_add_parameter_py3.py | 134 + .../v4/azure/batch/models/job_constraints.py | 45 + .../azure/batch/models/job_constraints_py3.py | 45 + .../azure/batch/models/job_delete_options.py | 73 + .../batch/models/job_delete_options_py3.py | 73 + .../azure/batch/models/job_disable_options.py | 73 + .../batch/models/job_disable_options_py3.py | 73 + .../batch/models/job_disable_parameter.py | 35 + .../batch/models/job_disable_parameter_py3.py | 35 + .../azure/batch/models/job_enable_options.py | 73 + .../batch/models/job_enable_options_py3.py | 73 + .../batch/models/job_execution_information.py | 73 + .../models/job_execution_information_py3.py | 73 + ...job_get_all_lifetime_statistics_options.py | 46 + ...get_all_lifetime_statistics_options_py3.py | 46 + .../v4/azure/batch/models/job_get_options.py | 81 + .../azure/batch/models/job_get_options_py3.py | 81 + .../models/job_get_task_counts_options.py | 46 + .../models/job_get_task_counts_options_py3.py | 46 + .../job_list_from_job_schedule_options.py | 65 + .../job_list_from_job_schedule_options_py3.py | 65 + .../v4/azure/batch/models/job_list_options.py | 65 + .../batch/models/job_list_options_py3.py | 65 + ...aration_and_release_task_status_options.py | 62 + ...ion_and_release_task_status_options_py3.py | 62 + .../v4/azure/batch/models/job_manager_task.py | 182 + .../batch/models/job_manager_task_py3.py | 182 + .../azure/batch/models/job_patch_options.py | 73 + .../batch/models/job_patch_options_py3.py | 73 + .../azure/batch/models/job_patch_parameter.py | 61 + .../batch/models/job_patch_parameter_py3.py | 61 + ..._and_release_task_execution_information.py | 50 + ...elease_task_execution_information_paged.py | 27 + ..._release_task_execution_information_py3.py | 50 + .../batch/models/job_preparation_task.py | 146 + ..._preparation_task_execution_information.py | 111 + ...paration_task_execution_information_py3.py | 111 + .../batch/models/job_preparation_task_py3.py | 146 + .../v4/azure/batch/models/job_release_task.py | 121 + .../job_release_task_execution_information.py | 89 + ..._release_task_execution_information_py3.py | 89 + .../batch/models/job_release_task_py3.py | 121 + .../batch/models/job_schedule_add_options.py | 46 + .../models/job_schedule_add_options_py3.py | 46 + .../models/job_schedule_add_parameter.py | 63 + .../models/job_schedule_add_parameter_py3.py | 63 + .../models/job_schedule_delete_options.py | 73 + .../models/job_schedule_delete_options_py3.py | 73 + .../models/job_schedule_disable_options.py | 73 + .../job_schedule_disable_options_py3.py | 73 + .../models/job_schedule_enable_options.py | 73 + .../models/job_schedule_enable_options_py3.py | 73 + .../job_schedule_execution_information.py | 44 + .../job_schedule_execution_information_py3.py | 44 + .../models/job_schedule_exists_options.py | 73 + .../models/job_schedule_exists_options_py3.py | 73 + .../batch/models/job_schedule_get_options.py | 81 + .../models/job_schedule_get_options_py3.py | 81 + .../batch/models/job_schedule_list_options.py | 65 + .../models/job_schedule_list_options_py3.py | 65 + .../models/job_schedule_patch_options.py | 73 + .../models/job_schedule_patch_options_py3.py | 73 + .../models/job_schedule_patch_parameter.py | 42 + .../job_schedule_patch_parameter_py3.py | 42 + .../batch/models/job_schedule_statistics.py | 126 + .../models/job_schedule_statistics_py3.py | 126 + .../models/job_schedule_terminate_options.py | 73 + .../job_schedule_terminate_options_py3.py | 73 + .../models/job_schedule_update_options.py | 73 + .../models/job_schedule_update_options_py3.py | 73 + .../models/job_schedule_update_parameter.py | 51 + .../job_schedule_update_parameter_py3.py | 51 + .../batch/models/job_scheduling_error.py | 50 + .../batch/models/job_scheduling_error_py3.py | 50 + .../azure/batch/models/job_specification.py | 125 + .../batch/models/job_specification_py3.py | 125 + .../v4/azure/batch/models/job_statistics.py | 123 + .../azure/batch/models/job_statistics_py3.py | 123 + .../batch/models/job_terminate_options.py | 73 + .../batch/models/job_terminate_options_py3.py | 73 + .../batch/models/job_terminate_parameter.py | 29 + .../models/job_terminate_parameter_py3.py | 29 + .../azure/batch/models/job_update_options.py | 73 + .../batch/models/job_update_options_py3.py | 73 + .../batch/models/job_update_parameter.py | 72 + .../batch/models/job_update_parameter_py3.py | 72 + .../batch/models/linux_user_configuration.py | 47 + .../models/linux_user_configuration_py3.py | 47 + .../v4/azure/batch/models/metadata_item.py | 42 + .../azure/batch/models/metadata_item_py3.py | 42 + .../batch/models/multi_instance_settings.py | 60 + .../models/multi_instance_settings_py3.py | 60 + .../v4/azure/batch/models/name_value_pair.py | 32 + .../azure/batch/models/name_value_pair_py3.py | 32 + .../batch/models/network_configuration.py | 60 + .../batch/models/network_configuration_py3.py | 60 + .../models/network_security_group_rule.py | 55 + .../models/network_security_group_rule_py3.py | 55 + .../batch/models/node_agent_information.py | 47 + .../models/node_agent_information_py3.py | 47 + .../v4/azure/batch/models/node_agent_sku.py | 45 + .../batch/models/node_agent_sku_paged.py | 27 + .../azure/batch/models/node_agent_sku_py3.py | 45 + .../v4/azure/batch/models/node_counts.py | 102 + .../v4/azure/batch/models/node_counts_py3.py | 102 + .../node_disable_scheduling_parameter.py | 32 + .../node_disable_scheduling_parameter_py3.py | 32 + .../v4/azure/batch/models/node_file.py | 40 + .../v4/azure/batch/models/node_file_paged.py | 27 + .../v4/azure/batch/models/node_file_py3.py | 40 + .../batch/models/node_reboot_parameter.py | 31 + .../batch/models/node_reboot_parameter_py3.py | 31 + .../batch/models/node_reimage_parameter.py | 31 + .../models/node_reimage_parameter_py3.py | 31 + .../batch/models/node_remove_parameter.py | 51 + .../batch/models/node_remove_parameter_py3.py | 51 + .../models/node_update_user_parameter.py | 48 + .../models/node_update_user_parameter_py3.py | 48 + .../_vendor/v4/azure/batch/models/os_disk.py | 32 + .../v4/azure/batch/models/os_disk_py3.py | 32 + .../v4/azure/batch/models/output_file.py | 63 + .../output_file_blob_container_destination.py | 47 + ...put_file_blob_container_destination_py3.py | 47 + .../batch/models/output_file_destination.py | 29 + .../models/output_file_destination_py3.py | 29 + .../v4/azure/batch/models/output_file_py3.py | 63 + .../models/output_file_upload_options.py | 39 + .../models/output_file_upload_options_py3.py | 39 + .../v4/azure/batch/models/pool_add_options.py | 46 + .../batch/models/pool_add_options_py3.py | 46 + .../azure/batch/models/pool_add_parameter.py | 197 + .../batch/models/pool_add_parameter_py3.py | 197 + .../azure/batch/models/pool_delete_options.py | 73 + .../batch/models/pool_delete_options_py3.py | 73 + .../models/pool_disable_auto_scale_options.py | 46 + .../pool_disable_auto_scale_options_py3.py | 46 + .../models/pool_enable_auto_scale_options.py | 73 + .../pool_enable_auto_scale_options_py3.py | 73 + .../pool_enable_auto_scale_parameter.py | 47 + .../pool_enable_auto_scale_parameter_py3.py | 47 + .../models/pool_endpoint_configuration.py | 38 + .../models/pool_endpoint_configuration_py3.py | 38 + .../pool_evaluate_auto_scale_options.py | 46 + .../pool_evaluate_auto_scale_options_py3.py | 46 + .../pool_evaluate_auto_scale_parameter.py | 40 + .../pool_evaluate_auto_scale_parameter_py3.py | 40 + .../azure/batch/models/pool_exists_options.py | 73 + .../batch/models/pool_exists_options_py3.py | 73 + ...ool_get_all_lifetime_statistics_options.py | 46 + ...get_all_lifetime_statistics_options_py3.py | 46 + .../v4/azure/batch/models/pool_get_options.py | 81 + .../batch/models/pool_get_options_py3.py | 81 + .../v4/azure/batch/models/pool_information.py | 47 + .../batch/models/pool_information_py3.py | 47 + .../azure/batch/models/pool_list_options.py | 65 + .../batch/models/pool_list_options_py3.py | 65 + .../models/pool_list_usage_metrics_options.py | 71 + .../pool_list_usage_metrics_options_py3.py | 71 + .../v4/azure/batch/models/pool_node_counts.py | 42 + .../batch/models/pool_node_counts_paged.py | 27 + .../batch/models/pool_node_counts_py3.py | 42 + .../azure/batch/models/pool_patch_options.py | 73 + .../batch/models/pool_patch_options_py3.py | 73 + .../batch/models/pool_patch_parameter.py | 66 + .../batch/models/pool_patch_parameter_py3.py | 66 + .../batch/models/pool_remove_nodes_options.py | 73 + .../models/pool_remove_nodes_options_py3.py | 73 + .../azure/batch/models/pool_resize_options.py | 73 + .../batch/models/pool_resize_options_py3.py | 73 + .../batch/models/pool_resize_parameter.py | 50 + .../batch/models/pool_resize_parameter_py3.py | 50 + .../azure/batch/models/pool_specification.py | 186 + .../batch/models/pool_specification_py3.py | 186 + .../v4/azure/batch/models/pool_statistics.py | 58 + .../azure/batch/models/pool_statistics_py3.py | 58 + .../batch/models/pool_stop_resize_options.py | 73 + .../models/pool_stop_resize_options_py3.py | 73 + .../models/pool_update_properties_options.py | 46 + .../pool_update_properties_options_py3.py | 46 + .../pool_update_properties_parameter.py | 74 + .../pool_update_properties_parameter_py3.py | 74 + .../batch/models/pool_upgrade_os_options.py | 73 + .../models/pool_upgrade_os_options_py3.py | 73 + .../batch/models/pool_upgrade_os_parameter.py | 35 + .../models/pool_upgrade_os_parameter_py3.py | 35 + .../azure/batch/models/pool_usage_metrics.py | 74 + .../batch/models/pool_usage_metrics_paged.py | 27 + .../batch/models/pool_usage_metrics_py3.py | 74 + .../v4/azure/batch/models/recent_job.py | 32 + .../v4/azure/batch/models/recent_job_py3.py | 32 + .../v4/azure/batch/models/resize_error.py | 39 + .../v4/azure/batch/models/resize_error_py3.py | 39 + .../v4/azure/batch/models/resource_file.py | 53 + .../azure/batch/models/resource_file_py3.py | 53 + .../azure/batch/models/resource_statistics.py | 108 + .../batch/models/resource_statistics_py3.py | 108 + .../_vendor/v4/azure/batch/models/schedule.py | 74 + .../v4/azure/batch/models/schedule_py3.py | 74 + .../v4/azure/batch/models/start_task.py | 110 + .../batch/models/start_task_information.py | 99 + .../models/start_task_information_py3.py | 99 + .../v4/azure/batch/models/start_task_py3.py | 110 + .../azure/batch/models/subtask_information.py | 97 + .../batch/models/subtask_information_py3.py | 97 + .../models/task_add_collection_options.py | 46 + .../models/task_add_collection_options_py3.py | 46 + .../models/task_add_collection_parameter.py | 38 + .../task_add_collection_parameter_py3.py | 38 + .../models/task_add_collection_result.py | 28 + .../models/task_add_collection_result_py3.py | 28 + .../v4/azure/batch/models/task_add_options.py | 46 + .../batch/models/task_add_options_py3.py | 46 + .../azure/batch/models/task_add_parameter.py | 167 + .../batch/models/task_add_parameter_py3.py | 167 + .../v4/azure/batch/models/task_add_result.py | 60 + .../azure/batch/models/task_add_result_py3.py | 60 + .../v4/azure/batch/models/task_constraints.py | 53 + .../batch/models/task_constraints_py3.py | 53 + .../task_container_execution_information.py | 40 + ...ask_container_execution_information_py3.py | 40 + .../batch/models/task_container_settings.py | 48 + .../models/task_container_settings_py3.py | 48 + .../v4/azure/batch/models/task_counts.py | 57 + .../v4/azure/batch/models/task_counts_py3.py | 57 + .../azure/batch/models/task_delete_options.py | 73 + .../batch/models/task_delete_options_py3.py | 73 + .../azure/batch/models/task_dependencies.py | 42 + .../batch/models/task_dependencies_py3.py | 42 + .../models/task_execution_information.py | 109 + .../models/task_execution_information_py3.py | 109 + .../batch/models/task_failure_information.py | 49 + .../models/task_failure_information_py3.py | 49 + .../v4/azure/batch/models/task_get_options.py | 81 + .../batch/models/task_get_options_py3.py | 81 + .../v4/azure/batch/models/task_id_range.py | 44 + .../azure/batch/models/task_id_range_py3.py | 44 + .../v4/azure/batch/models/task_information.py | 56 + .../batch/models/task_information_py3.py | 56 + .../azure/batch/models/task_list_options.py | 65 + .../batch/models/task_list_options_py3.py | 65 + .../models/task_list_subtasks_options.py | 50 + .../models/task_list_subtasks_options_py3.py | 50 + .../batch/models/task_reactivate_options.py | 73 + .../models/task_reactivate_options_py3.py | 73 + .../batch/models/task_scheduling_policy.py | 35 + .../models/task_scheduling_policy_py3.py | 35 + .../v4/azure/batch/models/task_statistics.py | 100 + .../azure/batch/models/task_statistics_py3.py | 100 + .../batch/models/task_terminate_options.py | 73 + .../models/task_terminate_options_py3.py | 73 + .../azure/batch/models/task_update_options.py | 73 + .../batch/models/task_update_options_py3.py | 73 + .../batch/models/task_update_parameter.py | 30 + .../batch/models/task_update_parameter_py3.py | 30 + ...upload_batch_service_logs_configuration.py | 59 + ...ad_batch_service_logs_configuration_py3.py | 59 + .../upload_batch_service_logs_result.py | 45 + .../upload_batch_service_logs_result_py3.py | 45 + .../v4/azure/batch/models/usage_statistics.py | 48 + .../batch/models/usage_statistics_py3.py | 48 + .../v4/azure/batch/models/user_account.py | 51 + .../v4/azure/batch/models/user_account_py3.py | 51 + .../v4/azure/batch/models/user_identity.py | 41 + .../azure/batch/models/user_identity_py3.py | 41 + .../models/virtual_machine_configuration.py | 92 + .../virtual_machine_configuration_py3.py | 92 + .../batch/models/windows_configuration.py | 29 + .../batch/models/windows_configuration_py3.py | 29 + azext/batch/models/constants.py | 17 +- azext/batch/operations/job_operations.py | 203 +- azext/batch/operations/pool_operations.py | 189 +- tests/data/batch.job.resourcefile-legacy.json | 4 +- ...batch.pool.simple.resourcefile-legacy.json | 64 +- .../test_batch_extensions_live.yaml | 13566 ++++------------ tests/test_live.py | 4 +- 494 files changed, 36843 insertions(+), 10610 deletions(-) create mode 100644 azext/batch/_vendor/README.md create mode 100644 azext/batch/_vendor/v4/azext/batch/__init__.py create mode 100644 azext/batch/_vendor/v4/azext/batch/_file_utils.py create mode 100644 azext/batch/_vendor/v4/azext/batch/_pool_utils.py create mode 100644 azext/batch/_vendor/v4/azext/batch/_template_utils.py create mode 100644 azext/batch/_vendor/v4/azext/batch/errors.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/__init__.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/application_template.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/application_template_info.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/application_template_info_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/application_template_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/apt_package_reference.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/apt_package_reference_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/constants.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_resource_file.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_resource_file_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/file_source.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/file_source_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_manager_task.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_manager_task_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_preparation_task.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_preparation_task_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_release_task.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_release_task_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_template.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/job_template_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/merge_task.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/merge_task_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/output_file.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/output_file_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/package_reference_base.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/package_reference_base_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/parameter_set.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/parameter_set_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/pool_template.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/pool_template_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/repeat_task.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/repeat_task_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/start_task.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/start_task_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/task_factory_base.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/task_factory_base_py3.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/yum_package_reference.py create mode 100644 azext/batch/_vendor/v4/azext/batch/models/yum_package_reference_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/__init__.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/__init__.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/affinity_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/affinity_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_package_reference.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_package_reference_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_summary.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_summary_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/application_summary_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_scale_run.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_user_specification.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/auto_user_specification_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/batch_error.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/batch_error_detail.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/batch_error_detail_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/batch_error_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/batch_service_client_enums.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_add_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_add_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_reference.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/certificate_reference_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_job.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_job_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_job_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_pool.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_pool_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_pool_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_task.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_task_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/cloud_task_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_error.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_error_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_user.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/compute_node_user_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/container_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/container_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/container_registry.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/container_registry_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/data_disk.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/data_disk_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/environment_setting.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/environment_setting_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/error_message.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/error_message_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_conditions.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_conditions_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/exit_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_properties.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/file_properties_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/image_reference.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/image_reference_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_add_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_add_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_add_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_add_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_constraints.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_constraints_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_delete_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_delete_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_disable_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_disable_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_enable_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_enable_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_manager_task.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_manager_task_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_patch_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_patch_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_task.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_release_task.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_release_task_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_specification.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_specification_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_statistics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_statistics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_terminate_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_terminate_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_update_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_update_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_update_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/job_update_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/metadata_item.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/metadata_item_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/name_value_pair.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/name_value_pair_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/network_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/network_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_agent_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_agent_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_agent_sku.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_counts.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_counts_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_file.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_file_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_file_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/os_disk.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/os_disk_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_destination.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_destination_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_add_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_add_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_delete_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_delete_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_exists_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_exists_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_node_counts.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_patch_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_patch_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_resize_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_resize_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_specification.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_specification_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_statistics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_statistics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_paged.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/recent_job.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/recent_job_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/resize_error.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/resize_error_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/resource_file.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/resource_file_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/resource_statistics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/resource_statistics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/schedule.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/schedule_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/start_task.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/start_task_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/start_task_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/start_task_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/subtask_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/subtask_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_result.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_add_result_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_constraints.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_constraints_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_container_settings.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_container_settings_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_counts.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_counts_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_delete_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_delete_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_dependencies.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_dependencies_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_execution_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_execution_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_failure_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_failure_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_get_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_get_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_id_range.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_id_range_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_information.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_information_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_list_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_list_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_statistics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_statistics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_terminate_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_terminate_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_update_options.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_update_options_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_update_parameter.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/task_update_parameter_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/usage_statistics.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/usage_statistics_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/user_account.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/user_account_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/user_identity.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/user_identity_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration_py3.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/windows_configuration.py create mode 100644 azext/batch/_vendor/v4/azure/batch/models/windows_configuration_py3.py diff --git a/azext/batch/_file_utils.py b/azext/batch/_file_utils.py index b1376276..d3bc7b44 100644 --- a/azext/batch/_file_utils.py +++ b/azext/batch/_file_utils.py @@ -320,36 +320,24 @@ def get_container_list(self, source): def resolve_resource_file(self, resource_file): """Convert new resourceFile reference to server-supported reference""" - if resource_file.http_url: - # Support original resourceFile reference - if not resource_file.file_path: - raise ValueError('Malformed ResourceFile: \'httpUrl\' must ' - 'also have \'file_path\' attribute') - return [resource_file] - - if resource_file.storage_container_url or resource_file.auto_storage_container_name: - return [resource_file] - - if not hasattr(resource_file, 'source') or not resource_file.source: - raise ValueError('Malformed ResourceFile: Must have either ' - ' \'source\' or \'httpUrl\'') - storage_client = self.resolve_storage_account() container = None blobs = [] + if hasattr(resource_file, 'source') and resource_file.source: + if resource_file.source.file_group: + # Input data stored in auto-storage + container = get_container_name(resource_file.source.file_group) + blobs = self.list_container_contents(resource_file.source, container, storage_client) + return convert_blobs_to_resource_files(blobs, resource_file) + if resource_file.source.container_url: + # Input data storage in arbitrary container + uri = urlsplit(resource_file.source.container_url) + container = uri.pathname.split('/')[1] + blobs = self.list_container_contents(resource_file.source, container, storage_client) + return convert_blobs_to_resource_files(blobs, resource_file) + if resource_file.source.url: + # TODO: Input data from an arbitrary HTTP GET source + raise ValueError('Not implemented') + + return [resource_file] - if resource_file.source.file_group: - # Input data stored in auto-storage - container = get_container_name(resource_file.source.file_group) - blobs = self.list_container_contents(resource_file.source, container, storage_client) - return convert_blobs_to_resource_files(blobs, resource_file) - if resource_file.source.container_url: - # Input data storage in arbitrary container - uri = urlsplit(resource_file.source.container_url) - container = uri.pathname.split('/')[1] - blobs = self.list_container_contents(resource_file.source, container, storage_client) - return convert_blobs_to_resource_files(blobs, resource_file) - if resource_file.source.url: - # TODO: Input data from an arbitrary HTTP GET source - raise ValueError('Not implemented') - raise ValueError('Malformed ResourceFile') diff --git a/azext/batch/_template_utils.py b/azext/batch/_template_utils.py index d72774bf..8d9e46c5 100644 --- a/azext/batch/_template_utils.py +++ b/azext/batch/_template_utils.py @@ -9,7 +9,7 @@ import copy import itertools import json -from logging import getLogger +import logging import re from msrest.serialization import Model try: @@ -21,7 +21,7 @@ from . import _pool_utils as pool_utils from . import models -logger = getLogger(__name__) +logger = logging.getLogger(__name__) try: _UNICODE_TYPE = unicode except NameError: diff --git a/azext/batch/_vendor/README.md b/azext/batch/_vendor/README.md new file mode 100644 index 00000000..5abebd7c --- /dev/null +++ b/azext/batch/_vendor/README.md @@ -0,0 +1,19 @@ +# Batch CLI Vendoring + +For each breaking change, to support back comparability we will need to vendor +our last SDK and SDK Extension. This allows us to serialize/deserialize to that +versions models as well as maintain any templating policies which were in place. + +To vendor the previous SDK: +* pip download -r azure-batch-extensions==x.x.x +* Delete all dependencies/files other than: + * azext/batch/models + * azext/batch/init.py + * azext/batch/_file_utils.py + * azext/batch/_pool_utils.py + * azext/batch/_template_utils.py + * azext/batch/errors.py + * azure/batch/models + * azext/batch/init.py +* Update azext\batch\models\constants.py SupportedRestApi variables to include +details on API version \ No newline at end of file diff --git a/azext/batch/_vendor/v4/azext/batch/__init__.py b/azext/batch/_vendor/v4/azext/batch/__init__.py new file mode 100644 index 00000000..34913fb3 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/__init__.py @@ -0,0 +1,4 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- diff --git a/azext/batch/_vendor/v4/azext/batch/_file_utils.py b/azext/batch/_vendor/v4/azext/batch/_file_utils.py new file mode 100644 index 00000000..aad31a45 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/_file_utils.py @@ -0,0 +1,352 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from __future__ import unicode_literals + +import os +import re +import hashlib +import datetime +import copy +import pathlib +from six.moves.urllib.parse import urlsplit # pylint: disable=import-error,relative-import +from six.moves.urllib.parse import quote # pylint: disable=import-error,no-name-in-module,relative-import + +from azure.storage.blob import BlobPermissions, BlockBlobService +from . import models + + +def construct_sas_url(blob, uri): + """Make up blob URL with container URL""" + newuri = copy.copy(uri) + newuri.pathname = '{}/{}'.format(uri.path, quote(blob.name.encode('utf-8'))) + return newuri.geturl() + + +def convert_blobs_to_resource_files(blobs, resource_properties): + """Convert a list of blobs to a list of ResourceFiles""" + resource_files = [] + if not blobs: + raise ValueError('No input data found with reference {}'. + format(resource_properties.source.prefix)) + try: + prefix = resource_properties.source.prefix + except AttributeError: + prefix = None + if len(blobs) == 1 and blobs[0]['filePath'] == prefix: + # Single file reference: filePath should be treated as file path + file_path = resource_properties.file_path if resource_properties.file_path \ + else blobs[0]['filePath'] + resource_files.append(models.ExtendedResourceFile( + blob_source=blobs[0]['url'], + file_path=file_path, + )) + else: + # Multiple file reference: filePath should be treated as a directory + base_file_path = '' + if resource_properties.file_path: + base_file_path = '{}/'.format( + FileUtils.STRIP_PATH.sub('', resource_properties.file_path)) + + for blob in blobs: + file_path = '{}{}'.format(base_file_path, blob['filePath']) + resource_files.append(models.ExtendedResourceFile( + blob_source=blob['url'], + file_path=file_path + )) + + # Add filemode to every resourceFile + if resource_properties.file_mode: + for f in resource_files: + f.file_mode = resource_properties.file_mode + return resource_files + + +def resolve_file_paths(local_path): + """Generate list of files to upload and the relative directory""" + local_path = os.path.abspath(local_path) + files = [] + if local_path.find('*') > -1: + # Supplied path is a pattern - relative directory will be the + # path up to the first wildcard + ref_dir_str = local_path.split('*')[0].rstrip('/\\') + if not os.path.isdir(ref_dir_str): + ref_dir_str = os.path.dirname(ref_dir_str) + ref_dir = pathlib.Path(ref_dir_str) + pattern = local_path[len(ref_dir_str + os.pathsep):] + files = [str(f) for f in ref_dir.glob(pattern) if f.is_file()] + local_path = ref_dir_str + else: + if os.path.isdir(local_path): + # Supplied path is a directory + files = [os.path.join(local_path, f) for f in os.listdir(local_path) + if os.path.isfile(os.path.join(local_path, f))] + elif os.path.isfile(local_path): + # Supplied path is a file + files.append(local_path) + local_path = os.path.dirname(local_path) + return local_path, files + + +def resolve_remote_paths(blob_service, file_group, remote_path): + blobs = blob_service.list_blobs(get_container_name(file_group), prefix=remote_path) + return list(blobs) + + +def generate_container_name(file_group): + """Generate valid container name from file group name.""" + file_group = file_group.lower() + # Check for any chars that aren't 'a-z', '0-9' or '-' + valid_chars = r'^[a-z0-9][-a-z0-9]*$' + # Replace any underscores or double-hyphens with single hyphen + underscores_and_hyphens = r'[_-]+' + + clean_group = re.sub(underscores_and_hyphens, '-', file_group) + clean_group = clean_group.rstrip('-') + if not re.match(valid_chars, clean_group): + raise ValueError('File group name \'{}\' contains illegal characters. ' + 'File group names only support alphanumeric characters, ' + 'underscores and hyphens.'.format(file_group)) + + if clean_group == file_group and len(file_group) <= FileUtils.MAX_GROUP_LENGTH: + # If specified group name is clean, no need to add hash + return file_group + # If we had to transform the group name, add hash of original name + hash_str = hashlib.sha1(file_group.encode()).hexdigest() + new_group = '{}-{}'.format(clean_group, hash_str) + if len(new_group) > FileUtils.MAX_GROUP_LENGTH: + return '{}-{}'.format(clean_group[0:15], hash_str) + return new_group + + +def get_container_name(file_group): + """Get valid container name from file group name with prefix.""" + return '{}{}'.format(FileUtils.GROUP_PREFIX, generate_container_name(file_group)) + + +def generate_blob_sas_token(blob, container, blob_service, permission=BlobPermissions.READ): + """Generate a blob URL with SAS token.""" + sas_token = blob_service.generate_blob_shared_access_signature( + container, blob.name, + permission=permission, + start=datetime.datetime.utcnow() - datetime.timedelta(minutes=15), + expiry=datetime.datetime.utcnow() + datetime.timedelta(days=FileUtils.SAS_EXPIRY_DAYS)) + return blob_service.make_blob_url(container, quote(blob.name.encode('utf-8')), sas_token=sas_token) + + +def generate_container_sas_token(container, blob_service, permission=BlobPermissions.WRITE): + """Generate a container URL with SAS token.""" + blob_service.create_container(container) + sas_token = blob_service.generate_container_shared_access_signature( + container, + permission=permission, + start=datetime.datetime.utcnow() - datetime.timedelta(minutes=15), + expiry=datetime.datetime.utcnow() + datetime.timedelta(days=FileUtils.SAS_EXPIRY_DAYS)) + url = '{}://{}/{}?{}'.format( + blob_service.protocol, + blob_service.primary_endpoint, + container, + sas_token) + return url + + +def download_blob(blob, file_group, destination, blob_service, progress_callback): + """Download the specified file to the specified container""" + + def _wrap_callback(curr, total): + if progress_callback: + progress_callback(curr, total, destination) + + blob_service.get_blob_to_path( + get_container_name(file_group), blob, destination, + progress_callback=_wrap_callback) + + +def upload_blob(source, destination, file_name, # pylint: disable=too-many-arguments + blob_service, remote_path=None, flatten=None, progress_callback=None): + """Upload the specified file to the specified container""" + + def _wrap_callback(curr, total): + if progress_callback: + progress_callback(curr, total, file_name) + + if not os.path.isfile(source): + raise ValueError('Failed to locate file {}'.format(source)) + + statinfo = os.stat(source) + if statinfo.st_size > 50000 * 4 * 1024 * 1024: + raise ValueError('The local file size {} exceeds the Azure blob size limit'. + format(statinfo.st_size)) + if flatten: + # Flatten local directory structure + file_name = os.path.basename(file_name) + + # Create upload container with sanitized file group name + container_name = get_container_name(destination) + blob_service.create_container(container_name) + + blob_name = file_name + if remote_path: + # Add any specified virtual directories + blob_prefix = FileUtils.STRIP_PATH.sub('', remote_path) + blob_name = '{}/{}'.format(blob_prefix, FileUtils.STRIP_PATH.sub('', file_name)) + blob_name = blob_name.replace('\\', '/') + + # We store the lastmodified timestamp in order to prevent overwriting with + # out-dated or duplicate data. TODO: Investigate cleaner options for handling this. + file_time = str(os.path.getmtime(source)) + metadata = None + try: + metadata = blob_service.get_blob_metadata(container_name, blob_name) + except Exception: # pylint: disable=broad-except + # check notfound + pass + else: + #TODO: Check whether the blob metadata is more recent + if metadata and metadata['lastmodified']: + if metadata['lastmodified'] == file_time: + return + + # Upload block blob + # TODO: Investigate compression + chunking performance enhancement proposal. + blob_service.create_blob_from_path( + container_name=container_name, + blob_name=blob_name, + file_path=source, + progress_callback=_wrap_callback, + metadata={'lastmodified': file_time}, + # We want to validate the file as we upload, and only complete the operation + # if all the data transfers successfully + validate_content=True, + max_connections=FileUtils.PARALLEL_OPERATION_THREAD_COUNT) + + +def container_url_has_sas(container_url): + return '?' in container_url + + +def get_container_name_from_url(container_url): + return container_url.split("/")[-1] + + +class FileUtils(object): + + STRIP_PATH = re.compile(r"^[\/\\]+|[\/\\]+$") + GROUP_PREFIX = 'fgrp-' + MAX_GROUP_LENGTH = 63 - len(GROUP_PREFIX) + MAX_FILE_SIZE = 50000 * 4 * 1024 * 1024 + PARALLEL_OPERATION_THREAD_COUNT = 5 + SAS_EXPIRY_DAYS = 7 # 7 days + ROUND_DATE = 2 * 60 * 1000 # Round to nearest 2 minutes + + def __init__(self, get_storage_client): + self.resource_file_cache = {} + self.container_sas_cache = {} + self.resolve_storage_account = get_storage_client + + def filter_resource_cache(self, container, prefix): + """Return all blob refeferences in a container cache that meet a prefix requirement.""" + filtered = [] + for blob in self.resource_file_cache[container]: + if not prefix: + filtered.append(blob) + elif blob['filePath'].startswith(prefix): + filtered.append(blob) + return filtered + + def list_container_contents(self, source, container, blob_service): + """List blob references in container.""" + if container not in self.resource_file_cache: + self.resource_file_cache[container] = [] + blobs = blob_service.list_blobs(container) + for blob in blobs: + if source.file_group: + blob_sas = generate_blob_sas_token(blob, container, blob_service) + elif source.container_url: + blob_sas = construct_sas_url(blob, urlsplit(source.container_url)) + elif source.url: + blob_sas = source.url + else: + raise ValueError("FileSource has no file source.") + file_name = os.path.basename(blob.name) + file_name_only = os.path.splitext(file_name)[0] + self.resource_file_cache[container].append( + {'url': blob_sas, + 'filePath': blob.name, + 'fileName': file_name, + 'fileNameWithoutExtension': file_name_only}) + return self.filter_resource_cache(container, source.prefix) + + def resolve_container_sas_if_needed(self, container_url): + if container_url_has_sas(container_url): + return container_url + # The container Url doesn't have a SAS signature, let's generate one. + container_name = get_container_name_from_url(container_url) + return self.get_container_sas(container_name, False) + + def get_container_sas(self, file_group_or_container_name, is_file_group=True): + storage_client = self.resolve_storage_account() + if is_file_group: + container = get_container_name(file_group_or_container_name) + else: + container = file_group_or_container_name + try: + return self.container_sas_cache[container] + except KeyError: + self.container_sas_cache[container] = generate_container_sas_token(container, storage_client) + return self.container_sas_cache[container] + + def get_container_list(self, source): + """List blob references in container.""" + if source.file_group: + # Input data stored in auto-storage + storage_client = self.resolve_storage_account() + container = get_container_name(source.file_group) + elif source.container_url: + uri = urlsplit(source.container_url) + if not uri.query: + raise ValueError('Invalid container url.') + storage_account_name = uri.netloc.split('.')[0] + sas_token = uri.query + storage_client = BlockBlobService(account_name=storage_account_name, + sas_token=sas_token) + container = uri.pathname.split('/')[1] + else: + raise ValueError('Unknown source.') + + return self.list_container_contents(source, container, storage_client) + + def resolve_resource_file(self, resource_file): + """Convert new resourceFile reference to server-supported reference""" + if resource_file.blob_source: + # Support original resourceFile reference + if not resource_file.file_path: + raise ValueError('Malformed ResourceFile: \'blobSource\' must ' + 'also have \'file_path\' attribute') + return [resource_file] + + if not hasattr(resource_file, 'source') or not resource_file.source: + raise ValueError('Malformed ResourceFile: Must have either ' + ' \'source\' or \'blobSource\'') + + storage_client = self.resolve_storage_account() + container = None + blobs = [] + + if resource_file.source.file_group: + # Input data stored in auto-storage + container = get_container_name(resource_file.source.file_group) + blobs = self.list_container_contents(resource_file.source, container, storage_client) + return convert_blobs_to_resource_files(blobs, resource_file) + if resource_file.source.container_url: + # Input data storage in arbitrary container + uri = urlsplit(resource_file.source.container_url) + container = uri.pathname.split('/')[1] + blobs = self.list_container_contents(resource_file.source, container, storage_client) + return convert_blobs_to_resource_files(blobs, resource_file) + if resource_file.source.url: + # TODO: Input data from an arbitrary HTTP GET source + raise ValueError('Not implemented') + raise ValueError('Malformed ResourceFile') diff --git a/azext/batch/_vendor/v4/azext/batch/_pool_utils.py b/azext/batch/_vendor/v4/azext/batch/_pool_utils.py new file mode 100644 index 00000000..02419aa9 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/_pool_utils.py @@ -0,0 +1,28 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from enum import Enum + +# pylint: disable=too-few-public-methods + + +class PoolOperatingSystemFlavor(Enum): + WINDOWS = 'windows' + LINUX = 'linux' + + +def get_pool_target_os_type(pool): + try: + image_publisher = pool.virtual_machine_configuration.image_reference.publisher + sku_id = pool.virtual_machine_configuration.node_agent_sku_id + except AttributeError: + image_publisher = None + sku_id = None + + return PoolOperatingSystemFlavor.WINDOWS \ + if not image_publisher \ + or (image_publisher and image_publisher.lower().find('windows') >= 0) \ + or (sku_id and sku_id.lower().find('windows') >= 0) \ + else PoolOperatingSystemFlavor.LINUX diff --git a/azext/batch/_vendor/v4/azext/batch/_template_utils.py b/azext/batch/_vendor/v4/azext/batch/_template_utils.py new file mode 100644 index 00000000..d58dc9eb --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/_template_utils.py @@ -0,0 +1,1202 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +from __future__ import unicode_literals + +import copy +import itertools +import json +import re +from msrest.serialization import Model +try: + from shlex import quote as shell_escape +except ImportError: + from pipes import quote as shell_escape + +from . import errors +from . import _pool_utils as pool_utils +from . import models + + +try: + _UNICODE_TYPE = unicode +except NameError: + _UNICODE_TYPE = str + + +def _validate_int(value, content): + """Return parameter value as an integer. + :param str value: The raw parameter value. + :param dict content: The template parameter definition. + :returns: int + """ + try: + original = str(value) + value = int(value) + except (ValueError, UnicodeEncodeError): + raise TypeError("'{}' is not a valid integer.".format(value)) + if str(value) != original: + raise TypeError("'{}' is not a valid integer.".format(value)) + try: + if value < int(content['minValue']): + raise ValueError("Minimum value: {}".format(content['minValue'])) + except KeyError: + pass + try: + if value > int(content['maxValue']): + raise ValueError("Maximum value: {}".format(content['maxValue'])) + except KeyError: + pass + return value + + +def _validate_string(value, content): + """Return parameter value as a string. + :param str value: The raw parameter value. + :param dict content: The template parameter definition. + :returns: str + """ + if value is None: + raise TypeError("String value must be provided") + + value = value if isinstance(value, _UNICODE_TYPE) else str(value) + try: + if len(value) < int(content['minLength']): + raise ValueError("Minimum length: {}".format(content['minLength'])) + except KeyError: + pass + try: + if len(value) > int(content['maxLength']): + raise ValueError("Maximum length: {}".format(content['maxLength'])) + except KeyError: + pass + return value + + +def _validate_bool(value): + """Return parameter value as boolean. + :param str value: The raw parameter value. + :param dict content: The template parameter definition. + :returns: bool + """ + if value in [True, False]: + return value + try: + if str(value).lower() == 'true': + return True + if str(value).lower() == 'false': + return False + raise TypeError("'{}' is not a valid bool".format(value)) + except UnicodeEncodeError: + raise TypeError("'{}' is not a valid bool".format(value)) + + +def _is_substitution(content, start, end): + """This is to support non-ARM-style direct parameter string substitution as a + simplification of the concat function. We may wish to remove this + if we want to adhere more strictly to ARM. + :param str content: The contents of an expression from the template. + :param int start: The start index of the expression. + :param int end: The end index of the expression. + """ + return not (content[start - 1] == '"' and content[end + 1] == '"') + + +def _find(delimiter, content, start_index): + """Given that a string starts at the index specified, scan for the end of that string. + :param str delimiter: Delimiter for which to search. + :param str content: String to scan. + :param int start_index: Index of the character after opening string delimiter. + :returns: Index of the closing string delimiter. + """ + index = start_index + while index < len(content): + char = content[index] + if char == '\\': + index += 1 + elif char == delimiter: + return index + index += 1 + raise ValueError() + + +def _find_nested(delimiter, content, start_index): + """Scan a string to find a specified delimiter, respecting nesting of brackets and strings. + :param str delimiter: Delimiter for which to search. + :param str content: String to scan. + :param int start_index: Index of the character after opening string delimiter. + :returns: Index of the closing string delimiter. + """ + index = start_index + while index < len(content): + char = content[index] + if char == delimiter: + return index + if char == '[': + index = _find_nested(']', content, index + 1) + elif char == '(': + index = _find_nested(')', content, index + 1) + elif char == '"': + index = _find('"', content, index + 1) + elif char == '\'': + index = _find('\'', content, index + 1) + index += 1 + return index + + +def _merge_metadata(base_metadata, more_metadata): + """Merge metadata from two different sources. + :param list base_metadata: A (possibly undefined) set of metadata. + :param list more_metadata: Metadata to add (also possibly undefined). + """ + result = [] + if base_metadata: + result.extend(base_metadata) + if more_metadata: + conflicts = [k for k in [m.name for m in more_metadata] + if k in [m['name'] for m in result]] + if conflicts: + raise ValueError("May not have multiple definitions for metadata " + "value(s) '{}'".format(', '.join(conflicts))) + else: + result.extend([{'name': m.name, 'value': m.value} for m in more_metadata]) + return result + + +def _merge_environment_settings(base_env_settings, more_env_settings): + """Merge environment settings from two different sources. + :param list base_env_settings: A (possibly undefined) set of metadata. + :param list more_env_settings: Metadata to add (also possibly undefined). + """ + result = [] + if base_env_settings: + result.extend(base_env_settings) + if more_env_settings: + conflicts = [k for k in [m.name for m in more_env_settings] + if k in [m['name'] for m in result]] + if conflicts: + raise ValueError("May not have multiple definitions for environment settings " + "value(s) '{}'".format(', '.join(conflicts))) + else: + result.extend([{'name': m.name, 'value': m.value} for m in more_env_settings]) + return result + + +def _is_prefixed(cmd_line): + """Whether the supplied command line has already been prefixed + with an OS specific operation. + """ + if cmd_line is None: + raise ValueError("CommandLine is required field for task.") + return cmd_line.startswith('cmd.exe /c') or \ + cmd_line.startswith('cmd /c') or \ + cmd_line.startswith('/bin/bash -c') or \ + cmd_line.startswith('/bin/sh -c') + + +def _strip_prefix(cmd_line): + """Strip an OS operating prefix from a command line. + """ + if cmd_line.startswith('cmd.exe /c '): + return cmd_line[11:].strip('"') + if cmd_line.startswith('cmd /c '): + return cmd_line[7:].strip('"') + if cmd_line.startswith('/bin/bash -c '): + return cmd_line[13:] + if cmd_line.startswith('/bin/sh -c '): + return cmd_line[11:] + return cmd_line + +def _add_cmd_prefix(task, os_flavor): + """Add OS-specific command prefix to command line.""" + if os_flavor == pool_utils.PoolOperatingSystemFlavor.WINDOWS: + # TODO: Do we need windows shell escaping? + task.command_line = 'cmd /c "{}"'.format(task.command_line) #.replace('\"','\\\\\"') + if os_flavor == pool_utils.PoolOperatingSystemFlavor.LINUX: + task.command_line = '/bin/bash -c \'set -e; set -o pipefail; {}; wait\''.format(task.command_line) + else: + raise ValueError("Unknown pool OS flavor: " + str(os_flavor)) + +def _get_installation_cmdline(references, os_flavor): + """Build the installation command line for package reference collection. + :param dict references: Package installation references. + :param str os_flavor: The pool OS flavor. + """ + # pylint: disable=too-many-statements + if not references: + return None + builder = "" + package_type = None + type_error = 'PackageReferences may only contain a single type of package reference.' + for reference in references: + if not reference.type or not reference.id: + raise ValueError("A PackageReference must have a 'type' and 'id' element.") + if reference.type == 'aptPackage': + if package_type and package_type != 'apt': + raise ValueError(type_error) + if os_flavor != pool_utils.PoolOperatingSystemFlavor.LINUX: + raise ValueError('aptPackage is only supported when targeting Linux pools.') + package_type = 'apt' + apt_cmd = "=" + str(reference.version) if reference.version else "" + apt_cmd = "apt-get install -y {}{}".format(reference.id, apt_cmd) + builder += ';' + apt_cmd if builder else apt_cmd + # TODO: deal with repository, keyUrl, sourceLine + elif reference.type == 'chocolateyPackage': + if package_type and package_type != 'choco': + raise ValueError(type_error) + if os_flavor != pool_utils.PoolOperatingSystemFlavor.WINDOWS: + raise ValueError( + 'chocolateyPackage is only supported when targeting Windows pools.') + package_type = 'choco' + choco_cmd = ' --allow-empty-checksums' if reference.allow_empty_checksums else "" + if reference.version: + choco_cmd = " --version {}{}".format(reference.version, choco_cmd) + choco_cmd = "choco install {}{}".format(reference.id, choco_cmd) + builder += ' & ' + choco_cmd if builder else choco_cmd + elif reference.type == 'yumPackage': + if package_type and package_type != 'yum': + raise ValueError(type_error) + if os_flavor != pool_utils.PoolOperatingSystemFlavor.LINUX: + raise ValueError('yumPackage is only supported when targeting Linux pools.') + package_type = 'yum' + yum_cmd = '' + if reference.disable_excludes: + yum_cmd = ' --disableexcludes=' + str(reference.disable_excludes) + if reference.version: + yum_cmd = '-{}{}'.format(reference.version, yum_cmd) + yum_cmd = 'yum -y install {}{}'.format(reference.id, yum_cmd) + builder += ';' + yum_cmd if builder else yum_cmd + # TODO: deal with rpmRepository + # rpm -Uvh + elif reference.type == 'applicationPackage': + raise ValueError("ApplicationPackage type for id '{}' is not supported " + "in this version.".format(reference.id)) + else: + raise ValueError("Unknown PackageReference type '{}' " + "for id '{}'.".format(reference.type, reference.id)) + if package_type == 'apt': + command = 'apt-get update;' + builder + elif package_type == 'choco': + command = ('powershell -NoProfile -ExecutionPolicy unrestricted ' + '-Command "(iex ((new-object net.webclient).DownloadString' + '(\'https://chocolatey.org/install.ps1\')))" && SET ' + 'PATH="%PATH%;%ALLUSERSPROFILE%\\chocolatey\\bin"') + command += ' && choco feature enable -n=allowGlobalConfirmation & ' + builder + # TODO: Do we need to double check with pool agent name + elif package_type == 'yum': + command = builder + return {'cmdLine': command, 'isWindows': package_type == 'choco'} + + +def _validate_parameter_usage(parameters, definitions): + """Validate the parameters supplied by the job against those defined on the template. + :param dict parameters: Parameters supplied by the job. + :param dict definitions: Parameter definitions from the application template. + """ + if parameters is None: + parameters = {} + if definitions is None: + definitions = {} + for name, definition in definitions.items(): + supported_types = ['int', 'string', 'bool'] + try: + if definition['type'] not in supported_types: + raise ValueError("The parameter '{}' specifies an unsupported " + "type: {}".format(name, definition['type'])) + except KeyError: + raise ValueError("The parameter '{}' does not specify a type.".format(name)) + # Rule: If the parameter definition has no default value, the template must provide a value + parameter = parameters.get(name, definition.get('defaultValue')) + if parameter is None: + raise ValueError("A value for parameter '{}' must be provided " + "by the job.".format(name)) + # Rule: If the parameter definition specifies 'int', the value provided must be compatible + if definition['type'] == 'int': + try: + _validate_int(parameter, {}) + except TypeError: + raise ValueError("'Value '{}' supplied for parameter '{}' must be an " + "integer.".format(parameter, name)) + # Rule: if the parameter definition specified 'bool', the value provided must be compatible + elif definition['type'] == 'bool': + try: + _validate_bool(parameter) + except TypeError: + raise ValueError("'Value '{}' supplied for parameter '{}' must be a " + "boolean.".format(parameter, name)) + # Rule: Only parameters values defined by the template are permitted + violations = [k for k in parameters if k not in definitions] + if violations: + raise ValueError("Provided parameter(s) {} are not expected " + "by the template.".format(', '.join(violations))) + + +def _validate_generated_job(job): + """Validate the partial job generated from an application template prior + to merging it with the original job. + :param dict job: A partial generated job specification to validate. + """ + # Rule: The job generated by an application template may not use properties reserved for job use + # (This is a safety to prevent clever abuse of template syntax + # to specify things that shouldn't be.) + reserved = [k for k in job if k in models.PROPS_RESERVED_FOR_JOBS] + if reserved: + raise ValueError("Application templates may not specify these " + "properties: {}".format(', '.join(reserved))) + # Rule: Templates may only specify properties permitted + unsupported = [k for k in job if k not in models.PROPS_PERMITTED_ON_TEMPLATES] + if unsupported: + raise ValueError("Application templates may not use these " + "properties: {}".format(', '.join(unsupported))) + + +def _validate_metadata(metadata): + """Validate the provided metadata is valid. + :param list metadata: A list of metadata dicts. + """ + # Rule: The prefix 'az_batch:' is reserved for our use + # and can't be specified on job nor on template. + violation = [k for k in [m['name'] for m in metadata] if k.startswith('az_batch')] + if violation: + raise ValueError("Metadata item(s) '{}' cannot be used; the prefix 'az_batch:' is " + "reserved for Batch use.".format(', '.join(violation))) + + +def _validate_parameter(name, content, value): + """Validate the input parameter is valid for specified template. Checks the following: + Check input fit with parameter type, if yes, convert to correct type + Check input matched with the restriction of parameter + :param str name: The parameter name. + :param dict content: The template parameter definition. + :param str value: The raw parameter value. + :returns: Validated input paramater, otherwise None. + """ + try: + if content['type'] == 'int': + value = _validate_int(value, content) + elif content['type'] == 'bool': + value = _validate_bool(value) + elif content['type'] == 'string': + value = _validate_string(value, content) + if value not in content.get('allowedValues', [value]): + raise ValueError("Allowed values: {}".format(', '.join(content['allowedValues']))) + except TypeError: + raise TypeError("The value '{}' of parameter '{}' is not a {}".format( + name, value, content['type'])) + except ValueError as value_error: + raise ValueError( + "The value '{}' of parameter '{}' does not meet the requirement: {}".format( + name, value, str(value_error))) + else: + return value + + +def _get_template_params(template, param_values): + """Return all required parameter values for the specified template. + :param dict template: Template JSON object. + :param dict param_values: User provided parameter values. + """ + param_keys = {} + try: + for param, values in template['parameters'].items(): + if 'type' not in values: + raise ValueError('Parameter {} does not have type defined'.format(param)) + try: + # Support both ARM and dictionary syntax + # ARM: '' : { 'value' : '' } + # Dictionary: '' : ' + value = param_values[param] + param_keys[param] = value.get('value') if isinstance(value, dict) else value + except KeyError: + param_keys[param] = values.get('defaultValue') + except KeyError: + pass # No parameters to expand + return param_keys + + +def _parse_arm_parameter(name, template_obj, parameters): + """Render the content of an ARM property + :param str name: The name of the property to render. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + # Find name of root parameter + param_name_end = _find_nested(')', name, 0) # Find end of name + if param_name_end >= len(name): + raise ValueError( + "Template reference misformatted for parameter '{}'".format(name)) + # Interpret name of parameter + param_name = _parse_arm_expression( + name[1:param_name_end-1], + template_obj, + parameters) + + # Make sure there are defined parameters + if 'parameters' not in template_obj: + raise ValueError("Template defines no parameters but tried to use '{}'".format(param_name)) + + try: + # Get parameter object + param_def = template_obj['parameters'][param_name] + # Parse nested object if exists + if len(name) > param_name_end+1: + param_def = _parse_nested_object( + param_def, + name[param_name_end+1:], + template_obj, + parameters) + + except KeyError: + raise ValueError("Template does not define parameter '{}'".format(param_name)) + user_value = param_def.get('defaultValue') + if parameters and param_name in parameters: + # Support both ARM and dictionary syntax + # ARM: '' : { 'value' : '' } + # Dictionary: '' : ' + user_value = parameters[param_name] + try: + user_value = user_value['value'] + except TypeError: + pass + if user_value is None: + raise errors.MissingParameterValue( + "No value supplied for parameter '{}' and no default value".format(param_name), + parameter_name=param_name, + parameter_description=param_def.get('metadata', {}).get('description')) + if isinstance(user_value, dict): + # If substitute value is a complex object - it may require + # additional parameter substitutions + return _parse_template(json.dumps(user_value), template_obj, parameters) + try: + if param_def['type'] == 'int': + return _validate_int(user_value, param_def) + if param_def['type'] == 'bool': + return _validate_bool(user_value) + if param_def['type'] == 'string': + return _validate_string(user_value, param_def) + except TypeError: + raise TypeError("Value '{}' for parameter '{}' must be a {}.".format( + user_value, param_name, param_def['type'])) + else: + raise TypeError("Parameter type '{}' not supported.".format(param_def['type'])) + + +def _parse_nested_object(obj, references, template_obj, parameters): + """ Decouple [] and . notation references. Then applies to object. + + :param object obj: Root object being traversed + :param str references: String of references to be decoupled + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + :return: Object referenced + """ + obj_refs = [] + ret_obj = obj + var_name = references + # Find and interpret each nested object and add them to a queue + while True: + start_dict = _find_nested('[', var_name, 0) + start_obj = _find_nested('.', var_name, 0) + # Handles nested [] references + if 0 <= start_dict < start_obj: + end_index = _find_nested(']', var_name, start_dict + 1) + obj_ref_str = var_name[start_dict + 1:end_index] + obj_refs.append( + _parse_arm_expression(obj_ref_str, template_obj, parameters)) + var_name = var_name[:start_dict] + var_name[end_index + 1:] + # Handles nested . references + elif 0 <= start_obj < start_dict: + next_start_dict = _find_nested('[', var_name, 1) + next_start_obj = _find_nested('.', var_name, 1) + end_index = next_start_dict if next_start_dict < next_start_obj else next_start_obj + end_index = end_index if end_index > start_obj else len(var_name) + obj_ref_str = var_name[start_obj + 1:end_index] + obj_refs.append( + _parse_arm_expression(obj_ref_str, template_obj, parameters)) + var_name = var_name[:start_obj] + var_name[end_index:] + else: + break + + while obj_refs: + ref = obj_refs.pop(0) + ret_obj = ret_obj[ref] + + return ret_obj + + +def _parse_arm_variable(name, template_obj, parameters): + """Render the value of an ARM variable. + :param str name: The name of the variable to render. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + try: + # Get head object referenced + variable_name_end = _find_nested(')', name, 0) # Find end of variable name + if variable_name_end >= len(name): + raise ValueError("Template reference misformatted for variable '{}'".format(name)) + variable_name = _parse_arm_expression( + name[1:variable_name_end-1], + template_obj, + parameters) # Make sure inner name is fully parsed + variable_obj = template_obj['variables'][variable_name] + # If there is any text after ')' then there additional references on the object + if len(name) > variable_name_end+1: + variable_obj = _parse_nested_object( + variable_obj, + name[variable_name_end+1:], + template_obj, + parameters) + + # parse the result object + variable = _parse_arm_expression( + variable_obj, + template_obj, parameters) + except KeyError: + raise ValueError("Template contains no definition for variable '{}'".format(name)) + if isinstance(variable, dict): + # If substitute value is a complex object - it may require + # additional parameter substitutions + return _parse_template(json.dumps(variable), template_obj, parameters) + return variable + + +def _parse_arm_concat(expression, template_obj, parameters): + """Evaluate an ARM concat expression. + :param str expression: The concat expression to evaluate. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + content = "" + index = 0 + while index < len(expression): + end = _find_nested(',', expression, index) + argument = expression[index:end].strip() + content += _parse_arm_expression(argument, template_obj, parameters) + index = end + 1 + return content + + +def _parse_arm_expression(expression, template_obj, parameters): + """Determine if a section of the template is an ARM reference, and calculate + the replacement accordingly. The result will be correctly typed to suit the + parameter definition (e.g. will return a number if the parameter requires a number) + :param str expression: A section of template contained within []. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + if not isinstance(expression, str): + return expression + if expression[0] == '[' and expression[-1] == ']': + # Remove the enclosing brackets to check the contents + return _parse_arm_expression(expression[1:-1], template_obj, parameters) + if expression[0] == '(' and expression[-1] == ')': + # If the section is surrounded by ( ), then we need to further process the contents + # as either a parameter name, or a concat operation + return _parse_arm_expression(expression[1:-1], template_obj, parameters) + if expression[0] == '\'' and expression[-1] == '\'': + # If a string, remove quotes in order to perform parameter look-up + return expression[1:-1] + if re.match(r'^parameters', expression): + result = _parse_arm_parameter(expression[11:], template_obj, parameters) + elif re.match(r'^variables', expression): + result = _parse_arm_variable(expression[10:], template_obj, parameters) + elif re.match(r'^concat', expression): + result = _parse_arm_concat(expression[7:-1], template_obj, parameters) + elif re.match(r'^reference', expression): + raise NotImplementedError("ARM-style 'reference' syntax not supported.") + else: + result = expression + return result + + +def _parse_template_string(string_content, template_obj, parameters): + """Given a string value (including quotes), evaluate any embedded template expressions + delimited by '[' and ']'. + :param str string_content: The contents of the template string. + :param dict template_obj: The loaded JSON template file. + :param dict parameters: The contents of the parameters file. + """ + updated_content = "" + current_index = 0 + while current_index < len(string_content): + try: + expression_start = string_content.index('[', current_index) + except ValueError: # No template expression to evaluate + break + if expression_start < len(string_content) - 1 and \ + string_content[expression_start + 1] == '[': + # Found escaped expression + updated_content += string_content[current_index:expression_start] + '[' + current_index = expression_start + 2 + continue + expression_end = _find_nested(']', string_content, expression_start + 1) + if expression_end >= len(string_content): + # No closing delimiter for the expression (not our problem) + break + # Everything between [ and ] + expression = string_content[expression_start + 1:expression_end] + parsed = _parse_arm_expression(expression, template_obj, parameters) + if _is_substitution(string_content, expression_start, expression_end): + # Replacing within the middle of a string + parsed = parsed if isinstance(parsed, _UNICODE_TYPE) else str(parsed) + updated_content += string_content[current_index:expression_start] + json.dumps(parsed)[1:-1] + current_index = expression_end + 1 + elif isinstance(parsed, bool): + parsed = "true" if parsed else "false" + updated_content += string_content[current_index:expression_start - 1] + parsed + current_index = expression_end + 2 + elif isinstance(parsed, int): + # Replacing an entire element value, and we want to remove any surrounding quotes + updated_content += string_content[current_index:expression_start - 1] + str(parsed) + current_index = expression_end + 2 + elif isinstance(parsed, dict): + json_content = json.dumps(parsed) + updated_content += string_content[current_index:expression_start - 1] + json_content + current_index = expression_end + 2 + else: + parsed = parsed if isinstance(parsed, _UNICODE_TYPE) else str(parsed) + updated_content += string_content[current_index:expression_start] + json.dumps(parsed)[1:-1] + current_index = expression_end + 1 + updated_content += string_content[current_index:] + return updated_content + + +def _parse_template(template_str, template_obj, parameters): + """Expand all parameters, and variables in the template. + + We want to expand all template expressions (delimited by '[' and ']') in the supplied template + string. However, that syntax collides with JSON syntax for arrays and we don't want to collide + with any of those. To avoid such a collision, we iterate through all of the string values + (delimited by double quotes (")) and then expand template expressions only within those. + + :param str template_str: Content of the template file as a string. + :param dict template_obj: Contents of the template file. + :param dict parameters: Contents of the parameters file. + :returns: Fully resolved JSON template. + """ + updated_json = "" + current_index = 0 + while current_index < len(template_str): + try: + string_start = template_str.index('"', current_index) + except ValueError: # Didn't find another string to expand + break + try: + string_end = _find('"', template_str, string_start + 1) + except ValueError: # Didn't find terminating quote for string (not our problem) + break + string_content = template_str[string_start:string_end + 1] + if '[' in string_content: + updated_json += template_str[current_index:string_start] + updated_json += _parse_template_string(string_content, template_obj, parameters) + else: + updated_json += template_str[current_index:string_end + 1] + current_index = string_end + 1 + updated_json += template_str[current_index:] + try: + return json.loads(updated_json) + except ValueError as exp: + try: + return json.loads(updated_json.encode('string_escape').replace('\\\\', '\\')) + except LookupError: + raise ValueError("Unable to load JSON template {}, error: {}".format( + updated_json, str(exp))) + + +def _process_resource_files(request, fileutils): + """Parse a request body for any references to resource files and transform + them to API resourceFile format where applicable. + :param dict request: Job or task specification. + :returns: The updated job or task specification. + """ + if isinstance(request, list): + return [_process_resource_files(r, fileutils) for r in request if isinstance(r, Model)] + for attr, value in request.__dict__.items(): + if attr in ['resource_files', 'common_resource_files']: + if value and isinstance(value, list): + new_resources = [] + for file_ref in value: + new_resources.extend(fileutils.resolve_resource_file(file_ref)) + setattr(request, attr, new_resources) + elif isinstance(value, (Model, list)): + _process_resource_files(value, fileutils) + return request + + +def _parse_task_output_files(task, file_utils): + """Process a task's outputFiles section and update the task accordingly. + :param dict task: A task specification. + :returns: A new task specification with modifications. + """ + if not task or not task.output_files: + return + # Validate the output file configuration + for output_file in task.output_files: + destination = output_file.destination + if not destination.container and not destination.auto_storage: + raise ValueError("outputFile must include 'container' or 'auto_storage' property.") + if destination.container and destination.auto_storage: + raise ValueError("outputFile can not have both 'container' " + "and 'auto_storage' properties.") + if destination.auto_storage: + if not destination.auto_storage.file_group: + raise ValueError("'auto_storage' of 'destination' must have 'file_group' property.") + destination.container = models.OutputFileBlobContainerDestination( + container_url=file_utils.get_container_sas(destination.auto_storage.file_group)) + if destination.auto_storage.path: + destination.container.path = destination.auto_storage.path + destination.auto_storage = None + elif destination.container: + # If only a container Url was specified we need to get a SAS Url for it. + destination.container.container_url = file_utils.resolve_container_sas_if_needed( + destination.container.container_url) + + +def _transform_sweep_str(data, parameters): + """Replace string placeholders with parametric sweep values. + :param str data: The string containing placeholders. + :param list parameters: The sweep values, each value maps + to one of {0}, {1}, .. {n} by index. + """ + # Handle {n} or {n:m} scenario + reg = re.compile(r'\{(\d+)(:(\d+))?\}') + + def replace(match): + r, r1, _, r3 = [data[start:end] for start, end in match.regs] + n = int(r1) + if n >= len(parameters): + raise ValueError("The parameter pattern '{}' is out of bound.".format(r)) + number_str = str(parameters[n]) + if ':' in r: + # This is {n:m} scenario + if parameters[n] < 0: + raise ValueError( + "The parameter '{}' is negative and cannot be used in pattern '{}'.".format( + parameters[n], r)) + m = int(r3) + if m < 1 or m > 9: + raise ValueError( + "The parameter pattern '{}' is out of bound. " + "The padding number can be only between 1 to 9.".format(r)) + return number_str.zfill(m) + # This is just {n} scenario + return number_str + return reg.sub(replace, data) + + +def _transform_file_str(content, file_ref): + """Replace string with file value. + :param str content: The string to be replaced. + :param dict file_ref: The file information, containing 'url', + 'filePath etc properties. + """ + replace_props = ['url', 'filePath', 'fileName', 'fileNameWithoutExtension'] + for prop in replace_props: + content = re.sub("{" + prop + "}", file_ref[prop], content) + return content + + +def _replacement_transform(transformer, source_obj, source_key, context): + """Transform a string by applying specific context values. + By design, user should escape all the literal '{' or '}' to '{{' or '}}'. + All other '{' or '}' characters are used for replacement + :param func transformer: The tranformation function to run. + :param dict source_obj: The object containing the string to be transformed. + :param str key: The key of the string to be transformed. + :param context: The specific context to apply to the string. + """ + if not source_obj: + return + source_str = getattr(source_obj, source_key, None) + if not source_str: + return + # Handle '{' and '}' escape scenario : replace '{{' to LEFT_BRACKET_REPLACE_CHAR, + # and '}}' to RIGHT_BRACKET_REPLACE_CHAR. The reverse function is used to handle {{{0}}}. + LEFT_BRACKET_REPLACE_CHAR = u'\uE800' # pylint: disable=anomalous-unicode-escape-in-string + RIGHT_BRACKET_REPLACE_CHAR = u'\uE801' # pylint: disable=anomalous-unicode-escape-in-string + transformed = re.sub(r'\{\{', LEFT_BRACKET_REPLACE_CHAR, source_str)[::-1] + transformed = re.sub(r'\}\}', RIGHT_BRACKET_REPLACE_CHAR, transformed)[::-1] + transformed = transformer(transformed, context) + if '{' in transformed or '}' in transformed: + raise ValueError( + "Invalid use of bracket characters, did you forget to escape (using {{}})?") + # Replace LEFT_BRACKET_REPLACE_CHAR back to '{', and RIGHT_BRACKET_REPLACE_CHAR back to '}' + transformed = re.sub(LEFT_BRACKET_REPLACE_CHAR, '{', transformed) + transformed = re.sub(RIGHT_BRACKET_REPLACE_CHAR, '}', transformed) + setattr(source_obj, source_key, transformed) + + +def _transform_repeat_task(task, context, index, transformer): + """Apply the transformer to a task template to yield a new task. + :param dict task: The repeatTask task template. + :param context: The task-factory specific context to apply to the template. + :param index: The task factory index to use as task ID. + :param func transformer: The transforming function to apply the + context to the template. + """ + if not task or not task.command_line: + raise ValueError("RepeatTask and it's command line must be defined.") + new_task = models.ExtendedTaskParameter(id=str(index), **copy.deepcopy(task.__dict__)) + _replacement_transform(transformer, new_task, 'command_line', context) + _replacement_transform(transformer, new_task, 'display_name', context) + try: + for resource in new_task.resource_files: + _replacement_transform(transformer, resource, 'file_path', context) + _replacement_transform(transformer, resource, 'blob_source', context) + try: + for param in ['file_group', 'prefix', 'container_url', 'url']: + _replacement_transform(transformer, resource.source, param, context) + except AttributeError: + # Using a traditional ResourceFile object with no 'source'. + pass + except TypeError: + # No resource files + pass + try: + for env_variable in new_task.environment_settings: + for param in ['name', 'value']: + _replacement_transform(transformer, env_variable, param, context) + except TypeError: + # No resource files + pass + try: + for output in new_task.output_files: + _replacement_transform(transformer, output, 'file_pattern', context) + try: + for param in ['path', 'container_url']: + _replacement_transform(transformer, output.destination.container, param, context) + except AttributeError: + pass # Not using container reference + try: + for param in ['path', 'file_group']: + _replacement_transform(transformer, output.destination.auto_storage, param, context) + except AttributeError: + pass # Not using autostorage reference + except TypeError: + # No resource files + pass + return new_task + + +def _transform_merge_task(task): + new_task = models.ExtendedTaskParameter(**copy.deepcopy(task.__dict__)) + return new_task + + +def _parse_parameter_sets(parameter_sets): + """Parse parametric sweep set, and return all possible values in array. + :param list parameter_sets: An array of parameter sets. + """ + if not parameter_sets: + raise ValueError("At least one parameter set is required.") + iterations = [] + for params in parameter_sets: + valid_params = models.ParameterSet(start=params.start, end=params.end, step=params.step) + end = valid_params.end + 1 if valid_params.end >= valid_params.start else valid_params.end - 1 + iterations.append(range(valid_params.start, end, valid_params.step)) + return itertools.product(*iterations) + + +def _expand_parametric_sweep(factory): + """Parse parametric sweep task factory object, and return task list. + :param dict factory: A loaded JSON task factory object. + """ + permutations = _parse_parameter_sets(factory.parameter_sets) + task_objs = [_transform_repeat_task(factory.repeat_task, p, i, _transform_sweep_str) + for i, p in enumerate(permutations)] + try: + factory.merge_task.id = 'merge' + factory.merge_task.depends_on = models.TaskDependencies( + task_id_ranges=[models.TaskIdRange(start=0, end=len(task_objs) - 1)]) + task_objs.append(_transform_merge_task(factory.merge_task)) + except AttributeError: # No merge task + pass + return task_objs + + +def _expand_task_collection(factory): + """Parse task collection task factory object, and return task list. + :param dict factory: A loaded JSON task factory object. + """ + return factory.tasks + + +def _expand_task_per_file(factory, fileutils): + """Parse file iteration task factory object, and return task list. + :param dict factory: A loaded JSON task factory object. + """ + files = fileutils.get_container_list(factory.source) + task_objs = [_transform_repeat_task(factory.repeat_task, f, i, _transform_file_str) + for i, f in enumerate(files)] + try: + factory.merge_task.id = 'merge' + factory.merge_task.depends_on = models.TaskDependencies( + task_id_ranges=[ + models.TaskIdRange(start=0, end=len(task_objs) - 1)]) + task_objs.append(_transform_merge_task(factory.merge_task)) + except AttributeError: # No merge task + pass + return task_objs + + +def expand_application_template(job, deserialize): + """Expand an application template reference on a job, returning the modified job. + :param dict job: A job specification that may contain an application template reference. + :param string working_dir: Base folder for evaluation of relative paths (is required). + """ + try: + with open(job.application_template_info.file_path, 'r') as file_handle: + template_json = json.load(file_handle) + except (EnvironmentError, ValueError, TypeError) as error: + raise ValueError("Failed to load application template from '{}': {}". + format(job.application_template_info.file_path, error)) + _validate_parameter_usage(job.application_template_info.parameters, + template_json.get('parameters')) + job_from_template = _parse_template(json.dumps(template_json), template_json, + job.application_template_info.parameters) + _validate_generated_job(job_from_template) + metadata = _merge_metadata(job_from_template.get('metadata'), job.metadata) + env_settings = _merge_environment_settings(job_from_template.get('commonEnvironmentSettings'), + job.common_environment_settings) + _validate_metadata(metadata) + metadata.append({'name': 'az_batch:template_filepath', 'value': job.application_template_info.file_path}) + job_from_template['metadata'] = metadata + job_from_template['commonEnvironmentSettings'] = env_settings + + job_patch = deserialize('ApplicationTemplate', job_from_template) + # Merge the job as defined by the application template with the original job we were given + job.__dict__.update(job_patch.__dict__) + job.application_template_info = None + + +def expand_template(template_json, parameter_json=None): + """Return JSON object with with the parameters replaced. + :param str template_file: Input template file name. + :param str parameter_file: Input parameter file name. + """ + parameters = _get_template_params(template_json, parameter_json) + return _parse_template(json.dumps(template_json), template_json, parameters) + + +def expand_task_factory(job, fileutils): + """Parse a task factory object and expand to a list of tasks. + :param dict job_obj: The JSON job entity loaded from a template. + :returns: a list of task entities. + """ + if job.task_factory.type == 'parametricSweep': + tasks = _expand_parametric_sweep(job.task_factory) + elif job.task_factory.type == 'taskCollection': + tasks = _expand_task_collection(job.task_factory) + elif job.task_factory.type == 'taskPerFile': + tasks = _expand_task_per_file(job.task_factory, fileutils) + else: + raise TypeError("'{}' is not a valid Task Factory type.".format(job.task_factory.type)) + job.task_factory = None + return tasks + + +def has_merge_task(job): + """ Check if user has specified a mergeTask on the task factory + :param job_obj: The JSON job entity loaded from a template.: + :return: true if merge task present + """ + if job.task_factory.type in ['parametricSweep', 'taskPerFile'] and job.task_factory.merge_task: + return True + return False + + +def construct_setup_task(existing_task, command_info, os_flavor): + """Constructs a command line for the start task/job prep task which will + run the setup script. + :param dict existing_task: The original start task or job prep task. + :param list command_info: The additional command info to add. + :param dict os_flavor: The OS flavor of the pool. + :returns: An updated start task or job prep task. + """ + if existing_task: + result = dict(existing_task.__dict__) + if 'additional_properties' in result: + del result['additional_properties'] + else: + result = {} + commands = [] + resources = [] + is_windows = None + for cmd in command_info: + if cmd: + commands.append(cmd['cmdLine']) + resources.extend(cmd.get('resourceFiles', [])) + if is_windows is None: + is_windows = cmd['isWindows'] + elif is_windows != cmd['isWindows']: + raise ValueError('The command is not compatible with Windows or Linux.') + if not commands: + if result.get('command_line'): + if _is_prefixed(result['command_line']): + return result + if os_flavor == pool_utils.PoolOperatingSystemFlavor.WINDOWS: + result['command_line'] = 'cmd.exe /c "{}"'.format(result['command_line']) + elif os_flavor == pool_utils.PoolOperatingSystemFlavor.LINUX: + result['command_line'] = '/bin/bash -c {}'.format(result['command_line']) + else: + raise ValueError("Unknown pool OS flavor: " + str(os_flavor)) + return result if result else None + if result.get('command_line'): + commands.append(_strip_prefix(result['command_line'])) + resources.extend(result.get('resource_files', [])) + if os_flavor == pool_utils.PoolOperatingSystemFlavor.WINDOWS: + full_win_cmd = ' & '.join(commands) + result['command_line'] = 'cmd.exe /c "{}"'.format(full_win_cmd) + result['user_identity'] = models.UserIdentity( + auto_user=models.AutoUserSpecification(scope="task", elevation_level="admin")) + elif os_flavor == pool_utils.PoolOperatingSystemFlavor.LINUX: + # Escape the users command line + full_linux_cmd = shell_escape(';'.join(commands)) + result['command_line'] = '/bin/bash -c {}'.format(full_linux_cmd) + result['user_identity'] = models.UserIdentity( + auto_user=models.AutoUserSpecification(scope="pool", elevation_level="admin")) + else: + raise ValueError("Unknown pool OS flavor: " + str(os_flavor)) + if resources: + result['resource_files'] = resources + # Must run elevated and wait for success for the setup step + result['wait_for_success'] = True + return result + + +def process_job_for_output_files(job, tasks, file_utils): + """Process a job and its collection of tasks for any tasks which use outputFiles. + If a task does use outputFiles, we add to the jobs jobPrepTask for the install step. + NOTE: This edits the task collection and job in-line! + :param dict job: A job specification. + :param list tasks: A list of task specifications. + """ + if job.job_manager_task: + _parse_task_output_files(job.job_manager_task, file_utils) + for task in tasks: + _parse_task_output_files(task, file_utils) + + +def process_pool_package_references(pool): + """Parse package reference section in the pool JSON object. + :param dict pool: A pool specification. + """ + if not isinstance(pool.package_references, list): + raise TypeError('PackageReferences of Pool has to be a collection.') + os_flavor = pool_utils.get_pool_target_os_type(pool) + cmd_line = _get_installation_cmdline(pool.package_references, os_flavor) + pool.package_references = None + return cmd_line + + +def process_task_package_references(tasks, os_flavor): + """Parse package reference section in the task JSON object. + :param list tasks: A collection of task specifications. + :param str os_flavor: The OS flavor of the pool. + """ + if not tasks: + return "" + packages = [] + included = [] + for task in tasks: + if task.package_references: + for package in task.package_references: + if not package.id or not package.type: + raise ValueError('A PackageReference must have a type and id element.') + if package.id not in included: + packages.append(package) + included.append(package.id) + task.package_references = None + return _get_installation_cmdline(packages, os_flavor) + + +def post_processing(request, fileutils, os_flavor): + """Parse job or task to process new resource file references. + :param dict request: A job or task specification (or list thereof). + """ + # Reform all new resource file references in standard ResourceFiles + if isinstance(request, list): + for task in request: + if not _is_prefixed(task.command_line): + _add_cmd_prefix(task, os_flavor) + return [_process_resource_files(i, fileutils) for i in request] + if hasattr(request, 'job_preparation_task') and request.job_preparation_task: + if not _is_prefixed(request.job_preparation_task.command_line): + _add_cmd_prefix(request.job_preparation_task, os_flavor) + if hasattr(request, 'job_release_task') and request.job_release_task: + if not _is_prefixed(request.job_release_task.command_line): + _add_cmd_prefix(request.job_release_task, os_flavor) + if hasattr(request, 'job_manager_task') and request.job_manager_task: + if not _is_prefixed(request.job_manager_task.command_line): + _add_cmd_prefix(request.job_manager_task, os_flavor) + if hasattr(request, 'start_task') and request.start_task: + if not _is_prefixed(request.start_task.command_line): + _add_cmd_prefix(request.start_task, os_flavor) + return _process_resource_files(request, fileutils) + + +def should_get_pool(job, tasks): + """Determines if the pool (or auto pool specification) needs to be + reviewed to determine the target operating system. + This is required for some features which craft command lines and the + command lines are OS dependent. + :param list tasks: A collection of tasks to be added to the job. + :returns: bool + """ + get_pool = False + if not tasks: + return get_pool + for task in tasks: + if not _is_prefixed(task.command_line): + get_pool = True + if task.package_references: + get_pool = True + if job.job_preparation_task: + if not _is_prefixed(job.job_preparation_task.command_line): + get_pool = True + if job.job_release_task: + if not _is_prefixed(job.job_release_task.command_line): + get_pool = True + if job.job_manager_task: + if not _is_prefixed(job.job_manager_task.command_line): + get_pool = True + if job.pool_info.auto_pool_specification \ + and job.pool_info.auto_pool_specification.pool \ + and job.pool_info.auto_pool_specification.pool.package_references: + get_pool = True + return get_pool + + +def validate_json_object(json_obj, obj): + """Determines if the json template matches expected Batch object + :param json_obj: json dictionary from template. + :param obj: matched Batch object. + """ + # pylint:disable=protected-access + from enum import Enum + if issubclass(type(obj), Enum): + return + key_attr_map = {} + key_type_map = {} + for key in obj._attribute_map: + key_type_map[obj._attribute_map[key]['key'].lower()] = obj._attribute_map[key]['type'] + key_attr_map[obj._attribute_map[key]['key'].lower()] = key + for item in json_obj: + if not item.lower() in key_type_map: + raise ValueError('Unexpect element {} in template'.format(item)) + t = key_type_map[item.lower()] + if t[0].islower() or (t[0] == '[' and t[1].islower()): + continue + if t[0] == '[': + if not isinstance(json_obj[item], list): + raise ValueError('Expect element {} is list in template'.format(item)) + for index in range(len(json_obj[item])): + inner_type = getattr(obj, key_attr_map[item.lower()]) + validate_json_object(json_obj[item][index], inner_type[index]) + else: + inner_type = getattr(obj, key_attr_map[item.lower()]) + validate_json_object(json_obj[item], inner_type) diff --git a/azext/batch/_vendor/v4/azext/batch/errors.py b/azext/batch/_vendor/v4/azext/batch/errors.py new file mode 100644 index 00000000..c3bb39ae --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/errors.py @@ -0,0 +1,25 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +from azure.batch.models import BatchErrorException + + +class MissingParameterValue(ValueError): + + def __init__(self, message, parameter_name=None, parameter_description=None): + self.parameter_name = parameter_name + self.parameter_description = parameter_description + super(MissingParameterValue, self).__init__(message) + + +class CreateTasksErrorException(BatchErrorException): + """ + :param str message: Error message describing exit reason + :param [~TaskAddResult] failures: List of tasks with detected client side errors. + :param [~TaskAddParameter] pending_task_list: List of tasks remaining to be submitted. + """ + def __init__(self, message, failures, pending_task_list): + self.message = message + self.failures = list(failures) + self.pending_tasks = list(pending_task_list) diff --git a/azext/batch/_vendor/v4/azext/batch/models/__init__.py b/azext/batch/_vendor/v4/azext/batch/models/__init__.py new file mode 100644 index 00000000..b15eb7ab --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/__init__.py @@ -0,0 +1,111 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=wildcard-import,unused-import,unused-wildcard-import + +# Not ideal syntax - but savaes us having to check and repopulate this +# list every time the SDK is regenerated. +from . import * +from azext.batch._vendor.v4.azure.batch.models import * + +try: + from .extended_task_parameter_py3 import ExtendedTaskParameter + from .extended_job_parameter_py3 import ExtendedJobParameter + from .extended_pool_parameter_py3 import ExtendedPoolParameter + from .extended_pool_specification_py3 import ExtendedPoolSpecification + from .auto_pool_specification_py3 import AutoPoolSpecification + from .output_file_py3 import OutputFile + from .extended_output_file_destination_py3 import ExtendedOutputFileDestination + from .output_file_auto_storage_destination_py3 import OutputFileAutoStorageDestination + from .extended_resource_file_py3 import ExtendedResourceFile + from .multi_instance_settings_py3 import MultiInstanceSettings + from .file_source_py3 import FileSource + from .task_factory_base_py3 import TaskFactoryBase + from .task_collection_task_factory_py3 import TaskCollectionTaskFactory + from .parametric_sweep_task_factory_py3 import ParametricSweepTaskFactory + from .file_collection_task_factory_py3 import FileCollectionTaskFactory + from .parameter_set_py3 import ParameterSet + from .repeat_task_py3 import RepeatTask + from .package_reference_base_py3 import PackageReferenceBase + from .chocolatey_package_reference_py3 import ChocolateyPackageReference + from .yum_package_reference_py3 import YumPackageReference + from .apt_package_reference_py3 import AptPackageReference + from .application_template_info_py3 import ApplicationTemplateInfo + from .merge_task_py3 import MergeTask + from .job_preparation_task_py3 import JobPreparationTask + from .job_release_task_py3 import JobReleaseTask + from .job_manager_task_py3 import JobManagerTask + from .start_task_py3 import StartTask + from .application_template_py3 import ApplicationTemplate + from .job_template_py3 import JobTemplate + from .pool_template_py3 import PoolTemplate +except (SyntaxError, ImportError): + from .extended_task_parameter import ExtendedTaskParameter + from .extended_job_parameter import ExtendedJobParameter + from .extended_pool_parameter import ExtendedPoolParameter + from .extended_pool_specification import ExtendedPoolSpecification + from .auto_pool_specification import AutoPoolSpecification + from .output_file import OutputFile + from .extended_output_file_destination import ExtendedOutputFileDestination + from .output_file_auto_storage_destination import OutputFileAutoStorageDestination + from .extended_resource_file import ExtendedResourceFile + from .multi_instance_settings import MultiInstanceSettings + from .file_source import FileSource + from .task_factory_base import TaskFactoryBase + from .task_collection_task_factory import TaskCollectionTaskFactory + from .parametric_sweep_task_factory import ParametricSweepTaskFactory + from .file_collection_task_factory import FileCollectionTaskFactory + from .parameter_set import ParameterSet + from .repeat_task import RepeatTask + from .package_reference_base import PackageReferenceBase + from .chocolatey_package_reference import ChocolateyPackageReference + from .yum_package_reference import YumPackageReference + from .apt_package_reference import AptPackageReference + from .application_template_info import ApplicationTemplateInfo + from .merge_task import MergeTask + from .job_preparation_task import JobPreparationTask + from .job_release_task import JobReleaseTask + from .job_manager_task import JobManagerTask + from .start_task import StartTask + from .application_template import ApplicationTemplate + from .job_template import JobTemplate + from .pool_template import PoolTemplate + +from .constants import ( + PROPS_RESERVED_FOR_JOBS, + PROPS_PERMITTED_ON_TEMPLATES) + +__all__ = [ + 'ExtendedTaskParameter', + 'ExtendedJobParameter', + 'ExtendedPoolParameter', + 'ExtendedPoolSpecification', + 'AutoPoolSpecification', + 'OutputFile', + 'ExtendedOutputFileDestination', + 'OutputFileAutoStorageDestination', + 'ExtendedResourceFile', + 'MultiInstanceSettings', + 'FileSource', + 'TaskFactoryBase', + 'TaskCollectionTaskFactory', + 'ParametricSweepTaskFactory', + 'FileCollectionTaskFactory', + 'ParameterSet', + 'RepeatTask', + 'PackageReferenceBase', + 'ChocolateyPackageReference', + 'YumPackageReference', + 'AptPackageReference', + 'ApplicationTemplateInfo', + 'MergeTask', + 'JobPreparationTask', + 'JobReleaseTask', + 'JobManagerTask', + 'StartTask', + 'ApplicationTemplate', + 'JobTemplate', + 'PoolTemplate', +] diff --git a/azext/batch/_vendor/v4/azext/batch/models/application_template.py b/azext/batch/_vendor/v4/azext/batch/models/application_template.py new file mode 100644 index 00000000..52905026 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/application_template.py @@ -0,0 +1,109 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationTemplate(Model): + """An Azure Batch Application Template. + + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + """ + + _attribute_map = { + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + } + + def __init__(self, **kwargs): + super(ApplicationTemplate, self).__init__(**kwargs) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.metadata = kwargs.get('metadata', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.task_factory = kwargs.get('task_factory', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/application_template_info.py b/azext/batch/_vendor/v4/azext/batch/models/application_template_info.py new file mode 100644 index 00000000..b4960cf4 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/application_template_info.py @@ -0,0 +1,46 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +from msrest.serialization import Model + + +class ApplicationTemplateInfo(Model): + """A reference to an Azure Batch Application Template. + + :param str file_path: The path to an application template file. This can + be a full path, or relative to the current working directory. Alternatively + a relative directory can be supplied with the 'current_directory' argument. + A ValueError will be raised if the supplied file path cannot be found. + :param dict parameters: A dictory of parameter names and values to be + subtituted into the application template. + """ + + _validation = { + 'file_path': {'required': True}, + } + + _attribute_map = { + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'object'}, + } + + def __init__(self, **kwargs): + super(ApplicationTemplateInfo, self).__init__(**kwargs) + self.file_path = kwargs.get('file_path', None) + if not os.path.isfile(self.file_path): + current_directory = kwargs.get('current_directory', ".") + self.file_path = os.path.abspath(os.path.join(current_directory, str(self.file_path))) + self.parameters = kwargs.get('parameters', None) + + # Rule: Template file must exist + # (We do this in order to give a good diagnostic in the most common case, knowing that this is + # technically a race condition because someone could delete the file between our check here and + # reading the file later on. We expect such cases to be rare.) + try: + with open(self.file_path, 'r'): + pass + except EnvironmentError as error: + raise ValueError("Unable to read the template '{}': {}".format(self.file_path, error)) diff --git a/azext/batch/_vendor/v4/azext/batch/models/application_template_info_py3.py b/azext/batch/_vendor/v4/azext/batch/models/application_template_info_py3.py new file mode 100644 index 00000000..091a73fb --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/application_template_info_py3.py @@ -0,0 +1,46 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +from msrest.serialization import Model + + +class ApplicationTemplateInfo(Model): + """A reference to an Azure Batch Application Template. + + :param str file_path: The path to an application template file. This can + be a full path, or relative to the current working directory. Alternatively + a relative directory can be supplied with the 'current_directory' argument. + A ValueError will be raised if the supplied file path cannot be found. + :param dict parameters: A dictory of parameter names and values to be + subtituted into the application template. + """ + + _validation = { + 'file_path': {'required': True}, + } + + _attribute_map = { + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'object'}, + } + + def __init__(self, *, file_path: str, parameters: object=None, current_directory: str=".", **kwargs) -> None: + super(ApplicationTemplateInfo, self).__init__(**kwargs) + self.file_path = file_path + if not os.path.isfile(self.file_path): + current_directory = current_directory + self.file_path = os.path.abspath(os.path.join(current_directory, str(self.file_path))) + self.parameters = parameters + + # Rule: Template file must exist + # (We do this in order to give a good diagnostic in the most common case, knowing that this is + # technically a race condition because someone could delete the file between our check here and + # reading the file later on. We expect such cases to be rare.) + try: + with open(self.file_path, 'r'): + pass + except EnvironmentError as error: + raise ValueError("Unable to read the template '{}': {}".format(self.file_path, error)) diff --git a/azext/batch/_vendor/v4/azext/batch/models/application_template_py3.py b/azext/batch/_vendor/v4/azext/batch/models/application_template_py3.py new file mode 100644 index 00000000..47886dc0 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/application_template_py3.py @@ -0,0 +1,111 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationTemplate(Model): + """An Azure Batch Application Template. + + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + """ + + _attribute_map = { + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + } + + def __init__(self, *, job_manager_task=None, job_preparation_task=None, job_release_task=None, + common_environment_settings=None, on_all_tasks_complete=None, on_task_failure=None, + metadata=None, uses_task_dependencies: bool=None, task_factory=None, **kwargs) -> None: + super(ApplicationTemplate, self).__init__(**kwargs) + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.metadata = metadata + self.uses_task_dependencies = uses_task_dependencies + self.task_factory = task_factory diff --git a/azext/batch/_vendor/v4/azext/batch/models/apt_package_reference.py b/azext/batch/_vendor/v4/azext/batch/models/apt_package_reference.py new file mode 100644 index 00000000..970b62c3 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/apt_package_reference.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from .package_reference_base import PackageReferenceBase + + +class AptPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the APT package + manager on a Linux node (apt-get). + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AptPackageReference, self).__init__(**kwargs) + self.type = 'aptPackage' diff --git a/azext/batch/_vendor/v4/azext/batch/models/apt_package_reference_py3.py b/azext/batch/_vendor/v4/azext/batch/models/apt_package_reference_py3.py new file mode 100644 index 00000000..0380aece --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/apt_package_reference_py3.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from .package_reference_base import PackageReferenceBase + + +class AptPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the APT package + manager on a Linux node (apt-get). + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, *, id: str, version: str=None, **kwargs) -> None: + super(AptPackageReference, self).__init__(id=id, version=version, **kwargs) + self.type = 'aptPackage' diff --git a/azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification.py b/azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification.py new file mode 100644 index 00000000..b08992d7 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification.py @@ -0,0 +1,59 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto pool when the job is submitted. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a pool is automatically created. The Batch service assigns each auto + pool a unique identifier on creation. To distinguish between pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: The minimum lifetime of created auto pools, + and how multiple jobs on a schedule are assigned to pools. When the pool + lifetime is jobSchedule the pool exists for the lifetime of the job + schedule. The Batch Service creates the pool when it creates the first job + on the schedule. You may apply this option only to job schedules, not to + jobs. When the pool lifetime is job the pool exists for the lifetime of + the job to which it is dedicated. The Batch service creates the pool when + it creates the job. If the 'job' option is applied to a job schedule, the + Batch service creates a new auto pool for every job created on the + schedule. Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or :class:`PoolLifetimeOption + ` + :param keep_alive: Whether to keep an auto pool alive after its lifetime + expires. If false, the Batch service deletes the pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the job or job schedule completes. If true, the Batch service does not + delete the pool automatically. It is up to the user to delete auto pools + created with this option. + :type keep_alive: bool + :param pool: The pool specification for the auto pool. + :type pool: :class:`PoolSpecification + ` + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'ExtendedPoolSpecification'}, + } + + def __init__(self, **kwargs): + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = kwargs.get('auto_pool_id_prefix', None) + self.pool_lifetime_option = kwargs.get('pool_lifetime_option', None) + self.keep_alive = kwargs.get('keep_alive', None) + self.pool = kwargs.get('pool', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification_py3.py b/azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification_py3.py new file mode 100644 index 00000000..0a13d181 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/auto_pool_specification_py3.py @@ -0,0 +1,60 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto pool when the job is submitted. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a pool is automatically created. The Batch service assigns each auto + pool a unique identifier on creation. To distinguish between pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: The minimum lifetime of created auto pools, + and how multiple jobs on a schedule are assigned to pools. When the pool + lifetime is jobSchedule the pool exists for the lifetime of the job + schedule. The Batch Service creates the pool when it creates the first job + on the schedule. You may apply this option only to job schedules, not to + jobs. When the pool lifetime is job the pool exists for the lifetime of + the job to which it is dedicated. The Batch service creates the pool when + it creates the job. If the 'job' option is applied to a job schedule, the + Batch service creates a new auto pool for every job created on the + schedule. Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or :class:`PoolLifetimeOption + ` + :param keep_alive: Whether to keep an auto pool alive after its lifetime + expires. If false, the Batch service deletes the pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the job or job schedule completes. If true, the Batch service does not + delete the pool automatically. It is up to the user to delete auto pools + created with this option. + :type keep_alive: bool + :param pool: The pool specification for the auto pool. + :type pool: :class:`PoolSpecification + ` + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'ExtendedPoolSpecification'}, + } + + def __init__(self, *, pool_lifetime_option, auto_pool_id_prefix: str=None, + keep_alive: bool=None, pool=None, **kwargs) -> None: + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = auto_pool_id_prefix + self.pool_lifetime_option = pool_lifetime_option + self.keep_alive = keep_alive + self.pool = pool diff --git a/azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference.py b/azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference.py new file mode 100644 index 00000000..2b06267d --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from .package_reference_base import PackageReferenceBase + + +class ChocolateyPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the Chocolatey package + manager on a Windows node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool allow_empty_checksums: Whether Chocolatey will install packages + without a checksum for validation. Default is false. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'allow_empty_checksums': {'key': 'allowEmptyChecksums', 'type': 'bool'} + } + + def __init__(self, **kwargs): + super(ChocolateyPackageReference, self).__init__(**kwargs) + self.allow_empty_checksums = kwargs.get('allow_empty_checksums', None) + self.type = 'chocolateyPackage' diff --git a/azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference_py3.py b/azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference_py3.py new file mode 100644 index 00000000..1a657070 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/chocolatey_package_reference_py3.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from .package_reference_base import PackageReferenceBase + + +class ChocolateyPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the Chocolatey package + manager on a Windows node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool allow_empty_checksums: Whether Chocolatey will install packages + without a checksum for validation. Default is false. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'allow_empty_checksums': {'key': 'allowEmptyChecksums', 'type': 'bool'} + } + + def __init__(self, *, id: str, version: str=None, allow_empty_checksums: bool=None, **kwargs) -> None: + super(ChocolateyPackageReference, self).__init__(id=id, version=version, **kwargs) + self.allow_empty_checksums = allow_empty_checksums + self.type = 'chocolateyPackage' diff --git a/azext/batch/_vendor/v4/azext/batch/models/constants.py b/azext/batch/_vendor/v4/azext/batch/models/constants.py new file mode 100644 index 00000000..5bd05603 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/constants.py @@ -0,0 +1,65 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +# These properties are reserved for application template use +# and may not be used on jobs using an application template +PROPS_RESERVED_FOR_TEMPLATES = { + 'jobManagerTask', + 'jobPreparationTask', + 'jobReleaseTask', + #'commonEnvironmentSettings', + 'usesTaskDependencies', + 'onAllTasksComplete', + 'onTaskFailure', + 'taskFactory'} + + +PROPS_PERMITTED_ON_TEMPLATES = PROPS_RESERVED_FOR_TEMPLATES.union({ + 'templateMetadata', + 'parameters', + 'metadata'}) + + +ATTRS_RESERVED_FOR_TEMPLATES = { + 'job_manager_task', + 'job_preparation_task', + 'job_release_task', + #'common_environment_settings', + 'uses_task_dependencies', + 'on_all_tasks_complete', + 'on_task_failure', + 'task_factory'} + + +# These properties are reserved for job use +# and may not be used on an application template +PROPS_RESERVED_FOR_JOBS = { + 'id', + 'displayName', + 'priority', + 'constraints', + 'poolInfo', + 'applicationTemplateInfo'} + + +# Properties on a repeatTask object that should be +# applied to each expanded task. +PROPS_ON_REPEAT_TASK = { + 'displayName', + 'containerSettings', + 'resourceFiles', + 'environmentSettings', + 'constraints', + 'userIdentity', + 'exitConditions', + 'clientExtensions', + 'outputFiles', + 'packageReferences'} + + +PROPS_ON_COLLECTION_TASK = PROPS_ON_REPEAT_TASK.union({ + 'multiInstanceSettings', + 'dependsOn'}) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter.py b/azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter.py new file mode 100644 index 00000000..feb0c74e --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter.py @@ -0,0 +1,151 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from azure.batch.models import JobAddParameter +from .constants import ATTRS_RESERVED_FOR_TEMPLATES + + +class ExtendedJobParameter(JobAddParameter): + """An Azure Batch job to add. + + :param id: A string that uniquely identifies the job within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: :class:`JobConstraints + ` + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param pool_info: The pool on which the Batch service runs the job's + tasks. + :type pool_info: :class:`PoolInformation + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + :param application_template_info: A reference to an application template file to + be expanded to complete the job specification. If supplied, the following arugments + cannot also be supplied or they will be overwritten: 'job_manager_task', + 'common_environment_settings', 'uses_task_dependencies', 'on_all_tasks_complete', + 'on_task_failure', 'task_factory', 'job_preparation_task', 'job_release_task'. + :type application_template_info: :class:`ApplicationTemplateInfo + ` + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + 'application_template_info': {'key': 'applicationTemplateInfo', 'type': 'ApplicationTemplateInfo'} + } + + def __init__(self, **kwargs): + super(ExtendedJobParameter, self).__init__(**kwargs) + self.task_factory = kwargs.get('task_factory', None) + self.application_template_info = kwargs.get('application_template_info', None) + if self.application_template_info: + # Rule: Jobs may not use properties reserved for template use + reserved = [k for k, v in self.__dict__.items() \ + if k in ATTRS_RESERVED_FOR_TEMPLATES and v is not None] + if reserved: + raise ValueError("Jobs using application templates may not use these " + "properties: {}".format(', '.join(reserved))) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter_py3.py b/azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter_py3.py new file mode 100644 index 00000000..85f21c05 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_job_parameter_py3.py @@ -0,0 +1,170 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from azure.batch.models import JobAddParameter +from .constants import ATTRS_RESERVED_FOR_TEMPLATES + + +class ExtendedJobParameter(JobAddParameter): + """An Azure Batch job to add. + + :param id: A string that uniquely identifies the job within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: :class:`JobConstraints + ` + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param pool_info: The pool on which the Batch service runs the job's + tasks. + :type pool_info: :class:`PoolInformation + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + :param application_template_info: A reference to an application template file to + be expanded to complete the job specification. If supplied, the following arugments + cannot also be supplied or they will be overwritten: 'job_manager_task', + 'common_environment_settings', 'uses_task_dependencies', 'on_all_tasks_complete', + 'on_task_failure', 'task_factory', 'job_preparation_task', 'job_release_task'. + :type application_template_info: :class:`ApplicationTemplateInfo + ` + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + 'application_template_info': {'key': 'applicationTemplateInfo', 'type': 'ApplicationTemplateInfo'} + } + + def __init__(self, *, id: str, pool_info, display_name: str=None, priority: int=None, constraints=None, + job_manager_task=None, job_preparation_task=None, job_release_task=None, + common_environment_settings=None, on_all_tasks_complete=None, on_task_failure=None, + metadata=None, uses_task_dependencies: bool=None, task_factory=None, + application_template_info=None, **kwargs) -> None: + super(ExtendedJobParameter, self).__init__( + id=id, + display_name=display_name, + priority=priority, + constraints=constraints, + job_manager_task=job_manager_task, + job_preparation_task=job_preparation_task, + job_release_task=job_release_task, + common_environment_settings=common_environment_settings, + pool_info=pool_info, + on_all_tasks_complete=on_all_tasks_complete, + on_task_failure=on_task_failure, + metadata=metadata, + uses_task_dependencies=uses_task_dependencies, + **kwargs) + self.task_factory = task_factory + self.application_template_info = application_template_info + + if self.application_template_info: + # Rule: Jobs may not use properties reserved for template use + reserved = [k for k, v in self.__dict__.items() \ + if k in ATTRS_RESERVED_FOR_TEMPLATES and v is not None] + if reserved: + raise ValueError("Jobs using application templates may not use these " + "properties: {}".format(', '.join(reserved))) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination.py b/azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination.py new file mode 100644 index 00000000..1a79ccdd --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExtendedOutputFileDestination(Model): + """The specification for where output files should be uploaded to on task + completion. + + :param container: A location in Azure blob storage to which files are + uploaded. This cannot be combined with auto_storage. + :type container: :class:`OutputFileBlobContainerDestination + ` + :param auto_storage: An auto-storage file group reference. This cannot be + combined with container. + :type auto_storage: :class:`OutputFileAutoStorageDestination + ` + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + 'auto_storage': {'key': 'autoStorage', 'type': 'OutputFileAutoStorageDestination'}, + } + + def __init__(self, **kwargs): + super(ExtendedOutputFileDestination, self).__init__(**kwargs) + self.container = kwargs.get('container', None) + self.auto_storage = kwargs.get('auto_storage', None) + if self.container and self.auto_storage: + raise ValueError("Cannot specify both container and auto_storage.") diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination_py3.py b/azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination_py3.py new file mode 100644 index 00000000..8b9ffbd4 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_output_file_destination_py3.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExtendedOutputFileDestination(Model): + """The specification for where output files should be uploaded to on task + completion. + + :param container: A location in Azure blob storage to which files are + uploaded. This cannot be combined with auto_storage. + :type container: :class:`OutputFileBlobContainerDestination + ` + :param auto_storage: An auto-storage file group reference. This cannot be + combined with container. + :type auto_storage: :class:`OutputFileAutoStorageDestination + ` + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + 'auto_storage': {'key': 'autoStorage', 'type': 'OutputFileAutoStorageDestination'}, + } + + def __init__(self, *, container=None, auto_storage=None, **kwargs) -> None: + super(ExtendedOutputFileDestination, self).__init__(**kwargs) + if container and auto_storage: + raise ValueError("Cannot specify both container and auto_storage.") + self.container = container + self.auto_storage = auto_storage diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter.py b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter.py new file mode 100644 index 00000000..3d277bf4 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter.py @@ -0,0 +1,185 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from azure.batch.models import PoolAddParameter + + +class ExtendedPoolParameter(PoolAddParameter): + """A pool in the Azure Batch service to add. + + :param id: A string that uniquely identifies the pool within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + pool IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale compute nodes in an Azure Batch pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task specified to run on each compute node as it + joins the pool. The task runs when the node is added to the pool or when + the node is restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(ExtendedPoolParameter, self).__init__(**kwargs) + self.package_references = kwargs.get('package_references', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter_py3.py b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter_py3.py new file mode 100644 index 00000000..9c80c57d --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_parameter_py3.py @@ -0,0 +1,214 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from azure.batch.models import PoolAddParameter + + +class ExtendedPoolParameter(PoolAddParameter): + """A pool in the Azure Batch service to add. + + :param id: A string that uniquely identifies the pool within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + pool IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale compute nodes in an Azure Batch pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task specified to run on each compute node as it + joins the pool. The task runs when the node is added to the pool or when + the node is restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, id: str, vm_size: str, display_name: str=None, cloud_service_configuration=None, + virtual_machine_configuration=None, resize_timeout=None, target_dedicated_nodes: int=None, + target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, + auto_scale_evaluation_interval=None, enable_inter_node_communication: bool=None, + network_configuration=None, start_task=None, certificate_references=None, + application_package_references=None, application_licenses=None, max_tasks_per_node: int=None, + task_scheduling_policy=None, user_accounts=None, metadata=None, package_references=None, + **kwargs) -> None: + super(ExtendedPoolParameter, self).__init__( + id=id, + display_name=display_name, + vm_size=vm_size, + cloud_service_configuration=cloud_service_configuration, + virtual_machine_configuration=virtual_machine_configuration, + resize_timeout=resize_timeout, + target_dedicated_nodes=target_dedicated_nodes, + target_low_priority_nodes=target_low_priority_nodes, + enable_auto_scale=enable_auto_scale, + auto_scale_formula=auto_scale_formula, + auto_scale_evaluation_interval=auto_scale_evaluation_interval, + enable_inter_node_communication=enable_inter_node_communication, + network_configuration=network_configuration, + start_task=start_task, + certificate_references=certificate_references, + application_package_references=application_package_references, + application_licenses=application_licenses, + max_tasks_per_node=max_tasks_per_node, + task_scheduling_policy=task_scheduling_policy, + user_accounts=user_accounts, + metadata=metadata, + **kwargs) + self.package_references = package_references diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification.py b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification.py new file mode 100644 index 00000000..e50f88b2 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification.py @@ -0,0 +1,179 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.batch.models import PoolSpecification + + +class ExtendedPoolSpecification(PoolSpecification): + """Specification for creating a new pool. + + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of the virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property must be specified if the pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property must be specified if the pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, the targetDedicated element is required. If + true, the autoScaleFormula element is required. The pool automatically + resizes according to the formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(ExtendedPoolSpecification, self).__init__(**kwargs) + self.package_references = kwargs.get('package_references', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification_py3.py b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification_py3.py new file mode 100644 index 00000000..e1e8d6f3 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_pool_specification_py3.py @@ -0,0 +1,206 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.batch.models import PoolSpecification + + +class ExtendedPoolSpecification(PoolSpecification): + """Specification for creating a new pool. + + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of the virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property must be specified if the pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property must be specified if the pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, the targetDedicated element is required. If + true, the autoScaleFormula element is required. The pool automatically + resizes according to the formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, vm_size: str, display_name: str=None, cloud_service_configuration=None, + virtual_machine_configuration=None, max_tasks_per_node: int=None, task_scheduling_policy=None, + resize_timeout=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, + enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, + enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, + certificate_references=None, application_package_references=None, application_licenses=None, + user_accounts=None, metadata=None, package_references=None, **kwargs) -> None: + super(ExtendedPoolSpecification, self).__init__( + display_name=display_name, + vm_size=vm_size, + cloud_service_configuration=cloud_service_configuration, + virtual_machine_configuration=virtual_machine_configuration, + max_tasks_per_node=max_tasks_per_node, + task_scheduling_policy=task_scheduling_policy, + resize_timeout=resize_timeout, + target_dedicated_nodes=target_dedicated_nodes, + target_low_priority_nodes=target_low_priority_nodes, + enable_auto_scale=enable_auto_scale, + auto_scale_formula=auto_scale_formula, + auto_scale_evaluation_interval=auto_scale_evaluation_interval, + enable_inter_node_communication=enable_inter_node_communication, + network_configuration=network_configuration, + start_task=start_task, + certificate_references=certificate_references, + application_package_references=application_package_references, + application_licenses=application_licenses, + user_accounts=user_accounts, + metadata=metadata, + **kwargs) + self.package_references = package_references diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_resource_file.py b/azext/batch/_vendor/v4/azext/batch/models/extended_resource_file.py new file mode 100644 index 00000000..448dd5f1 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_resource_file.py @@ -0,0 +1,47 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.batch.models import ResourceFile + + +class ExtendedResourceFile(ResourceFile): + """A file to be downloaded from Azure blob storage to a compute node. + + :param blob_source: The URL of the file within Azure Blob Storage. This + URL must be readable using anonymous access; that is, the Batch service + does not present any credentials when downloading the blob. There are two + ways to get such a URL for a blob in Azure storage: include a Shared + Access Signature (SAS) granting read permissions on the blob, or set the + ACL for the blob or its container to allow public access. + :type blob_source: str + :param file_path: The location on the compute node to which to download + the file, relative to the task's working directory. If using a file group + source that references more than one file, this will be considered the name + of a directory, otherwise it will be treated as the destination file name. + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux compute nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows node. If this property is not specified for a + Linux node, then a default value of 0770 is applied to the file. + If using a file group source that references more than one file, this will be + applied to all files in the group. + :type file_mode: str + :param source: A file source reference which could include a collection of files from + a Azure Storage container or an auto-storage file group. + :type source: :class:`FileSource + ` + """ + + _attribute_map = { + 'blob_source': {'key': 'blobSource', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'} + } + + def __init__(self, **kwargs): + super(ExtendedResourceFile, self).__init__(**kwargs) + self.source = kwargs.get('source', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_resource_file_py3.py b/azext/batch/_vendor/v4/azext/batch/models/extended_resource_file_py3.py new file mode 100644 index 00000000..5624c326 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_resource_file_py3.py @@ -0,0 +1,52 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.batch.models import ResourceFile + + +class ExtendedResourceFile(ResourceFile): + """A file to be downloaded from Azure blob storage to a compute node. + + :param blob_source: The URL of the file within Azure Blob Storage. This + URL must be readable using anonymous access; that is, the Batch service + does not present any credentials when downloading the blob. There are two + ways to get such a URL for a blob in Azure storage: include a Shared + Access Signature (SAS) granting read permissions on the blob, or set the + ACL for the blob or its container to allow public access. + :type blob_source: str + :param file_path: The location on the compute node to which to download + the file, relative to the task's working directory. If using a file group + source that references more than one file, this will be considered the name + of a directory, otherwise it will be treated as the destination file name. + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux compute nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows node. If this property is not specified for a + Linux node, then a default value of 0770 is applied to the file. + If using a file group source that references more than one file, this will be + applied to all files in the group. + :type file_mode: str + :param source: A file source reference which could include a collection of files from + a Azure Storage container or an auto-storage file group. + :type source: :class:`FileSource + ` + """ + + _attribute_map = { + 'blob_source': {'key': 'blobSource', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'} + } + + def __init__(self, *, blob_source: str=None, file_path: str=None, + file_mode: str=None, source=None, **kwargs) -> None: + super(ExtendedResourceFile, self).__init__( + blob_source=blob_source, + file_path=file_path, + file_mode=file_mode, + **kwargs) + self.source = source diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter.py b/azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter.py new file mode 100644 index 00000000..db39961b --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter.py @@ -0,0 +1,147 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from azure.batch.models import TaskAddParameter + + +class ExtendedTaskParameter(TaskAddParameter): + """An Azure Batch task to add. + + :param id: A string that uniquely identifies the task within the job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within a job that differ only by case). + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: :class:`MultiInstanceSettings + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(ExtendedTaskParameter, self).__init__(**kwargs) + self.package_references = kwargs.get('package_references', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter_py3.py b/azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter_py3.py new file mode 100644 index 00000000..a12511eb --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/extended_task_parameter_py3.py @@ -0,0 +1,168 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from azure.batch.models import TaskAddParameter + + +class ExtendedTaskParameter(TaskAddParameter): + """An Azure Batch task to add. + + :param id: A string that uniquely identifies the task within the job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within a job that differ only by case). + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: :class:`MultiInstanceSettings + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, + exit_conditions=None, resource_files=None, output_files=None, environment_settings=None, + affinity_info=None, constraints=None, user_identity=None, + multi_instance_settings=None, depends_on=None, + application_package_references=None, authentication_token_settings=None, + package_references=None, **kwargs) -> None: + super(ExtendedTaskParameter, self).__init__( + id=id, + display_name=display_name, + command_line=command_line, + container_settings=container_settings, + exit_conditions=exit_conditions, + resource_files=resource_files, + output_files=output_files, + environment_settings=environment_settings, + affinity_info=affinity_info, + constraints=constraints, + user_identity=user_identity, + multi_instance_settings=multi_instance_settings, + depends_on=depends_on, + application_package_references=application_package_references, + authentication_token_settings=authentication_token_settings, + **kwargs) + self.package_references = package_references diff --git a/azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory.py b/azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory.py new file mode 100644 index 00000000..383d8bf5 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory.py @@ -0,0 +1,40 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .task_factory_base import TaskFactoryBase + + +class FileCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on the contents + of an Azure Storage container or auto-storage file group. One task + will be generated per input file, and automatically added to the job. + + :param source: The input file source from which the tasks will be generated. + :type source: :class:`FileSource ` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'source': {'required': True}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, **kwargs): + super(FileCollectionTaskFactory, self).__init__(**kwargs) + self.source = kwargs.get('source', None) + self.repeat_task = kwargs.get('repeat_task', None) + self.type = 'taskPerFile' diff --git a/azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory_py3.py b/azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory_py3.py new file mode 100644 index 00000000..98a084e6 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/file_collection_task_factory_py3.py @@ -0,0 +1,41 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .task_factory_base import TaskFactoryBase + + +class FileCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on the contents + of an Azure Storage container or auto-storage file group. One task + will be generated per input file, and automatically added to the job. + + :param source: The input file source from which the tasks will be generated. + :type source: :class:`FileSource ` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'source': {'required': True}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, *, source: str, repeat_task, merge_task=None, **kwargs) -> None: + super(FileCollectionTaskFactory, self).__init__( + merge_task=merge_task, **kwargs) + self.source = source + self.repeat_task = repeat_task + self.type = 'taskPerFile' diff --git a/azext/batch/_vendor/v4/azext/batch/models/file_source.py b/azext/batch/_vendor/v4/azext/batch/models/file_source.py new file mode 100644 index 00000000..a6c6332c --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/file_source.py @@ -0,0 +1,32 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileSource(Model): + """A source of input files to be downloaded onto a compute node. + + :param str file_group: The name of an auto-storage file group. + :param str url: The URL of a file to be downloaded. + :param str container_url: The SAS URL of an Azure Storage container. + :param str prefix: The filename prefix or subdirectory of input files + in either an auto-storage file group or container. Will be ignored if + conbined with url. + """ + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'prefix': {'key': 'prefix', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(FileSource, self).__init__(**kwargs) + self.file_group = kwargs.get('file_group', None) + self.url = kwargs.get('url', None) + self.container_url = kwargs.get('container_url', None) + self.prefix = kwargs.get('prefix', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/file_source_py3.py b/azext/batch/_vendor/v4/azext/batch/models/file_source_py3.py new file mode 100644 index 00000000..8858fe9d --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/file_source_py3.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileSource(Model): + """A source of input files to be downloaded onto a compute node. + + :param str file_group: The name of an auto-storage file group. + :param str url: The URL of a file to be downloaded. + :param str container_url: The SAS URL of an Azure Storage container. + :param str prefix: The filename prefix or subdirectory of input files + in either an auto-storage file group or container. Will be ignored if + conbined with url. + """ + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'prefix': {'key': 'prefix', 'type': 'str'}, + } + + def __init__(self, *, file_group: str=None, url: str=None, + container_url: str=None, prefix: str=None, **kwargs) -> None: + super(FileSource, self).__init__(**kwargs) + self.file_group = file_group + self.url = url + self.container_url = container_url + self.prefix = prefix diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_manager_task.py b/azext/batch/_vendor/v4/azext/batch/models/job_manager_task.py new file mode 100644 index 00000000..33e8d3e0 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_manager_task.py @@ -0,0 +1,167 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class JobManagerTask(Model): + """Specifies details of a Job Manager task. + + The Job Manager task is automatically started when the job is created. The + Batch service tries to schedule the Job Manager task before any other tasks + in the job. When shrinking a pool, the Batch service tries to preserve + compute nodes where Job Manager tasks are running for as long as possible + (that is, nodes running 'normal' tasks are removed before nodes running Job + Manager tasks). When a Job Manager task fails and needs to be restarted, + the system tries to schedule it at the highest priority. If there are no + idle nodes available, the system may terminate one of the running tasks in + the pool and return it to the queue in order to make room for the Job + Manager task to restart. Note that a Job Manager task in one job does not + have priority over tasks in other jobs. Across jobs, only job level + priorities are observed. For example, if a Job Manager in a priority 0 job + needs to be restarted, it will not displace tasks of a priority 1 job. + + :param id: A string that uniquely identifies the Job Manager task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. + :type id: str + :param display_name: The display name of the Job Manager task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: The command line of the Job Manager task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager task runs. If the pool that will run this task has + containerConfiguration set, this must be set as well. If the pool that + will run this task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all task environment variables are mapped + into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param environment_settings: A list of environment variable settings for + the Job Manager task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Manager task. + :type constraints: :class:`TaskConstraints + ` + :param kill_job_on_completion: Whether completion of the Job Manager task + signifies completion of the entire job. If true, when the Job Manager task + completes, the Batch service marks the job as complete. If any tasks are + still running at this time (other than Job Release), those tasks are + terminated. If false, the completion of the Job Manager task does not + affect the job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the job, or have a client or + user terminate the job explicitly. An example of this is if the Job + Manager creates a set of tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control job lifetime, + and using the Job Manager task only to create the tasks for the job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + :param run_exclusive: Whether the Job Manager task requires exclusive use + of the compute node where it runs. If true, no other tasks will run on the + same compute node for as long as the Job Manager is running. If false, + other tasks can run simultaneously with the Job Manager on a compute node. + The Job Manager task counts normally against the node's concurrent task + limit, so this is only relevant if the node allows multiple concurrent + tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param allow_low_priority_node: Whether the Job Manager task may run on a + low-priority compute node. The default value is false. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobManagerTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.kill_job_on_completion = kwargs.get('kill_job_on_completion', None) + self.user_identity = kwargs.get('user_identity', None) + self.run_exclusive = kwargs.get('run_exclusive', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.allow_low_priority_node = kwargs.get('allow_low_priority_node', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_manager_task_py3.py b/azext/batch/_vendor/v4/azext/batch/models/job_manager_task_py3.py new file mode 100644 index 00000000..ba90fec6 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_manager_task_py3.py @@ -0,0 +1,171 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class JobManagerTask(Model): + """Specifies details of a Job Manager task. + + The Job Manager task is automatically started when the job is created. The + Batch service tries to schedule the Job Manager task before any other tasks + in the job. When shrinking a pool, the Batch service tries to preserve + compute nodes where Job Manager tasks are running for as long as possible + (that is, nodes running 'normal' tasks are removed before nodes running Job + Manager tasks). When a Job Manager task fails and needs to be restarted, + the system tries to schedule it at the highest priority. If there are no + idle nodes available, the system may terminate one of the running tasks in + the pool and return it to the queue in order to make room for the Job + Manager task to restart. Note that a Job Manager task in one job does not + have priority over tasks in other jobs. Across jobs, only job level + priorities are observed. For example, if a Job Manager in a priority 0 job + needs to be restarted, it will not displace tasks of a priority 1 job. + + :param id: A string that uniquely identifies the Job Manager task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. + :type id: str + :param display_name: The display name of the Job Manager task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: The command line of the Job Manager task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager task runs. If the pool that will run this task has + containerConfiguration set, this must be set as well. If the pool that + will run this task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all task environment variables are mapped + into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param environment_settings: A list of environment variable settings for + the Job Manager task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Manager task. + :type constraints: :class:`TaskConstraints + ` + :param kill_job_on_completion: Whether completion of the Job Manager task + signifies completion of the entire job. If true, when the Job Manager task + completes, the Batch service marks the job as complete. If any tasks are + still running at this time (other than Job Release), those tasks are + terminated. If false, the completion of the Job Manager task does not + affect the job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the job, or have a client or + user terminate the job explicitly. An example of this is if the Job + Manager creates a set of tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control job lifetime, + and using the Job Manager task only to create the tasks for the job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + :param run_exclusive: Whether the Job Manager task requires exclusive use + of the compute node where it runs. If true, no other tasks will run on the + same compute node for as long as the Job Manager is running. If false, + other tasks can run simultaneously with the Job Manager on a compute node. + The Job Manager task counts normally against the node's concurrent task + limit, so this is only relevant if the node allows multiple concurrent + tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param allow_low_priority_node: Whether the Job Manager task may run on a + low-priority compute node. The default value is false. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, + resource_files=None, output_files=None, environment_settings=None, constraints=None, + kill_job_on_completion: bool=None, user_identity=None, run_exclusive: bool=None, + application_package_references=None, authentication_token_settings=None, + allow_low_priority_node: bool=None, **kwargs) -> None: + super(JobManagerTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.constraints = constraints + self.kill_job_on_completion = kill_job_on_completion + self.user_identity = user_identity + self.run_exclusive = run_exclusive + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.allow_low_priority_node = allow_low_priority_node diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_preparation_task.py b/azext/batch/_vendor/v4/azext/batch/models/job_preparation_task.py new file mode 100644 index 00000000..138f5ba8 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_preparation_task.py @@ -0,0 +1,127 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class JobPreparationTask(Model): + """A Job Preparation task to run before any tasks of the job on any given + compute node. + + You can use Job Preparation to prepare a compute node to run tasks for the + job. Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the tasks in the job. The Job Preparation + task can download these common resource files to the shared location on the + compute node. (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service + on the compute node so that all tasks of that job can communicate with it. + If the Job Preparation task fails (that is, exhausts its retry count before + exiting with exit code 0), Batch will not run tasks of this job on the + compute node. The node remains ineligible to run tasks of this job until it + is reimaged. The node remains active and can be used for other jobs. The + Job Preparation task can run multiple times on the same compute node. + Therefore, you should write the Job Preparation task to handle + re-execution. If the compute node is rebooted, the Job Preparation task is + run again on the node before scheduling any other task of the job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did + not previously complete. If the compute node is reimaged, the Job + Preparation task is run again before scheduling any task of the job. + + :param id: A string that uniquely identifies the Job Preparation task + within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other task in the job can + have the same ID as the Job Preparation task. If you try to submit a task + with the same ID, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Preparation task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all task + environment variables are mapped into the container, and the task command + line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Preparation task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Preparation task. + :type constraints: :class:`TaskConstraints + ` + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation task to complete successfully before scheduling any other + tasks of the job on the compute node. A Job Preparation task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + task fails on a compute node, the Batch service retries the Job + Preparation task up to its maximum retry count (as specified in the + constraints element). If the task has still not completed successfully + after all retries, then the Batch service will not schedule tasks of the + job to the compute node. The compute node remains active and eligible to + run tasks of other jobs. If false, the Batch service will not wait for the + Job Preparation task to complete. In this case, other tasks of the job can + start executing on the compute node while the Job Preparation task is + still running; and even if the Job Preparation task fails, new tasks will + continue to be scheduled on the node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + task runs. If omitted, the task runs as a non-administrative user unique + to the task on Windows nodes, or a a non-administrative user unique to the + pool on Linux nodes. + :type user_identity: :class:`UserIdentity + ` + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation task after a compute node reboots. The + Job Preparation task is always rerun if a compute node is reimaged, or if + the Job Preparation task did not complete (e.g. because the reboot + occurred while the task was running). Therefore, you should always write a + Job Preparation task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobPreparationTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.wait_for_success = kwargs.get('wait_for_success', None) + self.user_identity = kwargs.get('user_identity', None) + self.rerun_on_node_reboot_after_success = kwargs.get('rerun_on_node_reboot_after_success', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_preparation_task_py3.py b/azext/batch/_vendor/v4/azext/batch/models/job_preparation_task_py3.py new file mode 100644 index 00000000..9e43d284 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_preparation_task_py3.py @@ -0,0 +1,129 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class JobPreparationTask(Model): + """A Job Preparation task to run before any tasks of the job on any given + compute node. + + You can use Job Preparation to prepare a compute node to run tasks for the + job. Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the tasks in the job. The Job Preparation + task can download these common resource files to the shared location on the + compute node. (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service + on the compute node so that all tasks of that job can communicate with it. + If the Job Preparation task fails (that is, exhausts its retry count before + exiting with exit code 0), Batch will not run tasks of this job on the + compute node. The node remains ineligible to run tasks of this job until it + is reimaged. The node remains active and can be used for other jobs. The + Job Preparation task can run multiple times on the same compute node. + Therefore, you should write the Job Preparation task to handle + re-execution. If the compute node is rebooted, the Job Preparation task is + run again on the node before scheduling any other task of the job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did + not previously complete. If the compute node is reimaged, the Job + Preparation task is run again before scheduling any task of the job. + + :param id: A string that uniquely identifies the Job Preparation task + within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other task in the job can + have the same ID as the Job Preparation task. If you try to submit a task + with the same ID, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Preparation task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all task + environment variables are mapped into the container, and the task command + line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Preparation task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Preparation task. + :type constraints: :class:`TaskConstraints + ` + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation task to complete successfully before scheduling any other + tasks of the job on the compute node. A Job Preparation task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + task fails on a compute node, the Batch service retries the Job + Preparation task up to its maximum retry count (as specified in the + constraints element). If the task has still not completed successfully + after all retries, then the Batch service will not schedule tasks of the + job to the compute node. The compute node remains active and eligible to + run tasks of other jobs. If false, the Batch service will not wait for the + Job Preparation task to complete. In this case, other tasks of the job can + start executing on the compute node while the Job Preparation task is + still running; and even if the Job Preparation task fails, new tasks will + continue to be scheduled on the node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + task runs. If omitted, the task runs as a non-administrative user unique + to the task on Windows nodes, or a a non-administrative user unique to the + pool on Linux nodes. + :type user_identity: :class:`UserIdentity + ` + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation task after a compute node reboots. The + Job Preparation task is always rerun if a compute node is reimaged, or if + the Job Preparation task did not complete (e.g. because the reboot + occurred while the task was running). Therefore, you should always write a + Job Preparation task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, + environment_settings=None, constraints=None, wait_for_success: bool=None, user_identity=None, + rerun_on_node_reboot_after_success: bool=None, **kwargs) -> None: + super(JobPreparationTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.constraints = constraints + self.wait_for_success = wait_for_success + self.user_identity = user_identity + self.rerun_on_node_reboot_after_success = rerun_on_node_reboot_after_success diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_release_task.py b/azext/batch/_vendor/v4/azext/batch/models/job_release_task.py new file mode 100644 index 00000000..fa406d6f --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_release_task.py @@ -0,0 +1,111 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class JobReleaseTask(Model): + """A Job Release task to run on job completion on any compute node where the + job has run. + + The Job Release task runs when the job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the job is still active, the job's maximum wall clock time constraint + is reached, and the job is still active, or the job's Job Manager task + completed, and the job is configured to terminate when the Job Manager + completes. The Job Release task runs on each compute node where tasks of + the job have run and the Job Preparation task ran and completed. If you + reimage a compute node after it has run the Job Preparation task, and the + job ends without any further tasks of the job running on that compute node + (and hence the Job Preparation task does not re-run), then the Job Release + task does not run on that node. If a compute node reboots while the Job + Release task is still running, the Job Release task runs again when the + compute node starts up. The job is not marked as complete until all Job + Release tasks have completed. The Job Release task runs in the background. + It does not occupy a scheduling slot; that is, it does not count towards + the maxTasksPerNode limit specified on the pool. + + :param id: A string that uniquely identifies the Job Release task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other task in the job can have the + same ID as the Job Release task. If you try to submit a task with the same + ID, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Release task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all task environment variables + are mapped into the container, and the task command line is executed in + the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Release task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param max_wall_clock_time: The maximum elapsed time that the Job Release + task may run on a given compute node, measured from the time the task + starts. If the task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory for + the Job Release task on the compute node. After this time, the Batch + service may delete the task directory and all its contents. The default is + infinite, i.e. the task directory will be retained until the compute node + is removed or reimaged. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, **kwargs): + super(JobReleaseTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.retention_time = kwargs.get('retention_time', None) + self.user_identity = kwargs.get('user_identity', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_release_task_py3.py b/azext/batch/_vendor/v4/azext/batch/models/job_release_task_py3.py new file mode 100644 index 00000000..93d3af3c --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_release_task_py3.py @@ -0,0 +1,113 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class JobReleaseTask(Model): + """A Job Release task to run on job completion on any compute node where the + job has run. + + The Job Release task runs when the job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the job is still active, the job's maximum wall clock time constraint + is reached, and the job is still active, or the job's Job Manager task + completed, and the job is configured to terminate when the Job Manager + completes. The Job Release task runs on each compute node where tasks of + the job have run and the Job Preparation task ran and completed. If you + reimage a compute node after it has run the Job Preparation task, and the + job ends without any further tasks of the job running on that compute node + (and hence the Job Preparation task does not re-run), then the Job Release + task does not run on that node. If a compute node reboots while the Job + Release task is still running, the Job Release task runs again when the + compute node starts up. The job is not marked as complete until all Job + Release tasks have completed. The Job Release task runs in the background. + It does not occupy a scheduling slot; that is, it does not count towards + the maxTasksPerNode limit specified on the pool. + + :param id: A string that uniquely identifies the Job Release task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other task in the job can have the + same ID as the Job Release task. If you try to submit a task with the same + ID, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Release task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all task environment variables + are mapped into the container, and the task command line is executed in + the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Release task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param max_wall_clock_time: The maximum elapsed time that the Job Release + task may run on a given compute node, measured from the time the task + starts. If the task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory for + the Job Release task on the compute node. After this time, the Batch + service may delete the task directory and all its contents. The default is + infinite, i.e. the task directory will be retained until the compute node + is removed or reimaged. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, + environment_settings=None, max_wall_clock_time=None, retention_time=None, user_identity=None, + **kwargs) -> None: + super(JobReleaseTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.max_wall_clock_time = max_wall_clock_time + self.retention_time = retention_time + self.user_identity = user_identity diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_template.py b/azext/batch/_vendor/v4/azext/batch/models/job_template.py new file mode 100644 index 00000000..84a26a3e --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_template.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobTemplate(Model): + """A Job Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/jobs" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the job. + :type properties: :class:`ExtendedJobParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedJobParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/jobs" + + def __init__(self, **kwargs): + super(JobTemplate, self).__init__(**kwargs) + self.properties = kwargs.get('properties') + self.api_version = kwargs.get('api_version', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/job_template_py3.py b/azext/batch/_vendor/v4/azext/batch/models/job_template_py3.py new file mode 100644 index 00000000..f02b4a8d --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/job_template_py3.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobTemplate(Model): + """A Job Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/jobs" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the job. + :type properties: :class:`ExtendedJobParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedJobParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/jobs" + + def __init__(self, *, properties, api_version: str=None, **kwargs) -> None: + super(JobTemplate, self).__init__(**kwargs) + self.properties = properties + self.api_version = api_version diff --git a/azext/batch/_vendor/v4/azext/batch/models/merge_task.py b/azext/batch/_vendor/v4/azext/batch/models/merge_task.py new file mode 100644 index 00000000..7127e4b6 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/merge_task.py @@ -0,0 +1,130 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class MergeTask(Model): + """An Azure Batch task template to repeat. + + :param str id: The ID of the merge task. + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'}, + } + + def __init__(self, **kwargs): + super(MergeTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line') + self.exit_conditions = kwargs.get('exit_conditions', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.depends_on = kwargs.get('depends_on', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.output_files = kwargs.get('output_files', None) + self.package_references = kwargs.get('package_references', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/merge_task_py3.py b/azext/batch/_vendor/v4/azext/batch/models/merge_task_py3.py new file mode 100644 index 00000000..9754f07d --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/merge_task_py3.py @@ -0,0 +1,133 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class MergeTask(Model): + """An Azure Batch task template to repeat. + + :param str id: The ID of the merge task. + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'}, + } + + def __init__(self, *, command_line: str, id: str=None, display_name: str=None, exit_conditions=None, + resource_files=None, environment_settings=None, affinity_info=None, constraints=None, + user_identity=None, depends_on=None, application_package_references=None, + authentication_token_settings=None, output_files=None, package_references=None, **kwargs) -> None: + super(MergeTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.exit_conditions = exit_conditions + self.resource_files = resource_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.depends_on = depends_on + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.output_files = output_files + self.package_references = package_references diff --git a/azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings.py b/azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings.py new file mode 100644 index 00000000..629d71f5 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings.py @@ -0,0 +1,48 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +from msrest.serialization import Model + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance task. + + Multi-instance tasks are commonly used to support MPI tasks. + + :param number_of_instances: The number of compute nodes required by the + task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: The command line to run on all the + compute nodes to enable them to coordinate when the primary runs the main + task command. A typical coordination command line launches a background + service and verifies that the service is ready to process inter-node + messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the task working + directory, but instead are downloaded to the task root directory (one + directory above the working directory). + :type common_resource_files: list of :class:`ExtendedResourceFile + ` + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ExtendedResourceFile]'}, + } + + def __init__(self, **kwargs): + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = kwargs.get('number_of_instances') + self.coordination_command_line = kwargs.get('coordination_command_line', None) + self.common_resource_files = kwargs.get('common_resource_files', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings_py3.py b/azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings_py3.py new file mode 100644 index 00000000..14a51037 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/multi_instance_settings_py3.py @@ -0,0 +1,49 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +from msrest.serialization import Model + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance task. + + Multi-instance tasks are commonly used to support MPI tasks. + + :param number_of_instances: The number of compute nodes required by the + task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: The command line to run on all the + compute nodes to enable them to coordinate when the primary runs the main + task command. A typical coordination command line launches a background + service and verifies that the service is ready to process inter-node + messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the task working + directory, but instead are downloaded to the task root directory (one + directory above the working directory). + :type common_resource_files: list of :class:`ExtendedResourceFile + ` + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ExtendedResourceFile]'}, + } + + def __init__(self, *, coordination_command_line: int, number_of_instances: str=None, + common_resource_files=None, **kwargs) -> None: + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = number_of_instances + self.coordination_command_line = coordination_command_line + self.common_resource_files = common_resource_files diff --git a/azext/batch/_vendor/v4/azext/batch/models/output_file.py b/azext/batch/_vendor/v4/azext/batch/models/output_file.py new file mode 100644 index 00000000..a151d549 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/output_file.py @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch node to another + location after the Batch service has finished executing the task process. + + :param file_pattern: A pattern indicating which file(s) to upload. Both + relative and absolute paths are supported. Relative paths are relative to + the task working directory. The following wildcards are supported: * + matches 0 or more characters (for example pattern abc* would match abc or + abcdef), ** matches any directory, ? matches any single character, [abc] + matches one character in the brackets, and [a-c] matches one character in + the range. Brackets can include a negation to match any character not + specified (for example [!abc] matches any character but a, b, or c). If a + file name starts with "." it is ignored by default but may be matched by + specifying it explicitly (for example *.gif will not match .a.gif, but + .*.gif will). A simple example: **\\*.txt matches any file that does not + start in '.' and ends with .txt in the task working directory or any + subdirectory. If the filename contains a wildcard character it can be + escaped using brackets (for example abc[*] would match a file named abc*). + Note that both \\ and / are treated as directory separators on Windows, + but only / is on Linux. Environment variables (%var% on Windows or $var on + Linux) are expanded prior to the pattern being applied. + :type file_pattern: str + :param destination: The destination for the output file(s). + :type destination: :class:`ExtendedOutputFileDestination + ` + :param upload_options: Additional options for the upload operation, + including under what conditions to perform the upload. + :type upload_options: :class:`OutputFileUploadOptions + ` + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'ExtendedOutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, **kwargs): + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = kwargs.get('file_pattern') + self.destination = kwargs.get('destination') + self.upload_options = kwargs.get('upload_options') diff --git a/azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination.py b/azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination.py new file mode 100644 index 00000000..b24bc8a1 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileAutoStorageDestination(Model): + """An speficition of output files upload destination that uses an + auto-storage file group. + + :param str file_group: The name of the file group that the output files will + be uploaded to. + :param str path: The destination path within the file group that the files will + be uploaded to. Is the output file specification refers to a single file, this will + be treated as a file name. If the output file specification refers to potentially + multiple files, this will be treated as a subfolder. + """ + + _validation = { + 'file_group': {'required': True} + } + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(OutputFileAutoStorageDestination, self).__init__(**kwargs) + self.file_group = kwargs.get('file_group') + self.path = kwargs.get('path', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination_py3.py b/azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination_py3.py new file mode 100644 index 00000000..5614a84a --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/output_file_auto_storage_destination_py3.py @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileAutoStorageDestination(Model): + """An speficition of output files upload destination that uses an + auto-storage file group. + + :param str file_group: The name of the file group that the output files will + be uploaded to. + :param str path: The destination path within the file group that the files will + be uploaded to. Is the output file specification refers to a single file, this will + be treated as a file name. If the output file specification refers to potentially + multiple files, this will be treated as a subfolder. + """ + + _validation = { + 'file_group': {'required': True} + } + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__(self, *, file_group: str, path: str=None, **kwargs) -> None: + super(OutputFileAutoStorageDestination, self).__init__(**kwargs) + self.file_group = file_group + self.path = path diff --git a/azext/batch/_vendor/v4/azext/batch/models/output_file_py3.py b/azext/batch/_vendor/v4/azext/batch/models/output_file_py3.py new file mode 100644 index 00000000..f2e5e852 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/output_file_py3.py @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch node to another + location after the Batch service has finished executing the task process. + + :param file_pattern: A pattern indicating which file(s) to upload. Both + relative and absolute paths are supported. Relative paths are relative to + the task working directory. The following wildcards are supported: * + matches 0 or more characters (for example pattern abc* would match abc or + abcdef), ** matches any directory, ? matches any single character, [abc] + matches one character in the brackets, and [a-c] matches one character in + the range. Brackets can include a negation to match any character not + specified (for example [!abc] matches any character but a, b, or c). If a + file name starts with "." it is ignored by default but may be matched by + specifying it explicitly (for example *.gif will not match .a.gif, but + .*.gif will). A simple example: **\\*.txt matches any file that does not + start in '.' and ends with .txt in the task working directory or any + subdirectory. If the filename contains a wildcard character it can be + escaped using brackets (for example abc[*] would match a file named abc*). + Note that both \\ and / are treated as directory separators on Windows, + but only / is on Linux. Environment variables (%var% on Windows or $var on + Linux) are expanded prior to the pattern being applied. + :type file_pattern: str + :param destination: The destination for the output file(s). + :type destination: :class:`ExtendedOutputFileDestination + ` + :param upload_options: Additional options for the upload operation, + including under what conditions to perform the upload. + :type upload_options: :class:`OutputFileUploadOptions + ` + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'ExtendedOutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, *, file_pattern: str, destination, upload_options, **kwargs) -> None: + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = file_pattern + self.destination = destination + self.upload_options = upload_options diff --git a/azext/batch/_vendor/v4/azext/batch/models/package_reference_base.py b/azext/batch/_vendor/v4/azext/batch/models/package_reference_base.py new file mode 100644 index 00000000..e551b252 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/package_reference_base.py @@ -0,0 +1,41 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class PackageReferenceBase(Model): + """A reference to a package to be installed on the compute nodes using + a package manager. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + _subtype_map = { + 'type': {'aptPackage': 'AptPackageReference', + 'chocolateyPackage': 'ChocolateyPackageReference', + 'yumPackage': 'YumPackageReference'} + } + + def __init__(self, **kwargs): + super(PackageReferenceBase, self).__init__(**kwargs) + self.type = None + self.id = kwargs.get('id') + self.version = kwargs.get('version', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/package_reference_base_py3.py b/azext/batch/_vendor/v4/azext/batch/models/package_reference_base_py3.py new file mode 100644 index 00000000..df720c44 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/package_reference_base_py3.py @@ -0,0 +1,41 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from msrest.serialization import Model + + +class PackageReferenceBase(Model): + """A reference to a package to be installed on the compute nodes using + a package manager. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + _subtype_map = { + 'type': {'aptPackage': 'AptPackageReference', + 'chocolateyPackage': 'ChocolateyPackageReference', + 'yumPackage': 'YumPackageReference'} + } + + def __init__(self, *, id: str, version: str=None, **kwargs) -> None: + super(PackageReferenceBase, self).__init__(**kwargs) + self.type = None + self.id = id + self.version = version diff --git a/azext/batch/_vendor/v4/azext/batch/models/parameter_set.py b/azext/batch/_vendor/v4/azext/batch/models/parameter_set.py new file mode 100644 index 00000000..da6a02e1 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/parameter_set.py @@ -0,0 +1,45 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ParameterSet(Model): + """A set of parametric sweep range range parameters. + + :param int start: The starting value of the sweep. + :param int end: The ending value of the sweep (inclusive). + :param int step: The incremental step value, default is 1. The step value + can be negative (i.e. a decending sweep), but only id the start value is + a higher value than the end. + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'step': {'key': 'step', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ParameterSet, self).__init__(**kwargs) + try: + self.start = int(kwargs.get('start')) + self.end = int(kwargs.get('end')) + self.step = int(kwargs.get('step', 1)) + except (TypeError, ValueError): + raise ValueError("'start', 'end' and 'step' parameters must be integers.") + if self.step == 0: + raise ValueError("'step' parameter cannot be 0.") + elif self.start > self.end and self.step > 0: + raise ValueError( + "'step' must be a negative number when 'start' is greater than 'end'") + elif self.start < self.end and self.step < 0: + raise ValueError( + "'step' must be a positive number when 'end' is greater than 'start'") diff --git a/azext/batch/_vendor/v4/azext/batch/models/parameter_set_py3.py b/azext/batch/_vendor/v4/azext/batch/models/parameter_set_py3.py new file mode 100644 index 00000000..57b599a2 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/parameter_set_py3.py @@ -0,0 +1,45 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ParameterSet(Model): + """A set of parametric sweep range range parameters. + + :param int start: The starting value of the sweep. + :param int end: The ending value of the sweep (inclusive). + :param int step: The incremental step value, default is 1. The step value + can be negative (i.e. a decending sweep), but only id the start value is + a higher value than the end. + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'step': {'key': 'step', 'type': 'int'}, + } + + def __init__(self, *, start: int, end: int, step: int=1, **kwargs) -> None: + super(ParameterSet, self).__init__(**kwargs) + try: + self.start = int(start) + self.end = int(end) + self.step = int(step) + except (TypeError, ValueError): + raise ValueError("'start', 'end' and 'step' parameters must be integers.") + if step == 0: + raise ValueError("'step' parameter cannot be 0.") + elif start > end and step > 0: + raise ValueError( + "'step' must be a negative number when 'start' is greater than 'end'") + elif start < end and step < 0: + raise ValueError( + "'step' must be a positive number when 'end' is greater than 'start'") diff --git a/azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory.py b/azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory.py new file mode 100644 index 00000000..7e11170b --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory.py @@ -0,0 +1,43 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .task_factory_base import TaskFactoryBase + + +class ParametricSweepTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on one or more parameter + sets to define a numeric input range. Each parameter set will have a start, end + and step value. A task will be generated for each integer in this range. Multiple + parameter sets can be combined for a multi-dimensional sweep. + + :param parameter_sets: A list if parameter sets from which tasks will be generated. + :type parameter_sets: A list of :class:`ParameterSet` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'parameter_sets': {'required': True, 'min_items': 1}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'parameter_sets': {'key': 'parameterSets', 'type': '[ParameterSet]'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, **kwargs): + super(ParametricSweepTaskFactory, self).__init__(**kwargs) + self.parameter_sets = kwargs.get('parameter_sets', None) + self.repeat_task = kwargs.get('repeat_task', None) + self.type = 'parametricSweep' + if not self.parameter_sets: + raise ValueError("Parametric Sweep task factory requires at least one parameter set.") diff --git a/azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory_py3.py b/azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory_py3.py new file mode 100644 index 00000000..991354b5 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/parametric_sweep_task_factory_py3.py @@ -0,0 +1,43 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .task_factory_base import TaskFactoryBase + + +class ParametricSweepTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on one or more parameter + sets to define a numeric input range. Each parameter set will have a start, end + and step value. A task will be generated for each integer in this range. Multiple + parameter sets can be combined for a multi-dimensional sweep. + + :param parameter_sets: A list if parameter sets from which tasks will be generated. + :type parameter_sets: A list of :class:`ParameterSet` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'parameter_sets': {'required': True, 'min_items': 1}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'parameter_sets': {'key': 'parameterSets', 'type': '[ParameterSet]'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, *, parameter_sets, repeat_task, merge_task=None, **kwargs) -> None: + super(ParametricSweepTaskFactory, self).__init__(merge_task=merge_task, **kwargs) + if not parameter_sets: + raise ValueError("Parametric Sweep task factory requires at least one parameter set.") + self.parameter_sets = parameter_sets + self.repeat_task = repeat_task + self.type = 'parametricSweep' diff --git a/azext/batch/_vendor/v4/azext/batch/models/pool_template.py b/azext/batch/_vendor/v4/azext/batch/models/pool_template.py new file mode 100644 index 00000000..a01875e7 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/pool_template.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolTemplate(Model): + """A Pool Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/pools" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the pool. + :type properties: :class:`ExtendedPoolParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedPoolParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/pools" + + def __init__(self, **kwargs): + super(PoolTemplate, self).__init__(**kwargs) + self.properties = kwargs.get('properties') + self.api_version = kwargs.get('api_version', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/pool_template_py3.py b/azext/batch/_vendor/v4/azext/batch/models/pool_template_py3.py new file mode 100644 index 00000000..d58a9d97 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/pool_template_py3.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolTemplate(Model): + """A Pool Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/pools" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the pool. + :type properties: :class:`ExtendedPoolParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedPoolParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/pools" + + def __init__(self, *, properties: str, api_version=None, **kwargs) -> None: + super(PoolTemplate, self).__init__(**kwargs) + self.properties = properties + self.api_version = api_version diff --git a/azext/batch/_vendor/v4/azext/batch/models/repeat_task.py b/azext/batch/_vendor/v4/azext/batch/models/repeat_task.py new file mode 100644 index 00000000..525c61db --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/repeat_task.py @@ -0,0 +1,117 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RepeatTask(Model): + """An Azure Batch task template to repeat. + + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(RepeatTask, self).__init__(**kwargs) + self.display_name = kwargs.get('display_name') + self.command_line = kwargs.get('command_line', None) + self.exit_conditions = kwargs.get('exit_conditions', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.output_files = kwargs.get('output_files', None) + self.package_references = kwargs.get('package_references', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/repeat_task_py3.py b/azext/batch/_vendor/v4/azext/batch/models/repeat_task_py3.py new file mode 100644 index 00000000..fba0ec66 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/repeat_task_py3.py @@ -0,0 +1,121 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RepeatTask(Model): + """An Azure Batch task template to repeat. + + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, command_line: str, display_name: str=None, container_settings=None, exit_conditions=None, + resource_files=None, environment_settings=None, affinity_info=None, constraints=None, + user_identity=None, application_package_references=None, authentication_token_settings=None, + output_files=None, package_references=None, **kwargs) -> None: + super(RepeatTask, self).__init__(**kwargs) + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.exit_conditions = exit_conditions + self.resource_files = resource_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.output_files = output_files + self.package_references = package_references diff --git a/azext/batch/_vendor/v4/azext/batch/models/start_task.py b/azext/batch/_vendor/v4/azext/batch/models/start_task.py new file mode 100644 index 00000000..847bde43 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/start_task.py @@ -0,0 +1,87 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class StartTask(Model): + """A task which is run when a compute node joins a pool in the Azure Batch + service, or when the compute node is rebooted or reimaged. + + :param command_line: The command line of the start task. The command line + does not run under a shell, and therefore cannot take advantage of shell + features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + start task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all task environment variables are + mapped into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the start task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param user_identity: The user identity under which the start task runs. + If omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the task. If the maximum retry count is + -1, the Batch service retries the task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start task to complete successfully (that is, to exit with exit code 0) + before scheduling any tasks on the compute node. If true and the start + task fails on a compute node, the Batch service retries the start task up + to its maximum retry count (maxTaskRetryCount). If the task has still not + completed successfully after all retries, then the Batch service marks the + compute node unusable, and will not schedule tasks to it. This condition + can be detected via the node state and failure info details. If false, the + Batch service will not wait for the start task to complete. In this case, + other tasks can start executing on the compute node while the start task + is still running; and even if the start task fails, new tasks will + continue to be scheduled on the node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(StartTask, self).__init__(**kwargs) + self.command_line = kwargs.get('command_line') + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.user_identity = kwargs.get('user_identity', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) + self.wait_for_success = kwargs.get('wait_for_success', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/start_task_py3.py b/azext/batch/_vendor/v4/azext/batch/models/start_task_py3.py new file mode 100644 index 00000000..174fcdb6 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/start_task_py3.py @@ -0,0 +1,88 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class StartTask(Model): + """A task which is run when a compute node joins a pool in the Azure Batch + service, or when the compute node is rebooted or reimaged. + + :param command_line: The command line of the start task. The command line + does not run under a shell, and therefore cannot take advantage of shell + features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + start task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all task environment variables are + mapped into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the start task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param user_identity: The user identity under which the start task runs. + If omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the task. If the maximum retry count is + -1, the Batch service retries the task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start task to complete successfully (that is, to exit with exit code 0) + before scheduling any tasks on the compute node. If true and the start + task fails on a compute node, the Batch service retries the start task up + to its maximum retry count (maxTaskRetryCount). If the task has still not + completed successfully after all retries, then the Batch service marks the + compute node unusable, and will not schedule tasks to it. This condition + can be detected via the node state and failure info details. If false, the + Batch service will not wait for the start task to complete. In this case, + other tasks can start executing on the compute node while the start task + is still running; and even if the start task fails, new tasks will + continue to be scheduled on the node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, container_settings=None, resource_files=None, environment_settings=None, + user_identity=None, max_task_retry_count: int=None, wait_for_success: bool=None, **kwargs) -> None: + super(StartTask, self).__init__(**kwargs) + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.user_identity = user_identity + self.max_task_retry_count = max_task_retry_count + self.wait_for_success = wait_for_success diff --git a/azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory.py b/azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory.py new file mode 100644 index 00000000..faf8c7f3 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory.py @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .task_factory_base import TaskFactoryBase + + +class TaskCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for adding a predefined collection of tasks automatically + to a job on submission. + + :param tasks: A list if task parameters, each of which will be added straight to the job. + :type tasks: A list of :class:`ExtendedTaskParameter + ` + """ + + _validation = { + 'type': {'required': True}, + 'tasks': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'tasks': {'key': 'tasks', 'type': '[ExtendedTaskParameter]'}, + } + + def __init__(self, **kwargs): + super(TaskCollectionTaskFactory, self).__init__(**kwargs) + self.tasks = kwargs.get('tasks') + self.type = 'taskCollection' diff --git a/azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory_py3.py b/azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory_py3.py new file mode 100644 index 00000000..4b28ae0e --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/task_collection_task_factory_py3.py @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .task_factory_base import TaskFactoryBase + + +class TaskCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for adding a predefined collection of tasks automatically + to a job on submission. + + :param tasks: A list if task parameters, each of which will be added straight to the job. + :type tasks: A list of :class:`ExtendedTaskParameter + ` + """ + + _validation = { + 'type': {'required': True}, + 'tasks': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'tasks': {'key': 'tasks', 'type': '[ExtendedTaskParameter]'}, + } + + def __init__(self, *, tasks, **kwargs) -> None: + super(TaskCollectionTaskFactory, self).__init__(**kwargs) + self.tasks = tasks + self.type = 'taskCollection' diff --git a/azext/batch/_vendor/v4/azext/batch/models/task_factory_base.py b/azext/batch/_vendor/v4/azext/batch/models/task_factory_base.py new file mode 100644 index 00000000..98839d08 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/task_factory_base.py @@ -0,0 +1,36 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskFactoryBase(Model): + """A Task Factory for automatically adding a collection of tasks to a job on + submission. + + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + _subtype_map = { + 'type': {'parametricSweep': 'ParametricSweepTaskFactory', + 'taskPerFile': 'FileCollectionTaskFactory', + 'taskCollection': 'TaskCollectionTaskFactory'} + } + + def __init__(self, **kwargs): + super(TaskFactoryBase, self).__init__(**kwargs) + self.merge_task = kwargs.get('merge_task', None) + self.type = None diff --git a/azext/batch/_vendor/v4/azext/batch/models/task_factory_base_py3.py b/azext/batch/_vendor/v4/azext/batch/models/task_factory_base_py3.py new file mode 100644 index 00000000..4ca7d736 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/task_factory_base_py3.py @@ -0,0 +1,36 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskFactoryBase(Model): + """A Task Factory for automatically adding a collection of tasks to a job on + submission. + + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + _subtype_map = { + 'type': {'parametricSweep': 'ParametricSweepTaskFactory', + 'taskPerFile': 'FileCollectionTaskFactory', + 'taskCollection': 'TaskCollectionTaskFactory'} + } + + def __init__(self, *, merge_task=None, **kwargs) -> None: + super(TaskFactoryBase, self).__init__(**kwargs) + self.merge_task = merge_task + self.type = None diff --git a/azext/batch/_vendor/v4/azext/batch/models/yum_package_reference.py b/azext/batch/_vendor/v4/azext/batch/models/yum_package_reference.py new file mode 100644 index 00000000..56c1b20d --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/yum_package_reference.py @@ -0,0 +1,38 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from .package_reference_base import PackageReferenceBase + + +class YumPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the YUM package + manager on a Linux node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool disable_excludes: Whether to allow packages that might otherwise + be excluded by VM configuration (e.g. kernel packages). Default is False. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'disable_excludes': {'key': 'disableExcludes', 'type': 'bool'} + } + + def __init__(self, **kwargs): + super(YumPackageReference, self).__init__(**kwargs) + self.id = kwargs.get('id') + self.version = kwargs.get('version', None) + self.disable = kwargs.get('disable', None) diff --git a/azext/batch/_vendor/v4/azext/batch/models/yum_package_reference_py3.py b/azext/batch/_vendor/v4/azext/batch/models/yum_package_reference_py3.py new file mode 100644 index 00000000..4602e751 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/batch/models/yum_package_reference_py3.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=redefined-builtin + +from .package_reference_base import PackageReferenceBase + + +class YumPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the YUM package + manager on a Linux node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool disable_excludes: Whether to allow packages that might otherwise + be excluded by VM configuration (e.g. kernel packages). Default is False. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'disable_excludes': {'key': 'disableExcludes', 'type': 'bool'} + } + + def __init__(self, *, id: str, version: str=None, disable_excludes: bool=None, **kwargs) -> None: + super(YumPackageReference, self).__init__(id=id, version=version, **kwargs) + self.disable_excludes = disable_excludes + self.type = 'yumPackage' diff --git a/azext/batch/_vendor/v4/azure/batch/__init__.py b/azext/batch/_vendor/v4/azure/batch/__init__.py new file mode 100644 index 00000000..59333308 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/azext/batch/_vendor/v4/azure/batch/models/__init__.py b/azext/batch/_vendor/v4/azure/batch/models/__init__.py new file mode 100644 index 00000000..5ffc99a7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/__init__.py @@ -0,0 +1,721 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from .pool_usage_metrics_py3 import PoolUsageMetrics + from .image_reference_py3 import ImageReference + from .node_agent_sku_py3 import NodeAgentSku + from .authentication_token_settings_py3 import AuthenticationTokenSettings + from .usage_statistics_py3 import UsageStatistics + from .resource_statistics_py3 import ResourceStatistics + from .pool_statistics_py3 import PoolStatistics + from .job_statistics_py3 import JobStatistics + from .name_value_pair_py3 import NameValuePair + from .delete_certificate_error_py3 import DeleteCertificateError + from .certificate_py3 import Certificate + from .application_package_reference_py3 import ApplicationPackageReference + from .application_summary_py3 import ApplicationSummary + from .certificate_add_parameter_py3 import CertificateAddParameter + from .file_properties_py3 import FileProperties + from .node_file_py3 import NodeFile + from .schedule_py3 import Schedule + from .job_constraints_py3 import JobConstraints + from .container_registry_py3 import ContainerRegistry + from .task_container_settings_py3 import TaskContainerSettings + from .resource_file_py3 import ResourceFile + from .environment_setting_py3 import EnvironmentSetting + from .exit_options_py3 import ExitOptions + from .exit_code_mapping_py3 import ExitCodeMapping + from .exit_code_range_mapping_py3 import ExitCodeRangeMapping + from .exit_conditions_py3 import ExitConditions + from .auto_user_specification_py3 import AutoUserSpecification + from .user_identity_py3 import UserIdentity + from .linux_user_configuration_py3 import LinuxUserConfiguration + from .user_account_py3 import UserAccount + from .task_constraints_py3 import TaskConstraints + from .output_file_blob_container_destination_py3 import OutputFileBlobContainerDestination + from .output_file_destination_py3 import OutputFileDestination + from .output_file_upload_options_py3 import OutputFileUploadOptions + from .output_file_py3 import OutputFile + from .job_manager_task_py3 import JobManagerTask + from .job_preparation_task_py3 import JobPreparationTask + from .job_release_task_py3 import JobReleaseTask + from .task_scheduling_policy_py3 import TaskSchedulingPolicy + from .start_task_py3 import StartTask + from .certificate_reference_py3 import CertificateReference + from .metadata_item_py3 import MetadataItem + from .cloud_service_configuration_py3 import CloudServiceConfiguration + from .os_disk_py3 import OSDisk + from .windows_configuration_py3 import WindowsConfiguration + from .data_disk_py3 import DataDisk + from .container_configuration_py3 import ContainerConfiguration + from .virtual_machine_configuration_py3 import VirtualMachineConfiguration + from .network_security_group_rule_py3 import NetworkSecurityGroupRule + from .inbound_nat_pool_py3 import InboundNATPool + from .pool_endpoint_configuration_py3 import PoolEndpointConfiguration + from .network_configuration_py3 import NetworkConfiguration + from .pool_specification_py3 import PoolSpecification + from .auto_pool_specification_py3 import AutoPoolSpecification + from .pool_information_py3 import PoolInformation + from .job_specification_py3 import JobSpecification + from .recent_job_py3 import RecentJob + from .job_schedule_execution_information_py3 import JobScheduleExecutionInformation + from .job_schedule_statistics_py3 import JobScheduleStatistics + from .cloud_job_schedule_py3 import CloudJobSchedule + from .job_schedule_add_parameter_py3 import JobScheduleAddParameter + from .job_scheduling_error_py3 import JobSchedulingError + from .job_execution_information_py3 import JobExecutionInformation + from .cloud_job_py3 import CloudJob + from .job_add_parameter_py3 import JobAddParameter + from .task_container_execution_information_py3 import TaskContainerExecutionInformation + from .task_failure_information_py3 import TaskFailureInformation + from .job_preparation_task_execution_information_py3 import JobPreparationTaskExecutionInformation + from .job_release_task_execution_information_py3 import JobReleaseTaskExecutionInformation + from .job_preparation_and_release_task_execution_information_py3 import JobPreparationAndReleaseTaskExecutionInformation + from .task_counts_py3 import TaskCounts + from .auto_scale_run_error_py3 import AutoScaleRunError + from .auto_scale_run_py3 import AutoScaleRun + from .resize_error_py3 import ResizeError + from .cloud_pool_py3 import CloudPool + from .pool_add_parameter_py3 import PoolAddParameter + from .affinity_information_py3 import AffinityInformation + from .task_execution_information_py3 import TaskExecutionInformation + from .compute_node_information_py3 import ComputeNodeInformation + from .node_agent_information_py3 import NodeAgentInformation + from .multi_instance_settings_py3 import MultiInstanceSettings + from .task_statistics_py3 import TaskStatistics + from .task_id_range_py3 import TaskIdRange + from .task_dependencies_py3 import TaskDependencies + from .cloud_task_py3 import CloudTask + from .task_add_parameter_py3 import TaskAddParameter + from .task_add_collection_parameter_py3 import TaskAddCollectionParameter + from .error_message_py3 import ErrorMessage + from .batch_error_detail_py3 import BatchErrorDetail + from .batch_error_py3 import BatchError, BatchErrorException + from .task_add_result_py3 import TaskAddResult + from .task_add_collection_result_py3 import TaskAddCollectionResult + from .subtask_information_py3 import SubtaskInformation + from .cloud_task_list_subtasks_result_py3 import CloudTaskListSubtasksResult + from .task_information_py3 import TaskInformation + from .start_task_information_py3 import StartTaskInformation + from .compute_node_error_py3 import ComputeNodeError + from .inbound_endpoint_py3 import InboundEndpoint + from .compute_node_endpoint_configuration_py3 import ComputeNodeEndpointConfiguration + from .compute_node_py3 import ComputeNode + from .compute_node_user_py3 import ComputeNodeUser + from .compute_node_get_remote_login_settings_result_py3 import ComputeNodeGetRemoteLoginSettingsResult + from .job_schedule_patch_parameter_py3 import JobSchedulePatchParameter + from .job_schedule_update_parameter_py3 import JobScheduleUpdateParameter + from .job_disable_parameter_py3 import JobDisableParameter + from .job_terminate_parameter_py3 import JobTerminateParameter + from .job_patch_parameter_py3 import JobPatchParameter + from .job_update_parameter_py3 import JobUpdateParameter + from .pool_enable_auto_scale_parameter_py3 import PoolEnableAutoScaleParameter + from .pool_evaluate_auto_scale_parameter_py3 import PoolEvaluateAutoScaleParameter + from .pool_resize_parameter_py3 import PoolResizeParameter + from .pool_update_properties_parameter_py3 import PoolUpdatePropertiesParameter + from .pool_upgrade_os_parameter_py3 import PoolUpgradeOSParameter + from .pool_patch_parameter_py3 import PoolPatchParameter + from .task_update_parameter_py3 import TaskUpdateParameter + from .node_update_user_parameter_py3 import NodeUpdateUserParameter + from .node_reboot_parameter_py3 import NodeRebootParameter + from .node_reimage_parameter_py3 import NodeReimageParameter + from .node_disable_scheduling_parameter_py3 import NodeDisableSchedulingParameter + from .node_remove_parameter_py3 import NodeRemoveParameter + from .upload_batch_service_logs_configuration_py3 import UploadBatchServiceLogsConfiguration + from .upload_batch_service_logs_result_py3 import UploadBatchServiceLogsResult + from .node_counts_py3 import NodeCounts + from .pool_node_counts_py3 import PoolNodeCounts + from .application_list_options_py3 import ApplicationListOptions + from .application_get_options_py3 import ApplicationGetOptions + from .pool_list_usage_metrics_options_py3 import PoolListUsageMetricsOptions + from .pool_get_all_lifetime_statistics_options_py3 import PoolGetAllLifetimeStatisticsOptions + from .pool_add_options_py3 import PoolAddOptions + from .pool_list_options_py3 import PoolListOptions + from .pool_delete_options_py3 import PoolDeleteOptions + from .pool_exists_options_py3 import PoolExistsOptions + from .pool_get_options_py3 import PoolGetOptions + from .pool_patch_options_py3 import PoolPatchOptions + from .pool_disable_auto_scale_options_py3 import PoolDisableAutoScaleOptions + from .pool_enable_auto_scale_options_py3 import PoolEnableAutoScaleOptions + from .pool_evaluate_auto_scale_options_py3 import PoolEvaluateAutoScaleOptions + from .pool_resize_options_py3 import PoolResizeOptions + from .pool_stop_resize_options_py3 import PoolStopResizeOptions + from .pool_update_properties_options_py3 import PoolUpdatePropertiesOptions + from .pool_upgrade_os_options_py3 import PoolUpgradeOsOptions + from .pool_remove_nodes_options_py3 import PoolRemoveNodesOptions + from .account_list_node_agent_skus_options_py3 import AccountListNodeAgentSkusOptions + from .account_list_pool_node_counts_options_py3 import AccountListPoolNodeCountsOptions + from .job_get_all_lifetime_statistics_options_py3 import JobGetAllLifetimeStatisticsOptions + from .job_delete_options_py3 import JobDeleteOptions + from .job_get_options_py3 import JobGetOptions + from .job_patch_options_py3 import JobPatchOptions + from .job_update_options_py3 import JobUpdateOptions + from .job_disable_options_py3 import JobDisableOptions + from .job_enable_options_py3 import JobEnableOptions + from .job_terminate_options_py3 import JobTerminateOptions + from .job_add_options_py3 import JobAddOptions + from .job_list_options_py3 import JobListOptions + from .job_list_from_job_schedule_options_py3 import JobListFromJobScheduleOptions + from .job_list_preparation_and_release_task_status_options_py3 import JobListPreparationAndReleaseTaskStatusOptions + from .job_get_task_counts_options_py3 import JobGetTaskCountsOptions + from .certificate_add_options_py3 import CertificateAddOptions + from .certificate_list_options_py3 import CertificateListOptions + from .certificate_cancel_deletion_options_py3 import CertificateCancelDeletionOptions + from .certificate_delete_options_py3 import CertificateDeleteOptions + from .certificate_get_options_py3 import CertificateGetOptions + from .file_delete_from_task_options_py3 import FileDeleteFromTaskOptions + from .file_get_from_task_options_py3 import FileGetFromTaskOptions + from .file_get_properties_from_task_options_py3 import FileGetPropertiesFromTaskOptions + from .file_delete_from_compute_node_options_py3 import FileDeleteFromComputeNodeOptions + from .file_get_from_compute_node_options_py3 import FileGetFromComputeNodeOptions + from .file_get_properties_from_compute_node_options_py3 import FileGetPropertiesFromComputeNodeOptions + from .file_list_from_task_options_py3 import FileListFromTaskOptions + from .file_list_from_compute_node_options_py3 import FileListFromComputeNodeOptions + from .job_schedule_exists_options_py3 import JobScheduleExistsOptions + from .job_schedule_delete_options_py3 import JobScheduleDeleteOptions + from .job_schedule_get_options_py3 import JobScheduleGetOptions + from .job_schedule_patch_options_py3 import JobSchedulePatchOptions + from .job_schedule_update_options_py3 import JobScheduleUpdateOptions + from .job_schedule_disable_options_py3 import JobScheduleDisableOptions + from .job_schedule_enable_options_py3 import JobScheduleEnableOptions + from .job_schedule_terminate_options_py3 import JobScheduleTerminateOptions + from .job_schedule_add_options_py3 import JobScheduleAddOptions + from .job_schedule_list_options_py3 import JobScheduleListOptions + from .task_add_options_py3 import TaskAddOptions + from .task_list_options_py3 import TaskListOptions + from .task_add_collection_options_py3 import TaskAddCollectionOptions + from .task_delete_options_py3 import TaskDeleteOptions + from .task_get_options_py3 import TaskGetOptions + from .task_update_options_py3 import TaskUpdateOptions + from .task_list_subtasks_options_py3 import TaskListSubtasksOptions + from .task_terminate_options_py3 import TaskTerminateOptions + from .task_reactivate_options_py3 import TaskReactivateOptions + from .compute_node_add_user_options_py3 import ComputeNodeAddUserOptions + from .compute_node_delete_user_options_py3 import ComputeNodeDeleteUserOptions + from .compute_node_update_user_options_py3 import ComputeNodeUpdateUserOptions + from .compute_node_get_options_py3 import ComputeNodeGetOptions + from .compute_node_reboot_options_py3 import ComputeNodeRebootOptions + from .compute_node_reimage_options_py3 import ComputeNodeReimageOptions + from .compute_node_disable_scheduling_options_py3 import ComputeNodeDisableSchedulingOptions + from .compute_node_enable_scheduling_options_py3 import ComputeNodeEnableSchedulingOptions + from .compute_node_get_remote_login_settings_options_py3 import ComputeNodeGetRemoteLoginSettingsOptions + from .compute_node_get_remote_desktop_options_py3 import ComputeNodeGetRemoteDesktopOptions + from .compute_node_upload_batch_service_logs_options_py3 import ComputeNodeUploadBatchServiceLogsOptions + from .compute_node_list_options_py3 import ComputeNodeListOptions +except (SyntaxError, ImportError): + from .pool_usage_metrics import PoolUsageMetrics + from .image_reference import ImageReference + from .node_agent_sku import NodeAgentSku + from .authentication_token_settings import AuthenticationTokenSettings + from .usage_statistics import UsageStatistics + from .resource_statistics import ResourceStatistics + from .pool_statistics import PoolStatistics + from .job_statistics import JobStatistics + from .name_value_pair import NameValuePair + from .delete_certificate_error import DeleteCertificateError + from .certificate import Certificate + from .application_package_reference import ApplicationPackageReference + from .application_summary import ApplicationSummary + from .certificate_add_parameter import CertificateAddParameter + from .file_properties import FileProperties + from .node_file import NodeFile + from .schedule import Schedule + from .job_constraints import JobConstraints + from .container_registry import ContainerRegistry + from .task_container_settings import TaskContainerSettings + from .resource_file import ResourceFile + from .environment_setting import EnvironmentSetting + from .exit_options import ExitOptions + from .exit_code_mapping import ExitCodeMapping + from .exit_code_range_mapping import ExitCodeRangeMapping + from .exit_conditions import ExitConditions + from .auto_user_specification import AutoUserSpecification + from .user_identity import UserIdentity + from .linux_user_configuration import LinuxUserConfiguration + from .user_account import UserAccount + from .task_constraints import TaskConstraints + from .output_file_blob_container_destination import OutputFileBlobContainerDestination + from .output_file_destination import OutputFileDestination + from .output_file_upload_options import OutputFileUploadOptions + from .output_file import OutputFile + from .job_manager_task import JobManagerTask + from .job_preparation_task import JobPreparationTask + from .job_release_task import JobReleaseTask + from .task_scheduling_policy import TaskSchedulingPolicy + from .start_task import StartTask + from .certificate_reference import CertificateReference + from .metadata_item import MetadataItem + from .cloud_service_configuration import CloudServiceConfiguration + from .os_disk import OSDisk + from .windows_configuration import WindowsConfiguration + from .data_disk import DataDisk + from .container_configuration import ContainerConfiguration + from .virtual_machine_configuration import VirtualMachineConfiguration + from .network_security_group_rule import NetworkSecurityGroupRule + from .inbound_nat_pool import InboundNATPool + from .pool_endpoint_configuration import PoolEndpointConfiguration + from .network_configuration import NetworkConfiguration + from .pool_specification import PoolSpecification + from .auto_pool_specification import AutoPoolSpecification + from .pool_information import PoolInformation + from .job_specification import JobSpecification + from .recent_job import RecentJob + from .job_schedule_execution_information import JobScheduleExecutionInformation + from .job_schedule_statistics import JobScheduleStatistics + from .cloud_job_schedule import CloudJobSchedule + from .job_schedule_add_parameter import JobScheduleAddParameter + from .job_scheduling_error import JobSchedulingError + from .job_execution_information import JobExecutionInformation + from .cloud_job import CloudJob + from .job_add_parameter import JobAddParameter + from .task_container_execution_information import TaskContainerExecutionInformation + from .task_failure_information import TaskFailureInformation + from .job_preparation_task_execution_information import JobPreparationTaskExecutionInformation + from .job_release_task_execution_information import JobReleaseTaskExecutionInformation + from .job_preparation_and_release_task_execution_information import JobPreparationAndReleaseTaskExecutionInformation + from .task_counts import TaskCounts + from .auto_scale_run_error import AutoScaleRunError + from .auto_scale_run import AutoScaleRun + from .resize_error import ResizeError + from .cloud_pool import CloudPool + from .pool_add_parameter import PoolAddParameter + from .affinity_information import AffinityInformation + from .task_execution_information import TaskExecutionInformation + from .compute_node_information import ComputeNodeInformation + from .node_agent_information import NodeAgentInformation + from .multi_instance_settings import MultiInstanceSettings + from .task_statistics import TaskStatistics + from .task_id_range import TaskIdRange + from .task_dependencies import TaskDependencies + from .cloud_task import CloudTask + from .task_add_parameter import TaskAddParameter + from .task_add_collection_parameter import TaskAddCollectionParameter + from .error_message import ErrorMessage + from .batch_error_detail import BatchErrorDetail + from .batch_error import BatchError, BatchErrorException + from .task_add_result import TaskAddResult + from .task_add_collection_result import TaskAddCollectionResult + from .subtask_information import SubtaskInformation + from .cloud_task_list_subtasks_result import CloudTaskListSubtasksResult + from .task_information import TaskInformation + from .start_task_information import StartTaskInformation + from .compute_node_error import ComputeNodeError + from .inbound_endpoint import InboundEndpoint + from .compute_node_endpoint_configuration import ComputeNodeEndpointConfiguration + from .compute_node import ComputeNode + from .compute_node_user import ComputeNodeUser + from .compute_node_get_remote_login_settings_result import ComputeNodeGetRemoteLoginSettingsResult + from .job_schedule_patch_parameter import JobSchedulePatchParameter + from .job_schedule_update_parameter import JobScheduleUpdateParameter + from .job_disable_parameter import JobDisableParameter + from .job_terminate_parameter import JobTerminateParameter + from .job_patch_parameter import JobPatchParameter + from .job_update_parameter import JobUpdateParameter + from .pool_enable_auto_scale_parameter import PoolEnableAutoScaleParameter + from .pool_evaluate_auto_scale_parameter import PoolEvaluateAutoScaleParameter + from .pool_resize_parameter import PoolResizeParameter + from .pool_update_properties_parameter import PoolUpdatePropertiesParameter + from .pool_upgrade_os_parameter import PoolUpgradeOSParameter + from .pool_patch_parameter import PoolPatchParameter + from .task_update_parameter import TaskUpdateParameter + from .node_update_user_parameter import NodeUpdateUserParameter + from .node_reboot_parameter import NodeRebootParameter + from .node_reimage_parameter import NodeReimageParameter + from .node_disable_scheduling_parameter import NodeDisableSchedulingParameter + from .node_remove_parameter import NodeRemoveParameter + from .upload_batch_service_logs_configuration import UploadBatchServiceLogsConfiguration + from .upload_batch_service_logs_result import UploadBatchServiceLogsResult + from .node_counts import NodeCounts + from .pool_node_counts import PoolNodeCounts + from .application_list_options import ApplicationListOptions + from .application_get_options import ApplicationGetOptions + from .pool_list_usage_metrics_options import PoolListUsageMetricsOptions + from .pool_get_all_lifetime_statistics_options import PoolGetAllLifetimeStatisticsOptions + from .pool_add_options import PoolAddOptions + from .pool_list_options import PoolListOptions + from .pool_delete_options import PoolDeleteOptions + from .pool_exists_options import PoolExistsOptions + from .pool_get_options import PoolGetOptions + from .pool_patch_options import PoolPatchOptions + from .pool_disable_auto_scale_options import PoolDisableAutoScaleOptions + from .pool_enable_auto_scale_options import PoolEnableAutoScaleOptions + from .pool_evaluate_auto_scale_options import PoolEvaluateAutoScaleOptions + from .pool_resize_options import PoolResizeOptions + from .pool_stop_resize_options import PoolStopResizeOptions + from .pool_update_properties_options import PoolUpdatePropertiesOptions + from .pool_upgrade_os_options import PoolUpgradeOsOptions + from .pool_remove_nodes_options import PoolRemoveNodesOptions + from .account_list_node_agent_skus_options import AccountListNodeAgentSkusOptions + from .account_list_pool_node_counts_options import AccountListPoolNodeCountsOptions + from .job_get_all_lifetime_statistics_options import JobGetAllLifetimeStatisticsOptions + from .job_delete_options import JobDeleteOptions + from .job_get_options import JobGetOptions + from .job_patch_options import JobPatchOptions + from .job_update_options import JobUpdateOptions + from .job_disable_options import JobDisableOptions + from .job_enable_options import JobEnableOptions + from .job_terminate_options import JobTerminateOptions + from .job_add_options import JobAddOptions + from .job_list_options import JobListOptions + from .job_list_from_job_schedule_options import JobListFromJobScheduleOptions + from .job_list_preparation_and_release_task_status_options import JobListPreparationAndReleaseTaskStatusOptions + from .job_get_task_counts_options import JobGetTaskCountsOptions + from .certificate_add_options import CertificateAddOptions + from .certificate_list_options import CertificateListOptions + from .certificate_cancel_deletion_options import CertificateCancelDeletionOptions + from .certificate_delete_options import CertificateDeleteOptions + from .certificate_get_options import CertificateGetOptions + from .file_delete_from_task_options import FileDeleteFromTaskOptions + from .file_get_from_task_options import FileGetFromTaskOptions + from .file_get_properties_from_task_options import FileGetPropertiesFromTaskOptions + from .file_delete_from_compute_node_options import FileDeleteFromComputeNodeOptions + from .file_get_from_compute_node_options import FileGetFromComputeNodeOptions + from .file_get_properties_from_compute_node_options import FileGetPropertiesFromComputeNodeOptions + from .file_list_from_task_options import FileListFromTaskOptions + from .file_list_from_compute_node_options import FileListFromComputeNodeOptions + from .job_schedule_exists_options import JobScheduleExistsOptions + from .job_schedule_delete_options import JobScheduleDeleteOptions + from .job_schedule_get_options import JobScheduleGetOptions + from .job_schedule_patch_options import JobSchedulePatchOptions + from .job_schedule_update_options import JobScheduleUpdateOptions + from .job_schedule_disable_options import JobScheduleDisableOptions + from .job_schedule_enable_options import JobScheduleEnableOptions + from .job_schedule_terminate_options import JobScheduleTerminateOptions + from .job_schedule_add_options import JobScheduleAddOptions + from .job_schedule_list_options import JobScheduleListOptions + from .task_add_options import TaskAddOptions + from .task_list_options import TaskListOptions + from .task_add_collection_options import TaskAddCollectionOptions + from .task_delete_options import TaskDeleteOptions + from .task_get_options import TaskGetOptions + from .task_update_options import TaskUpdateOptions + from .task_list_subtasks_options import TaskListSubtasksOptions + from .task_terminate_options import TaskTerminateOptions + from .task_reactivate_options import TaskReactivateOptions + from .compute_node_add_user_options import ComputeNodeAddUserOptions + from .compute_node_delete_user_options import ComputeNodeDeleteUserOptions + from .compute_node_update_user_options import ComputeNodeUpdateUserOptions + from .compute_node_get_options import ComputeNodeGetOptions + from .compute_node_reboot_options import ComputeNodeRebootOptions + from .compute_node_reimage_options import ComputeNodeReimageOptions + from .compute_node_disable_scheduling_options import ComputeNodeDisableSchedulingOptions + from .compute_node_enable_scheduling_options import ComputeNodeEnableSchedulingOptions + from .compute_node_get_remote_login_settings_options import ComputeNodeGetRemoteLoginSettingsOptions + from .compute_node_get_remote_desktop_options import ComputeNodeGetRemoteDesktopOptions + from .compute_node_upload_batch_service_logs_options import ComputeNodeUploadBatchServiceLogsOptions + from .compute_node_list_options import ComputeNodeListOptions +from .application_summary_paged import ApplicationSummaryPaged +from .pool_usage_metrics_paged import PoolUsageMetricsPaged +from .cloud_pool_paged import CloudPoolPaged +from .node_agent_sku_paged import NodeAgentSkuPaged +from .pool_node_counts_paged import PoolNodeCountsPaged +from .cloud_job_paged import CloudJobPaged +from .job_preparation_and_release_task_execution_information_paged import JobPreparationAndReleaseTaskExecutionInformationPaged +from .certificate_paged import CertificatePaged +from .node_file_paged import NodeFilePaged +from .cloud_job_schedule_paged import CloudJobSchedulePaged +from .cloud_task_paged import CloudTaskPaged +from .compute_node_paged import ComputeNodePaged +from .batch_service_client_enums import ( + OSType, + AccessScope, + CertificateState, + CertificateFormat, + JobAction, + DependencyAction, + AutoUserScope, + ElevationLevel, + OutputFileUploadCondition, + ComputeNodeFillType, + CertificateStoreLocation, + CertificateVisibility, + CachingType, + StorageAccountType, + InboundEndpointProtocol, + NetworkSecurityGroupRuleAccess, + PoolLifetimeOption, + OnAllTasksComplete, + OnTaskFailure, + JobScheduleState, + ErrorCategory, + JobState, + JobPreparationTaskState, + TaskExecutionResult, + JobReleaseTaskState, + PoolState, + AllocationState, + TaskState, + TaskAddStatus, + SubtaskState, + StartTaskState, + ComputeNodeState, + SchedulingState, + DisableJobOption, + ComputeNodeDeallocationOption, + ComputeNodeRebootOption, + ComputeNodeReimageOption, + DisableComputeNodeSchedulingOption, +) + +__all__ = [ + 'PoolUsageMetrics', + 'ImageReference', + 'NodeAgentSku', + 'AuthenticationTokenSettings', + 'UsageStatistics', + 'ResourceStatistics', + 'PoolStatistics', + 'JobStatistics', + 'NameValuePair', + 'DeleteCertificateError', + 'Certificate', + 'ApplicationPackageReference', + 'ApplicationSummary', + 'CertificateAddParameter', + 'FileProperties', + 'NodeFile', + 'Schedule', + 'JobConstraints', + 'ContainerRegistry', + 'TaskContainerSettings', + 'ResourceFile', + 'EnvironmentSetting', + 'ExitOptions', + 'ExitCodeMapping', + 'ExitCodeRangeMapping', + 'ExitConditions', + 'AutoUserSpecification', + 'UserIdentity', + 'LinuxUserConfiguration', + 'UserAccount', + 'TaskConstraints', + 'OutputFileBlobContainerDestination', + 'OutputFileDestination', + 'OutputFileUploadOptions', + 'OutputFile', + 'JobManagerTask', + 'JobPreparationTask', + 'JobReleaseTask', + 'TaskSchedulingPolicy', + 'StartTask', + 'CertificateReference', + 'MetadataItem', + 'CloudServiceConfiguration', + 'OSDisk', + 'WindowsConfiguration', + 'DataDisk', + 'ContainerConfiguration', + 'VirtualMachineConfiguration', + 'NetworkSecurityGroupRule', + 'InboundNATPool', + 'PoolEndpointConfiguration', + 'NetworkConfiguration', + 'PoolSpecification', + 'AutoPoolSpecification', + 'PoolInformation', + 'JobSpecification', + 'RecentJob', + 'JobScheduleExecutionInformation', + 'JobScheduleStatistics', + 'CloudJobSchedule', + 'JobScheduleAddParameter', + 'JobSchedulingError', + 'JobExecutionInformation', + 'CloudJob', + 'JobAddParameter', + 'TaskContainerExecutionInformation', + 'TaskFailureInformation', + 'JobPreparationTaskExecutionInformation', + 'JobReleaseTaskExecutionInformation', + 'JobPreparationAndReleaseTaskExecutionInformation', + 'TaskCounts', + 'AutoScaleRunError', + 'AutoScaleRun', + 'ResizeError', + 'CloudPool', + 'PoolAddParameter', + 'AffinityInformation', + 'TaskExecutionInformation', + 'ComputeNodeInformation', + 'NodeAgentInformation', + 'MultiInstanceSettings', + 'TaskStatistics', + 'TaskIdRange', + 'TaskDependencies', + 'CloudTask', + 'TaskAddParameter', + 'TaskAddCollectionParameter', + 'ErrorMessage', + 'BatchErrorDetail', + 'BatchError', 'BatchErrorException', + 'TaskAddResult', + 'TaskAddCollectionResult', + 'SubtaskInformation', + 'CloudTaskListSubtasksResult', + 'TaskInformation', + 'StartTaskInformation', + 'ComputeNodeError', + 'InboundEndpoint', + 'ComputeNodeEndpointConfiguration', + 'ComputeNode', + 'ComputeNodeUser', + 'ComputeNodeGetRemoteLoginSettingsResult', + 'JobSchedulePatchParameter', + 'JobScheduleUpdateParameter', + 'JobDisableParameter', + 'JobTerminateParameter', + 'JobPatchParameter', + 'JobUpdateParameter', + 'PoolEnableAutoScaleParameter', + 'PoolEvaluateAutoScaleParameter', + 'PoolResizeParameter', + 'PoolUpdatePropertiesParameter', + 'PoolUpgradeOSParameter', + 'PoolPatchParameter', + 'TaskUpdateParameter', + 'NodeUpdateUserParameter', + 'NodeRebootParameter', + 'NodeReimageParameter', + 'NodeDisableSchedulingParameter', + 'NodeRemoveParameter', + 'UploadBatchServiceLogsConfiguration', + 'UploadBatchServiceLogsResult', + 'NodeCounts', + 'PoolNodeCounts', + 'ApplicationListOptions', + 'ApplicationGetOptions', + 'PoolListUsageMetricsOptions', + 'PoolGetAllLifetimeStatisticsOptions', + 'PoolAddOptions', + 'PoolListOptions', + 'PoolDeleteOptions', + 'PoolExistsOptions', + 'PoolGetOptions', + 'PoolPatchOptions', + 'PoolDisableAutoScaleOptions', + 'PoolEnableAutoScaleOptions', + 'PoolEvaluateAutoScaleOptions', + 'PoolResizeOptions', + 'PoolStopResizeOptions', + 'PoolUpdatePropertiesOptions', + 'PoolUpgradeOsOptions', + 'PoolRemoveNodesOptions', + 'AccountListNodeAgentSkusOptions', + 'AccountListPoolNodeCountsOptions', + 'JobGetAllLifetimeStatisticsOptions', + 'JobDeleteOptions', + 'JobGetOptions', + 'JobPatchOptions', + 'JobUpdateOptions', + 'JobDisableOptions', + 'JobEnableOptions', + 'JobTerminateOptions', + 'JobAddOptions', + 'JobListOptions', + 'JobListFromJobScheduleOptions', + 'JobListPreparationAndReleaseTaskStatusOptions', + 'JobGetTaskCountsOptions', + 'CertificateAddOptions', + 'CertificateListOptions', + 'CertificateCancelDeletionOptions', + 'CertificateDeleteOptions', + 'CertificateGetOptions', + 'FileDeleteFromTaskOptions', + 'FileGetFromTaskOptions', + 'FileGetPropertiesFromTaskOptions', + 'FileDeleteFromComputeNodeOptions', + 'FileGetFromComputeNodeOptions', + 'FileGetPropertiesFromComputeNodeOptions', + 'FileListFromTaskOptions', + 'FileListFromComputeNodeOptions', + 'JobScheduleExistsOptions', + 'JobScheduleDeleteOptions', + 'JobScheduleGetOptions', + 'JobSchedulePatchOptions', + 'JobScheduleUpdateOptions', + 'JobScheduleDisableOptions', + 'JobScheduleEnableOptions', + 'JobScheduleTerminateOptions', + 'JobScheduleAddOptions', + 'JobScheduleListOptions', + 'TaskAddOptions', + 'TaskListOptions', + 'TaskAddCollectionOptions', + 'TaskDeleteOptions', + 'TaskGetOptions', + 'TaskUpdateOptions', + 'TaskListSubtasksOptions', + 'TaskTerminateOptions', + 'TaskReactivateOptions', + 'ComputeNodeAddUserOptions', + 'ComputeNodeDeleteUserOptions', + 'ComputeNodeUpdateUserOptions', + 'ComputeNodeGetOptions', + 'ComputeNodeRebootOptions', + 'ComputeNodeReimageOptions', + 'ComputeNodeDisableSchedulingOptions', + 'ComputeNodeEnableSchedulingOptions', + 'ComputeNodeGetRemoteLoginSettingsOptions', + 'ComputeNodeGetRemoteDesktopOptions', + 'ComputeNodeUploadBatchServiceLogsOptions', + 'ComputeNodeListOptions', + 'ApplicationSummaryPaged', + 'PoolUsageMetricsPaged', + 'CloudPoolPaged', + 'NodeAgentSkuPaged', + 'PoolNodeCountsPaged', + 'CloudJobPaged', + 'JobPreparationAndReleaseTaskExecutionInformationPaged', + 'CertificatePaged', + 'NodeFilePaged', + 'CloudJobSchedulePaged', + 'CloudTaskPaged', + 'ComputeNodePaged', + 'OSType', + 'AccessScope', + 'CertificateState', + 'CertificateFormat', + 'JobAction', + 'DependencyAction', + 'AutoUserScope', + 'ElevationLevel', + 'OutputFileUploadCondition', + 'ComputeNodeFillType', + 'CertificateStoreLocation', + 'CertificateVisibility', + 'CachingType', + 'StorageAccountType', + 'InboundEndpointProtocol', + 'NetworkSecurityGroupRuleAccess', + 'PoolLifetimeOption', + 'OnAllTasksComplete', + 'OnTaskFailure', + 'JobScheduleState', + 'ErrorCategory', + 'JobState', + 'JobPreparationTaskState', + 'TaskExecutionResult', + 'JobReleaseTaskState', + 'PoolState', + 'AllocationState', + 'TaskState', + 'TaskAddStatus', + 'SubtaskState', + 'StartTaskState', + 'ComputeNodeState', + 'SchedulingState', + 'DisableJobOption', + 'ComputeNodeDeallocationOption', + 'ComputeNodeRebootOption', + 'ComputeNodeReimageOption', + 'DisableComputeNodeSchedulingOption', +] diff --git a/azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options.py b/azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options.py new file mode 100644 index 00000000..6cc1c050 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AccountListNodeAgentSkusOptions(Model): + """Additional parameters for list_node_agent_skus operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-node-agent-skus. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(AccountListNodeAgentSkusOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options_py3.py new file mode 100644 index 00000000..01d06fb1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/account_list_node_agent_skus_options_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AccountListNodeAgentSkusOptions(Model): + """Additional parameters for list_node_agent_skus operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-node-agent-skus. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(AccountListNodeAgentSkusOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options.py b/azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options.py new file mode 100644 index 00000000..4ad2da01 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AccountListPoolNodeCountsOptions(Model): + """Additional parameters for list_pool_node_counts operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. + :type filter: str + :param max_results: The maximum number of items to return in the response. + Default value: 10 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(AccountListPoolNodeCountsOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 10) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options_py3.py new file mode 100644 index 00000000..e9f0d02b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/account_list_pool_node_counts_options_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AccountListPoolNodeCountsOptions(Model): + """Additional parameters for list_pool_node_counts operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. + :type filter: str + :param max_results: The maximum number of items to return in the response. + Default value: 10 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=10, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(AccountListPoolNodeCountsOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/affinity_information.py b/azext/batch/_vendor/v4/azure/batch/models/affinity_information.py new file mode 100644 index 00000000..206608f1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/affinity_information.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AffinityInformation(Model): + """A locality hint that can be used by the Batch service to select a compute + node on which to start a task. + + All required parameters must be populated in order to send to Azure. + + :param affinity_id: Required. An opaque string representing the location + of a compute node or a task that has run previously. You can pass the + affinityId of a compute node to indicate that this task needs to run on + that compute node. Note that this is just a soft affinity. If the target + node is busy or unavailable at the time the task is scheduled, then the + task will be scheduled elsewhere. + :type affinity_id: str + """ + + _validation = { + 'affinity_id': {'required': True}, + } + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AffinityInformation, self).__init__(**kwargs) + self.affinity_id = kwargs.get('affinity_id', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/affinity_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/affinity_information_py3.py new file mode 100644 index 00000000..fcf8d04b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/affinity_information_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AffinityInformation(Model): + """A locality hint that can be used by the Batch service to select a compute + node on which to start a task. + + All required parameters must be populated in order to send to Azure. + + :param affinity_id: Required. An opaque string representing the location + of a compute node or a task that has run previously. You can pass the + affinityId of a compute node to indicate that this task needs to run on + that compute node. Note that this is just a soft affinity. If the target + node is busy or unavailable at the time the task is scheduled, then the + task will be scheduled elsewhere. + :type affinity_id: str + """ + + _validation = { + 'affinity_id': {'required': True}, + } + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + } + + def __init__(self, *, affinity_id: str, **kwargs) -> None: + super(AffinityInformation, self).__init__(**kwargs) + self.affinity_id = affinity_id diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/application_get_options.py new file mode 100644 index 00000000..038c5421 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_get_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationGetOptions(Model): + """Additional parameters for get operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ApplicationGetOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/application_get_options_py3.py new file mode 100644 index 00000000..3c9d5c0a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_get_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationGetOptions(Model): + """Additional parameters for get operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ApplicationGetOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/application_list_options.py new file mode 100644 index 00000000..bc3ddb36 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_list_options.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationListOptions(Model): + """Additional parameters for list operation. + + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 applications can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ApplicationListOptions, self).__init__(**kwargs) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/application_list_options_py3.py new file mode 100644 index 00000000..445de51e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_list_options_py3.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationListOptions(Model): + """Additional parameters for list operation. + + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 applications can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ApplicationListOptions, self).__init__(**kwargs) + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_package_reference.py b/azext/batch/_vendor/v4/azure/batch/models/application_package_reference.py new file mode 100644 index 00000000..08673617 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_package_reference.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationPackageReference(Model): + """A reference to an application package to be deployed to compute nodes. + + All required parameters must be populated in order to send to Azure. + + :param application_id: Required. The ID of the application to deploy. + :type application_id: str + :param version: The version of the application to deploy. If omitted, the + default version is deployed. If this is omitted on a pool, and no default + version is specified for this application, the request fails with the + error code InvalidApplicationPackageReferences and HTTP status code 409. + If this is omitted on a task, and no default version is specified for this + application, the task fails with a pre-processing error. + :type version: str + """ + + _validation = { + 'application_id': {'required': True}, + } + + _attribute_map = { + 'application_id': {'key': 'applicationId', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ApplicationPackageReference, self).__init__(**kwargs) + self.application_id = kwargs.get('application_id', None) + self.version = kwargs.get('version', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_package_reference_py3.py b/azext/batch/_vendor/v4/azure/batch/models/application_package_reference_py3.py new file mode 100644 index 00000000..dd81226b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_package_reference_py3.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationPackageReference(Model): + """A reference to an application package to be deployed to compute nodes. + + All required parameters must be populated in order to send to Azure. + + :param application_id: Required. The ID of the application to deploy. + :type application_id: str + :param version: The version of the application to deploy. If omitted, the + default version is deployed. If this is omitted on a pool, and no default + version is specified for this application, the request fails with the + error code InvalidApplicationPackageReferences and HTTP status code 409. + If this is omitted on a task, and no default version is specified for this + application, the task fails with a pre-processing error. + :type version: str + """ + + _validation = { + 'application_id': {'required': True}, + } + + _attribute_map = { + 'application_id': {'key': 'applicationId', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, *, application_id: str, version: str=None, **kwargs) -> None: + super(ApplicationPackageReference, self).__init__(**kwargs) + self.application_id = application_id + self.version = version diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_summary.py b/azext/batch/_vendor/v4/azure/batch/models/application_summary.py new file mode 100644 index 00000000..4a65a11f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_summary.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationSummary(Model): + """Contains information about an application in an Azure Batch account. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the application + within the account. + :type id: str + :param display_name: Required. The display name for the application. + :type display_name: str + :param versions: Required. The list of available versions of the + application. + :type versions: list[str] + """ + + _validation = { + 'id': {'required': True}, + 'display_name': {'required': True}, + 'versions': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'versions': {'key': 'versions', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(ApplicationSummary, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.versions = kwargs.get('versions', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_summary_paged.py b/azext/batch/_vendor/v4/azure/batch/models/application_summary_paged.py new file mode 100644 index 00000000..64ed9c6b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_summary_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class ApplicationSummaryPaged(Paged): + """ + A paging container for iterating over a list of :class:`ApplicationSummary ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ApplicationSummary]'} + } + + def __init__(self, *args, **kwargs): + + super(ApplicationSummaryPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/application_summary_py3.py b/azext/batch/_vendor/v4/azure/batch/models/application_summary_py3.py new file mode 100644 index 00000000..68c838e8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/application_summary_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ApplicationSummary(Model): + """Contains information about an application in an Azure Batch account. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the application + within the account. + :type id: str + :param display_name: Required. The display name for the application. + :type display_name: str + :param versions: Required. The list of available versions of the + application. + :type versions: list[str] + """ + + _validation = { + 'id': {'required': True}, + 'display_name': {'required': True}, + 'versions': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'versions': {'key': 'versions', 'type': '[str]'}, + } + + def __init__(self, *, id: str, display_name: str, versions, **kwargs) -> None: + super(ApplicationSummary, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.versions = versions diff --git a/azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings.py b/azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings.py new file mode 100644 index 00000000..fd05e87b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings.py @@ -0,0 +1,33 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AuthenticationTokenSettings(Model): + """The settings for an authentication token that the task can use to perform + Batch service operations. + + :param access: The Batch resources to which the token grants access. The + authentication token grants access to a limited set of Batch service + operations. Currently the only supported value for the access property is + 'job', which grants access to all operations related to the job which + contains the task. + :type access: list[str or ~azure.batch.models.AccessScope] + """ + + _attribute_map = { + 'access': {'key': 'access', 'type': '[AccessScope]'}, + } + + def __init__(self, **kwargs): + super(AuthenticationTokenSettings, self).__init__(**kwargs) + self.access = kwargs.get('access', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings_py3.py b/azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings_py3.py new file mode 100644 index 00000000..23dde60c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/authentication_token_settings_py3.py @@ -0,0 +1,33 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AuthenticationTokenSettings(Model): + """The settings for an authentication token that the task can use to perform + Batch service operations. + + :param access: The Batch resources to which the token grants access. The + authentication token grants access to a limited set of Batch service + operations. Currently the only supported value for the access property is + 'job', which grants access to all operations related to the job which + contains the task. + :type access: list[str or ~azure.batch.models.AccessScope] + """ + + _attribute_map = { + 'access': {'key': 'access', 'type': '[AccessScope]'}, + } + + def __init__(self, *, access=None, **kwargs) -> None: + super(AuthenticationTokenSettings, self).__init__(**kwargs) + self.access = access diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification.py b/azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification.py new file mode 100644 index 00000000..7383a65a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification.py @@ -0,0 +1,58 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto pool when the job is submitted. + + All required parameters must be populated in order to send to Azure. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a pool is automatically created. The Batch service assigns each auto + pool a unique identifier on creation. To distinguish between pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: Required. The minimum lifetime of created + auto pools, and how multiple jobs on a schedule are assigned to pools. + Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or ~azure.batch.models.PoolLifetimeOption + :param keep_alive: Whether to keep an auto pool alive after its lifetime + expires. If false, the Batch service deletes the pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the job or job schedule completes. If true, the Batch service does not + delete the pool automatically. It is up to the user to delete auto pools + created with this option. + :type keep_alive: bool + :param pool: The pool specification for the auto pool. + :type pool: ~azure.batch.models.PoolSpecification + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'PoolSpecification'}, + } + + def __init__(self, **kwargs): + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = kwargs.get('auto_pool_id_prefix', None) + self.pool_lifetime_option = kwargs.get('pool_lifetime_option', None) + self.keep_alive = kwargs.get('keep_alive', None) + self.pool = kwargs.get('pool', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification_py3.py b/azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification_py3.py new file mode 100644 index 00000000..4b07e831 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_pool_specification_py3.py @@ -0,0 +1,58 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto pool when the job is submitted. + + All required parameters must be populated in order to send to Azure. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a pool is automatically created. The Batch service assigns each auto + pool a unique identifier on creation. To distinguish between pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: Required. The minimum lifetime of created + auto pools, and how multiple jobs on a schedule are assigned to pools. + Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or ~azure.batch.models.PoolLifetimeOption + :param keep_alive: Whether to keep an auto pool alive after its lifetime + expires. If false, the Batch service deletes the pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the job or job schedule completes. If true, the Batch service does not + delete the pool automatically. It is up to the user to delete auto pools + created with this option. + :type keep_alive: bool + :param pool: The pool specification for the auto pool. + :type pool: ~azure.batch.models.PoolSpecification + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'PoolSpecification'}, + } + + def __init__(self, *, pool_lifetime_option, auto_pool_id_prefix: str=None, keep_alive: bool=None, pool=None, **kwargs) -> None: + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = auto_pool_id_prefix + self.pool_lifetime_option = pool_lifetime_option + self.keep_alive = keep_alive + self.pool = pool diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run.py b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run.py new file mode 100644 index 00000000..06b0d4fe --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoScaleRun(Model): + """The results and errors from an execution of a pool autoscale formula. + + All required parameters must be populated in order to send to Azure. + + :param timestamp: Required. The time at which the autoscale formula was + last evaluated. + :type timestamp: datetime + :param results: The final values of all variables used in the evaluation + of the autoscale formula. Each variable value is returned in the form + $variable=value, and variables are separated by semicolons. + :type results: str + :param error: Details of the error encountered evaluating the autoscale + formula on the pool, if the evaluation was unsuccessful. + :type error: ~azure.batch.models.AutoScaleRunError + """ + + _validation = { + 'timestamp': {'required': True}, + } + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'results': {'key': 'results', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'AutoScaleRunError'}, + } + + def __init__(self, **kwargs): + super(AutoScaleRun, self).__init__(**kwargs) + self.timestamp = kwargs.get('timestamp', None) + self.results = kwargs.get('results', None) + self.error = kwargs.get('error', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error.py b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error.py new file mode 100644 index 00000000..d0d7b163 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoScaleRunError(Model): + """An error that occurred when executing or evaluating a pool autoscale + formula. + + :param code: An identifier for the autoscale error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the autoscale error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the autoscale + error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(AutoScaleRunError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error_py3.py b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error_py3.py new file mode 100644 index 00000000..8ffa9805 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_error_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoScaleRunError(Model): + """An error that occurred when executing or evaluating a pool autoscale + formula. + + :param code: An identifier for the autoscale error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the autoscale error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the autoscale + error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, values=None, **kwargs) -> None: + super(AutoScaleRunError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_py3.py b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_py3.py new file mode 100644 index 00000000..9f58e936 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_scale_run_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoScaleRun(Model): + """The results and errors from an execution of a pool autoscale formula. + + All required parameters must be populated in order to send to Azure. + + :param timestamp: Required. The time at which the autoscale formula was + last evaluated. + :type timestamp: datetime + :param results: The final values of all variables used in the evaluation + of the autoscale formula. Each variable value is returned in the form + $variable=value, and variables are separated by semicolons. + :type results: str + :param error: Details of the error encountered evaluating the autoscale + formula on the pool, if the evaluation was unsuccessful. + :type error: ~azure.batch.models.AutoScaleRunError + """ + + _validation = { + 'timestamp': {'required': True}, + } + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'results': {'key': 'results', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'AutoScaleRunError'}, + } + + def __init__(self, *, timestamp, results: str=None, error=None, **kwargs) -> None: + super(AutoScaleRun, self).__init__(**kwargs) + self.timestamp = timestamp + self.results = results + self.error = error diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_user_specification.py b/azext/batch/_vendor/v4/azure/batch/models/auto_user_specification.py new file mode 100644 index 00000000..60127c74 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_user_specification.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoUserSpecification(Model): + """Specifies the parameters for the auto user that runs a task on the Batch + service. + + :param scope: The scope for the auto user. The default value is task. + Possible values include: 'task', 'pool' + :type scope: str or ~azure.batch.models.AutoUserScope + :param elevation_level: The elevation level of the auto user. The default + value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + """ + + _attribute_map = { + 'scope': {'key': 'scope', 'type': 'AutoUserScope'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + } + + def __init__(self, **kwargs): + super(AutoUserSpecification, self).__init__(**kwargs) + self.scope = kwargs.get('scope', None) + self.elevation_level = kwargs.get('elevation_level', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/auto_user_specification_py3.py b/azext/batch/_vendor/v4/azure/batch/models/auto_user_specification_py3.py new file mode 100644 index 00000000..bc590d2c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/auto_user_specification_py3.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AutoUserSpecification(Model): + """Specifies the parameters for the auto user that runs a task on the Batch + service. + + :param scope: The scope for the auto user. The default value is task. + Possible values include: 'task', 'pool' + :type scope: str or ~azure.batch.models.AutoUserScope + :param elevation_level: The elevation level of the auto user. The default + value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + """ + + _attribute_map = { + 'scope': {'key': 'scope', 'type': 'AutoUserScope'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + } + + def __init__(self, *, scope=None, elevation_level=None, **kwargs) -> None: + super(AutoUserSpecification, self).__init__(**kwargs) + self.scope = scope + self.elevation_level = elevation_level diff --git a/azext/batch/_vendor/v4/azure/batch/models/batch_error.py b/azext/batch/_vendor/v4/azure/batch/models/batch_error.py new file mode 100644 index 00000000..3857ac96 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/batch_error.py @@ -0,0 +1,52 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class BatchError(Model): + """An error response received from the Azure Batch service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: ~azure.batch.models.ErrorMessage + :param values: A collection of key-value pairs containing additional + details about the error. + :type values: list[~azure.batch.models.BatchErrorDetail] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'ErrorMessage'}, + 'values': {'key': 'values', 'type': '[BatchErrorDetail]'}, + } + + def __init__(self, **kwargs): + super(BatchError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) + + +class BatchErrorException(HttpOperationError): + """Server responsed with exception of type: 'BatchError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(BatchErrorException, self).__init__(deserialize, response, 'BatchError', *args) diff --git a/azext/batch/_vendor/v4/azure/batch/models/batch_error_detail.py b/azext/batch/_vendor/v4/azure/batch/models/batch_error_detail.py new file mode 100644 index 00000000..a892678c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/batch_error_detail.py @@ -0,0 +1,33 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class BatchErrorDetail(Model): + """An item of additional information included in an Azure Batch error + response. + + :param key: An identifier specifying the meaning of the Value property. + :type key: str + :param value: The additional information included with the error response. + :type value: str + """ + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(BatchErrorDetail, self).__init__(**kwargs) + self.key = kwargs.get('key', None) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/batch_error_detail_py3.py b/azext/batch/_vendor/v4/azure/batch/models/batch_error_detail_py3.py new file mode 100644 index 00000000..8aa8a85b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/batch_error_detail_py3.py @@ -0,0 +1,33 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class BatchErrorDetail(Model): + """An item of additional information included in an Azure Batch error + response. + + :param key: An identifier specifying the meaning of the Value property. + :type key: str + :param value: The additional information included with the error response. + :type value: str + """ + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, key: str=None, value: str=None, **kwargs) -> None: + super(BatchErrorDetail, self).__init__(**kwargs) + self.key = key + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/batch_error_py3.py b/azext/batch/_vendor/v4/azure/batch/models/batch_error_py3.py new file mode 100644 index 00000000..a6e49569 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/batch_error_py3.py @@ -0,0 +1,52 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class BatchError(Model): + """An error response received from the Azure Batch service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: ~azure.batch.models.ErrorMessage + :param values: A collection of key-value pairs containing additional + details about the error. + :type values: list[~azure.batch.models.BatchErrorDetail] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'ErrorMessage'}, + 'values': {'key': 'values', 'type': '[BatchErrorDetail]'}, + } + + def __init__(self, *, code: str=None, message=None, values=None, **kwargs) -> None: + super(BatchError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values + + +class BatchErrorException(HttpOperationError): + """Server responsed with exception of type: 'BatchError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(BatchErrorException, self).__init__(deserialize, response, 'BatchError', *args) diff --git a/azext/batch/_vendor/v4/azure/batch/models/batch_service_client_enums.py b/azext/batch/_vendor/v4/azure/batch/models/batch_service_client_enums.py new file mode 100644 index 00000000..c2775616 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/batch_service_client_enums.py @@ -0,0 +1,277 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class OSType(str, Enum): + + linux = "linux" #: The Linux operating system. + windows = "windows" #: The Windows operating system. + + +class AccessScope(str, Enum): + + job = "job" #: Grants access to perform all operations on the job containing the task. + + +class CertificateState(str, Enum): + + active = "active" #: The certificate is available for use in pools. + deleting = "deleting" #: The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools. + delete_failed = "deletefailed" #: The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete. + + +class CertificateFormat(str, Enum): + + pfx = "pfx" #: The certificate is a PFX (PKCS#12) formatted certificate or certificate chain. + cer = "cer" #: The certificate is a base64-encoded X.509 certificate. + + +class JobAction(str, Enum): + + none = "none" #: Take no action. + disable = "disable" #: Disable the job. This is equivalent to calling the disable job API, with a disableTasks value of requeue. + terminate = "terminate" #: Terminate the job. The terminateReason in the job's executionInfo is set to "TaskFailed". + + +class DependencyAction(str, Enum): + + satisfy = "satisfy" #: Satisfy the task's dependencies. + block = "block" #: Block the task's dependencies. + + +class AutoUserScope(str, Enum): + + task = "task" #: Specifies that the service should create a new user for the task. + pool = "pool" #: Specifies that the task runs as the common auto user account which is created on every node in a pool. + + +class ElevationLevel(str, Enum): + + non_admin = "nonadmin" #: The user is a standard user without elevated access. + admin = "admin" #: The user is a user with elevated access and operates with full Administrator permissions. + + +class OutputFileUploadCondition(str, Enum): + + task_success = "tasksuccess" #: Upload the file(s) only after the task process exits with an exit code of 0. + task_failure = "taskfailure" #: Upload the file(s) only after the task process exits with a nonzero exit code. + task_completion = "taskcompletion" #: Upload the file(s) after the task process exits, no matter what the exit code was. + + +class ComputeNodeFillType(str, Enum): + + spread = "spread" #: Tasks should be assigned evenly across all nodes in the pool. + pack = "pack" #: As many tasks as possible (maxTasksPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool. + + +class CertificateStoreLocation(str, Enum): + + current_user = "currentuser" #: Certificates should be installed to the CurrentUser certificate store. + local_machine = "localmachine" #: Certificates should be installed to the LocalMachine certificate store. + + +class CertificateVisibility(str, Enum): + + start_task = "starttask" #: The certificate should be visible to the user account under which the start task is run. + task = "task" #: The certificate should be visibile to the user accounts under which job tasks are run. + remote_user = "remoteuser" #: The certificate should be visibile to the user accounts under which users remotely access the node. + + +class CachingType(str, Enum): + + none = "none" #: The caching mode for the disk is not enabled. + read_only = "readonly" #: The caching mode for the disk is read only. + read_write = "readwrite" #: The caching mode for the disk is read and write. + + +class StorageAccountType(str, Enum): + + standard_lrs = "standard_lrs" #: The data disk should use standard locally redundant storage. + premium_lrs = "premium_lrs" #: The data disk should use premium locally redundant storage. + + +class InboundEndpointProtocol(str, Enum): + + tcp = "tcp" #: Use TCP for the endpoint. + udp = "udp" #: Use UDP for the endpoint. + + +class NetworkSecurityGroupRuleAccess(str, Enum): + + allow = "allow" #: Allow access. + deny = "deny" #: Deny access. + + +class PoolLifetimeOption(str, Enum): + + job_schedule = "jobschedule" #: The pool exists for the lifetime of the job schedule. The Batch Service creates the pool when it creates the first job on the schedule. You may apply this option only to job schedules, not to jobs. + job = "job" #: The pool exists for the lifetime of the job to which it is dedicated. The Batch service creates the pool when it creates the job. If the 'job' option is applied to a job schedule, the Batch service creates a new auto pool for every job created on the schedule. + + +class OnAllTasksComplete(str, Enum): + + no_action = "noaction" #: Do nothing. The job remains active unless terminated or disabled by some other means. + terminate_job = "terminatejob" #: Terminate the job. The job's terminateReason is set to 'AllTasksComplete'. + + +class OnTaskFailure(str, Enum): + + no_action = "noaction" #: Do nothing. The job remains active unless terminated or disabled by some other means. + perform_exit_options_job_action = "performexitoptionsjobaction" #: Take the action associated with the task exit condition in the task's exitConditions collection. (This may still result in no action being taken, if that is what the task specifies.) + + +class JobScheduleState(str, Enum): + + active = "active" #: The job schedule is active and will create jobs as per its schedule. + completed = "completed" #: The schedule has terminated, either by reaching its end time or by the user terminating it explicitly. + disabled = "disabled" #: The user has disabled the schedule. The scheduler will not initiate any new jobs will on this schedule, but any existing active job will continue to run. + terminating = "terminating" #: The schedule has no more work to do, or has been explicitly terminated by the user, but the termination operation is still in progress. The scheduler will not initiate any new jobs for this schedule, nor is any existing job active. + deleting = "deleting" #: The user has requested that the schedule be deleted, but the delete operation is still in progress. The scheduler will not initiate any new jobs for this schedule, and will delete any existing jobs and tasks under the schedule, including any active job. The schedule will be deleted when all jobs and tasks under the schedule have been deleted. + + +class ErrorCategory(str, Enum): + + user_error = "usererror" #: The error is due to a user issue, such as misconfiguration. + server_error = "servererror" #: The error is due to an internal server issue. + + +class JobState(str, Enum): + + active = "active" #: The job is available to have tasks scheduled. + disabling = "disabling" #: A user has requested that the job be disabled, but the disable operation is still in progress (for example, waiting for tasks to terminate). + disabled = "disabled" #: A user has disabled the job. No tasks are running, and no new tasks will be scheduled. + enabling = "enabling" #: A user has requested that the job be enabled, but the enable operation is still in progress. + terminating = "terminating" #: The job is about to complete, either because a Job Manager task has completed or because the user has terminated the job, but the terminate operation is still in progress (for example, because Job Release tasks are running). + completed = "completed" #: All tasks have terminated, and the system will not accept any more tasks or any further changes to the job. + deleting = "deleting" #: A user has requested that the job be deleted, but the delete operation is still in progress (for example, because the system is still terminating running tasks). + + +class JobPreparationTaskState(str, Enum): + + running = "running" #: The task is currently running (including retrying). + completed = "completed" #: The task has exited with exit code 0, or the task has exhausted its retry limit, or the Batch service was unable to start the task due to task preparation errors (such as resource file download failures). + + +class TaskExecutionResult(str, Enum): + + success = "success" #: The task ran successfully. + failure = "failure" #: There was an error during processing of the task. The failure may have occurred before the task process was launched, while the task process was executing, or after the task process exited. + + +class JobReleaseTaskState(str, Enum): + + running = "running" #: The task is currently running (including retrying). + completed = "completed" #: The task has exited with exit code 0, or the task has exhausted its retry limit, or the Batch service was unable to start the task due to task preparation errors (such as resource file download failures). + + +class PoolState(str, Enum): + + active = "active" #: The pool is available to run tasks subject to the availability of compute nodes. + deleting = "deleting" #: The user has requested that the pool be deleted, but the delete operation has not yet completed. + upgrading = "upgrading" #: The user has requested that the operating system of the pool's nodes be upgraded, but the upgrade operation has not yet completed (that is, some nodes in the pool have not yet been upgraded). While upgrading, the pool may be able to run tasks (with reduced capacity) but this is not guaranteed. + + +class AllocationState(str, Enum): + + steady = "steady" #: The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of nodes. + resizing = "resizing" #: The pool is resizing; that is, compute nodes are being added to or removed from the pool. + stopping = "stopping" #: The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed. + + +class TaskState(str, Enum): + + active = "active" #: The task is queued and able to run, but is not currently assigned to a compute node. A task enters this state when it is created, when it is enabled after being disabled, or when it is awaiting a retry after a failed run. + preparing = "preparing" #: The task has been assigned to a compute node, but is waiting for a required Job Preparation task to complete on the node. If the Job Preparation task succeeds, the task will move to running. If the Job Preparation task fails, the task will return to active and will be eligible to be assigned to a different node. + running = "running" #: The task is running on a compute node. This includes task-level preparation such as downloading resource files or deploying application packages specified on the task - it does not necessarily mean that the task command line has started executing. + completed = "completed" #: The task is no longer eligible to run, usually because the task has finished successfully, or the task has finished unsuccessfully and has exhausted its retry limit. A task is also marked as completed if an error occurred launching the task, or when the task has been terminated. + + +class TaskAddStatus(str, Enum): + + success = "success" #: The task was added successfully. + client_error = "clienterror" #: The task failed to add due to a client error and should not be retried without modifying the request as appropriate. + server_error = "servererror" #: Task failed to add due to a server error and can be retried without modification. + + +class SubtaskState(str, Enum): + + preparing = "preparing" #: The task has been assigned to a compute node, but is waiting for a required Job Preparation task to complete on the node. If the Job Preparation task succeeds, the task will move to running. If the Job Preparation task fails, the task will return to active and will be eligible to be assigned to a different node. + running = "running" #: The task is running on a compute node. This includes task-level preparation such as downloading resource files or deploying application packages specified on the task - it does not necessarily mean that the task command line has started executing. + completed = "completed" #: The task is no longer eligible to run, usually because the task has finished successfully, or the task has finished unsuccessfully and has exhausted its retry limit. A task is also marked as completed if an error occurred launching the task, or when the task has been terminated. + + +class StartTaskState(str, Enum): + + running = "running" #: The start task is currently running. + completed = "completed" #: The start task has exited with exit code 0, or the start task has failed and the retry limit has reached, or the start task process did not run due to task preparation errors (such as resource file download failures). + + +class ComputeNodeState(str, Enum): + + idle = "idle" #: The node is not currently running a task. + rebooting = "rebooting" #: The node is rebooting. + reimaging = "reimaging" #: The node is reimaging. + running = "running" #: The node is running one or more tasks (other than a start task). + unusable = "unusable" #: The node cannot be used for task execution due to errors. + creating = "creating" #: The Batch service has obtained the underlying virtual machine from Azure Compute, but it has not yet started to join the pool. + starting = "starting" #: The Batch service is starting on the underlying virtual machine. + waiting_for_start_task = "waitingforstarttask" #: The start task has started running on the compute node, but waitForSuccess is set and the start task has not yet completed. + start_task_failed = "starttaskfailed" #: The start task has failed on the compute node (and exhausted all retries), and waitForSuccess is set. The node is not usable for running tasks. + unknown = "unknown" #: The Batch service has lost contact with the node, and does not know its true state. + leaving_pool = "leavingpool" #: The node is leaving the pool, either because the user explicitly removed it or because the pool is resizing or autoscaling down. + offline = "offline" #: The node is not currently running a task, and scheduling of new tasks to the node is disabled. + preempted = "preempted" #: The low-priority node has been preempted. Tasks which were running on the node when it was pre-empted will be rescheduled when another node becomes available. + + +class SchedulingState(str, Enum): + + enabled = "enabled" #: Tasks can be scheduled on the node. + disabled = "disabled" #: No new tasks will be scheduled on the node. Tasks already running on the node may still run to completion. All nodes start with scheduling enabled. + + +class DisableJobOption(str, Enum): + + requeue = "requeue" #: Terminate running tasks and requeue them. The tasks will run again when the job is enabled. + terminate = "terminate" #: Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. + wait = "wait" #: Allow currently running tasks to complete. + + +class ComputeNodeDeallocationOption(str, Enum): + + requeue = "requeue" #: Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated. + terminate = "terminate" #: Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed. + retained_data = "retaineddata" #: Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired. + + +class ComputeNodeRebootOption(str, Enum): + + requeue = "requeue" #: Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Restart the node as soon as tasks have been terminated. + terminate = "terminate" #: Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Restart the node as soon as tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running tasks to complete. Schedule no new tasks while waiting. Restart the node when all tasks have completed. + retained_data = "retaineddata" #: Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Restart the node when all task retention periods have expired. + + +class ComputeNodeReimageOption(str, Enum): + + requeue = "requeue" #: Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Reimage the node as soon as tasks have been terminated. + terminate = "terminate" #: Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Reimage the node as soon as tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running tasks to complete. Schedule no new tasks while waiting. Reimage the node when all tasks have completed. + retained_data = "retaineddata" #: Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Reimage the node when all task retention periods have expired. + + +class DisableComputeNodeSchedulingOption(str, Enum): + + requeue = "requeue" #: Terminate running task processes and requeue the tasks. The tasks may run again on other compute nodes, or when task scheduling is re-enabled on this node. Enter offline state as soon as tasks have been terminated. + terminate = "terminate" #: Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Enter offline state as soon as tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running tasks to complete. Schedule no new tasks while waiting. Enter offline state when all tasks have completed. diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate.py b/azext/batch/_vendor/v4/azure/batch/models/certificate.py new file mode 100644 index 00000000..e44c3f85 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class Certificate(Model): + """A certificate that can be installed on compute nodes and can be used to + authenticate operations on the machine. + + :param thumbprint: The X.509 thumbprint of the certificate. This is a + sequence of up to 40 hex digits. + :type thumbprint: str + :param thumbprint_algorithm: The algorithm used to derive the thumbprint. + :type thumbprint_algorithm: str + :param url: The URL of the certificate. + :type url: str + :param state: The current state of the certificate. Possible values + include: 'active', 'deleting', 'deleteFailed' + :type state: str or ~azure.batch.models.CertificateState + :param state_transition_time: The time at which the certificate entered + its current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the certificate. This + property is not set if the certificate is in its initial active state. + Possible values include: 'active', 'deleting', 'deleteFailed' + :type previous_state: str or ~azure.batch.models.CertificateState + :param previous_state_transition_time: The time at which the certificate + entered its previous state. This property is not set if the certificate is + in its initial Active state. + :type previous_state_transition_time: datetime + :param public_data: The public part of the certificate as a base-64 + encoded .cer file. + :type public_data: str + :param delete_certificate_error: The error that occurred on the last + attempt to delete this certificate. This property is set only if the + certificate is in the DeleteFailed state. + :type delete_certificate_error: ~azure.batch.models.DeleteCertificateError + """ + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'CertificateState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'CertificateState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'public_data': {'key': 'publicData', 'type': 'str'}, + 'delete_certificate_error': {'key': 'deleteCertificateError', 'type': 'DeleteCertificateError'}, + } + + def __init__(self, **kwargs): + super(Certificate, self).__init__(**kwargs) + self.thumbprint = kwargs.get('thumbprint', None) + self.thumbprint_algorithm = kwargs.get('thumbprint_algorithm', None) + self.url = kwargs.get('url', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.public_data = kwargs.get('public_data', None) + self.delete_certificate_error = kwargs.get('delete_certificate_error', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_add_options.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_options.py new file mode 100644 index 00000000..f2c8d5bb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_add_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_options_py3.py new file mode 100644 index 00000000..c7d61b36 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter.py new file mode 100644 index 00000000..809efd66 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateAddParameter(Model): + """A certificate that can be installed on compute nodes and can be used to + authenticate operations on the machine. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The X.509 thumbprint of the certificate. This + is a sequence of up to 40 hex digits (it may include spaces but these are + removed). + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm used to derive the + thumbprint. This must be sha1. + :type thumbprint_algorithm: str + :param data: Required. The base64-encoded contents of the certificate. The + maximum size is 10KB. + :type data: str + :param certificate_format: The format of the certificate data. Possible + values include: 'pfx', 'cer' + :type certificate_format: str or ~azure.batch.models.CertificateFormat + :param password: The password to access the certificate's private key. + This is required if the certificate format is pfx. It should be omitted if + the certificate format is cer. + :type password: str + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + 'data': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'data': {'key': 'data', 'type': 'str'}, + 'certificate_format': {'key': 'certificateFormat', 'type': 'CertificateFormat'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CertificateAddParameter, self).__init__(**kwargs) + self.thumbprint = kwargs.get('thumbprint', None) + self.thumbprint_algorithm = kwargs.get('thumbprint_algorithm', None) + self.data = kwargs.get('data', None) + self.certificate_format = kwargs.get('certificate_format', None) + self.password = kwargs.get('password', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter_py3.py new file mode 100644 index 00000000..2a560b2b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_add_parameter_py3.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateAddParameter(Model): + """A certificate that can be installed on compute nodes and can be used to + authenticate operations on the machine. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The X.509 thumbprint of the certificate. This + is a sequence of up to 40 hex digits (it may include spaces but these are + removed). + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm used to derive the + thumbprint. This must be sha1. + :type thumbprint_algorithm: str + :param data: Required. The base64-encoded contents of the certificate. The + maximum size is 10KB. + :type data: str + :param certificate_format: The format of the certificate data. Possible + values include: 'pfx', 'cer' + :type certificate_format: str or ~azure.batch.models.CertificateFormat + :param password: The password to access the certificate's private key. + This is required if the certificate format is pfx. It should be omitted if + the certificate format is cer. + :type password: str + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + 'data': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'data': {'key': 'data', 'type': 'str'}, + 'certificate_format': {'key': 'certificateFormat', 'type': 'CertificateFormat'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, *, thumbprint: str, thumbprint_algorithm: str, data: str, certificate_format=None, password: str=None, **kwargs) -> None: + super(CertificateAddParameter, self).__init__(**kwargs) + self.thumbprint = thumbprint + self.thumbprint_algorithm = thumbprint_algorithm + self.data = data + self.certificate_format = certificate_format + self.password = password diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options.py new file mode 100644 index 00000000..5c7c936c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateCancelDeletionOptions(Model): + """Additional parameters for cancel_deletion operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateCancelDeletionOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options_py3.py new file mode 100644 index 00000000..8afbcf24 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_cancel_deletion_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateCancelDeletionOptions(Model): + """Additional parameters for cancel_deletion operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateCancelDeletionOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options.py new file mode 100644 index 00000000..5ff7ee83 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options_py3.py new file mode 100644 index 00000000..47f91b10 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_delete_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_get_options.py new file mode 100644 index 00000000..2b474c17 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_get_options.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_get_options_py3.py new file mode 100644 index 00000000..4bd6bb70 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_get_options_py3.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateGetOptions, self).__init__(**kwargs) + self.select = select + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_list_options.py new file mode 100644 index 00000000..cb3134af --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_list_options.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 certificates can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_list_options_py3.py new file mode 100644 index 00000000..461b8044 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_list_options_py3.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 certificates can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_paged.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_paged.py new file mode 100644 index 00000000..985d7838 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class CertificatePaged(Paged): + """ + A paging container for iterating over a list of :class:`Certificate ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[Certificate]'} + } + + def __init__(self, *args, **kwargs): + + super(CertificatePaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_py3.py new file mode 100644 index 00000000..4e0b71c5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_py3.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class Certificate(Model): + """A certificate that can be installed on compute nodes and can be used to + authenticate operations on the machine. + + :param thumbprint: The X.509 thumbprint of the certificate. This is a + sequence of up to 40 hex digits. + :type thumbprint: str + :param thumbprint_algorithm: The algorithm used to derive the thumbprint. + :type thumbprint_algorithm: str + :param url: The URL of the certificate. + :type url: str + :param state: The current state of the certificate. Possible values + include: 'active', 'deleting', 'deleteFailed' + :type state: str or ~azure.batch.models.CertificateState + :param state_transition_time: The time at which the certificate entered + its current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the certificate. This + property is not set if the certificate is in its initial active state. + Possible values include: 'active', 'deleting', 'deleteFailed' + :type previous_state: str or ~azure.batch.models.CertificateState + :param previous_state_transition_time: The time at which the certificate + entered its previous state. This property is not set if the certificate is + in its initial Active state. + :type previous_state_transition_time: datetime + :param public_data: The public part of the certificate as a base-64 + encoded .cer file. + :type public_data: str + :param delete_certificate_error: The error that occurred on the last + attempt to delete this certificate. This property is set only if the + certificate is in the DeleteFailed state. + :type delete_certificate_error: ~azure.batch.models.DeleteCertificateError + """ + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'CertificateState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'CertificateState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'public_data': {'key': 'publicData', 'type': 'str'}, + 'delete_certificate_error': {'key': 'deleteCertificateError', 'type': 'DeleteCertificateError'}, + } + + def __init__(self, *, thumbprint: str=None, thumbprint_algorithm: str=None, url: str=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, public_data: str=None, delete_certificate_error=None, **kwargs) -> None: + super(Certificate, self).__init__(**kwargs) + self.thumbprint = thumbprint + self.thumbprint_algorithm = thumbprint_algorithm + self.url = url + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.public_data = public_data + self.delete_certificate_error = delete_certificate_error diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_reference.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_reference.py new file mode 100644 index 00000000..976c1908 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_reference.py @@ -0,0 +1,70 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateReference(Model): + """A reference to a certificate to be installed on compute nodes in a pool. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The thumbprint of the certificate. + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm with which the + thumbprint is associated. This must be sha1. + :type thumbprint_algorithm: str + :param store_location: The location of the certificate store on the + compute node into which to install the certificate. The default value is + currentuser. This property is applicable only for pools configured with + Windows nodes (that is, created with cloudServiceConfiguration, or with + virtualMachineConfiguration using a Windows image reference). For Linux + compute nodes, the certificates are stored in a directory inside the task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the task to query for this location. For certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and certificates are placed + in that directory. Possible values include: 'currentUser', 'localMachine' + :type store_location: str or ~azure.batch.models.CertificateStoreLocation + :param store_name: The name of the certificate store on the compute node + into which to install the certificate. This property is applicable only + for pools configured with Windows nodes (that is, created with + cloudServiceConfiguration, or with virtualMachineConfiguration using a + Windows image reference). Common store names include: My, Root, CA, Trust, + Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but + any custom store name can also be used. The default value is My. + :type store_name: str + :param visibility: Which user accounts on the compute node should have + access to the private data of the certificate. You can specify more than + one visibility in this collection. The default is all accounts. + :type visibility: list[str or ~azure.batch.models.CertificateVisibility] + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'store_location': {'key': 'storeLocation', 'type': 'CertificateStoreLocation'}, + 'store_name': {'key': 'storeName', 'type': 'str'}, + 'visibility': {'key': 'visibility', 'type': '[CertificateVisibility]'}, + } + + def __init__(self, **kwargs): + super(CertificateReference, self).__init__(**kwargs) + self.thumbprint = kwargs.get('thumbprint', None) + self.thumbprint_algorithm = kwargs.get('thumbprint_algorithm', None) + self.store_location = kwargs.get('store_location', None) + self.store_name = kwargs.get('store_name', None) + self.visibility = kwargs.get('visibility', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/certificate_reference_py3.py b/azext/batch/_vendor/v4/azure/batch/models/certificate_reference_py3.py new file mode 100644 index 00000000..46e52e27 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/certificate_reference_py3.py @@ -0,0 +1,70 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CertificateReference(Model): + """A reference to a certificate to be installed on compute nodes in a pool. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The thumbprint of the certificate. + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm with which the + thumbprint is associated. This must be sha1. + :type thumbprint_algorithm: str + :param store_location: The location of the certificate store on the + compute node into which to install the certificate. The default value is + currentuser. This property is applicable only for pools configured with + Windows nodes (that is, created with cloudServiceConfiguration, or with + virtualMachineConfiguration using a Windows image reference). For Linux + compute nodes, the certificates are stored in a directory inside the task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the task to query for this location. For certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and certificates are placed + in that directory. Possible values include: 'currentUser', 'localMachine' + :type store_location: str or ~azure.batch.models.CertificateStoreLocation + :param store_name: The name of the certificate store on the compute node + into which to install the certificate. This property is applicable only + for pools configured with Windows nodes (that is, created with + cloudServiceConfiguration, or with virtualMachineConfiguration using a + Windows image reference). Common store names include: My, Root, CA, Trust, + Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but + any custom store name can also be used. The default value is My. + :type store_name: str + :param visibility: Which user accounts on the compute node should have + access to the private data of the certificate. You can specify more than + one visibility in this collection. The default is all accounts. + :type visibility: list[str or ~azure.batch.models.CertificateVisibility] + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'store_location': {'key': 'storeLocation', 'type': 'CertificateStoreLocation'}, + 'store_name': {'key': 'storeName', 'type': 'str'}, + 'visibility': {'key': 'visibility', 'type': '[CertificateVisibility]'}, + } + + def __init__(self, *, thumbprint: str, thumbprint_algorithm: str, store_location=None, store_name: str=None, visibility=None, **kwargs) -> None: + super(CertificateReference, self).__init__(**kwargs) + self.thumbprint = thumbprint + self.thumbprint_algorithm = thumbprint_algorithm + self.store_location = store_location + self.store_name = store_name + self.visibility = visibility diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_job.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_job.py new file mode 100644 index 00000000..4e6cafbf --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_job.py @@ -0,0 +1,158 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudJob(Model): + """An Azure Batch job. + + :param id: A string that uniquely identifies the job within the account. + The ID is case-preserving and case-insensitive (that is, you may not have + two IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. + :type display_name: str + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param url: The URL of the job. + :type url: str + :param e_tag: The ETag of the job. This is an opaque string. You can use + it to detect whether the job has changed between requests. In particular, + you can be pass the ETag when updating a job to specify that your changes + should take effect only if nobody else has modified the job in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the job. This is the last + time at which the job level data, such as the job state or priority, + changed. It does not factor in task-level changes such as adding new tasks + or tasks changing state. + :type last_modified: datetime + :param creation_time: The creation time of the job. + :type creation_time: datetime + :param state: The current state of the job. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type state: str or ~azure.batch.models.JobState + :param state_transition_time: The time at which the job entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the job. This property is not + set if the job is in its initial Active state. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type previous_state: str or ~azure.batch.models.JobState + :param previous_state_transition_time: The time at which the job entered + its previous state. This property is not set if the job is in its initial + Active state. + :type previous_state_transition_time: datetime + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation task. The Job Preparation + task is a special task run on each node before any other task of the job. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release task. The Job Release task is a + special task run at the end of the job on each node that has run any other + task of the job. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: The pool settings associated with the job. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. The default is + noaction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param execution_info: The execution information for the job. + :type execution_info: ~azure.batch.models.JobExecutionInformation + :param stats: Resource usage statistics for the entire lifetime of the + job. The statistics may not be immediately available. The Batch service + performs periodic roll-up of statistics. The typical delay is about 30 + minutes. + :type stats: ~azure.batch.models.JobStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobExecutionInformation'}, + 'stats': {'key': 'stats', 'type': 'JobStatistics'}, + } + + def __init__(self, **kwargs): + super(CloudJob, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.priority = kwargs.get('priority', None) + self.constraints = kwargs.get('constraints', None) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.pool_info = kwargs.get('pool_info', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.metadata = kwargs.get('metadata', None) + self.execution_info = kwargs.get('execution_info', None) + self.stats = kwargs.get('stats', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_job_paged.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_paged.py new file mode 100644 index 00000000..c642458f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class CloudJobPaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudJob ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudJob]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudJobPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_job_py3.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_py3.py new file mode 100644 index 00000000..226cb3bb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_py3.py @@ -0,0 +1,158 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudJob(Model): + """An Azure Batch job. + + :param id: A string that uniquely identifies the job within the account. + The ID is case-preserving and case-insensitive (that is, you may not have + two IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. + :type display_name: str + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param url: The URL of the job. + :type url: str + :param e_tag: The ETag of the job. This is an opaque string. You can use + it to detect whether the job has changed between requests. In particular, + you can be pass the ETag when updating a job to specify that your changes + should take effect only if nobody else has modified the job in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the job. This is the last + time at which the job level data, such as the job state or priority, + changed. It does not factor in task-level changes such as adding new tasks + or tasks changing state. + :type last_modified: datetime + :param creation_time: The creation time of the job. + :type creation_time: datetime + :param state: The current state of the job. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type state: str or ~azure.batch.models.JobState + :param state_transition_time: The time at which the job entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the job. This property is not + set if the job is in its initial Active state. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type previous_state: str or ~azure.batch.models.JobState + :param previous_state_transition_time: The time at which the job entered + its previous state. This property is not set if the job is in its initial + Active state. + :type previous_state_transition_time: datetime + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation task. The Job Preparation + task is a special task run on each node before any other task of the job. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release task. The Job Release task is a + special task run at the end of the job on each node that has run any other + task of the job. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: The pool settings associated with the job. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. The default is + noaction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param execution_info: The execution information for the job. + :type execution_info: ~azure.batch.models.JobExecutionInformation + :param stats: Resource usage statistics for the entire lifetime of the + job. The statistics may not be immediately available. The Batch service + performs periodic roll-up of statistics. The typical delay is about 30 + minutes. + :type stats: ~azure.batch.models.JobStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobExecutionInformation'}, + 'stats': {'key': 'stats', 'type': 'JobStatistics'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, uses_task_dependencies: bool=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, priority: int=None, constraints=None, job_manager_task=None, job_preparation_task=None, job_release_task=None, common_environment_settings=None, pool_info=None, on_all_tasks_complete=None, on_task_failure=None, metadata=None, execution_info=None, stats=None, **kwargs) -> None: + super(CloudJob, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.uses_task_dependencies = uses_task_dependencies + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.priority = priority + self.constraints = constraints + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.pool_info = pool_info + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.metadata = metadata + self.execution_info = execution_info + self.stats = stats diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule.py new file mode 100644 index 00000000..1a2a33fd --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule.py @@ -0,0 +1,107 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudJobSchedule(Model): + """A job schedule that allows recurring jobs by specifying when to run jobs + and a specification used to create each job. + + :param id: A string that uniquely identifies the schedule within the + account. + :type id: str + :param display_name: The display name for the schedule. + :type display_name: str + :param url: The URL of the job schedule. + :type url: str + :param e_tag: The ETag of the job schedule. This is an opaque string. You + can use it to detect whether the job schedule has changed between + requests. In particular, you can be pass the ETag with an Update Job + Schedule request to specify that your changes should take effect only if + nobody else has modified the schedule in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the job schedule. This is + the last time at which the schedule level data, such as the job + specification or recurrence information, changed. It does not factor in + job-level changes such as new jobs being created or jobs changing state. + :type last_modified: datetime + :param creation_time: The creation time of the job schedule. + :type creation_time: datetime + :param state: The current state of the job schedule. Possible values + include: 'active', 'completed', 'disabled', 'terminating', 'deleting' + :type state: str or ~azure.batch.models.JobScheduleState + :param state_transition_time: The time at which the job schedule entered + the current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the job schedule. This + property is not present if the job schedule is in its initial active + state. Possible values include: 'active', 'completed', 'disabled', + 'terminating', 'deleting' + :type previous_state: str or ~azure.batch.models.JobScheduleState + :param previous_state_transition_time: The time at which the job schedule + entered its previous state. This property is not present if the job + schedule is in its initial active state. + :type previous_state_transition_time: datetime + :param schedule: The schedule according to which jobs will be created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the jobs to be created on this + schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param execution_info: Information about jobs that have been and will be + run under this schedule. + :type execution_info: ~azure.batch.models.JobScheduleExecutionInformation + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: The lifetime resource usage statistics for the job schedule. + The statistics may not be immediately available. The Batch service + performs periodic roll-up of statistics. The typical delay is about 30 + minutes. + :type stats: ~azure.batch.models.JobScheduleStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobScheduleState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobScheduleState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobScheduleExecutionInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'JobScheduleStatistics'}, + } + + def __init__(self, **kwargs): + super(CloudJobSchedule, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.execution_info = kwargs.get('execution_info', None) + self.metadata = kwargs.get('metadata', None) + self.stats = kwargs.get('stats', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_paged.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_paged.py new file mode 100644 index 00000000..3abb6f15 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class CloudJobSchedulePaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudJobSchedule ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudJobSchedule]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudJobSchedulePaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_py3.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_py3.py new file mode 100644 index 00000000..1542fe56 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_job_schedule_py3.py @@ -0,0 +1,107 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudJobSchedule(Model): + """A job schedule that allows recurring jobs by specifying when to run jobs + and a specification used to create each job. + + :param id: A string that uniquely identifies the schedule within the + account. + :type id: str + :param display_name: The display name for the schedule. + :type display_name: str + :param url: The URL of the job schedule. + :type url: str + :param e_tag: The ETag of the job schedule. This is an opaque string. You + can use it to detect whether the job schedule has changed between + requests. In particular, you can be pass the ETag with an Update Job + Schedule request to specify that your changes should take effect only if + nobody else has modified the schedule in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the job schedule. This is + the last time at which the schedule level data, such as the job + specification or recurrence information, changed. It does not factor in + job-level changes such as new jobs being created or jobs changing state. + :type last_modified: datetime + :param creation_time: The creation time of the job schedule. + :type creation_time: datetime + :param state: The current state of the job schedule. Possible values + include: 'active', 'completed', 'disabled', 'terminating', 'deleting' + :type state: str or ~azure.batch.models.JobScheduleState + :param state_transition_time: The time at which the job schedule entered + the current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the job schedule. This + property is not present if the job schedule is in its initial active + state. Possible values include: 'active', 'completed', 'disabled', + 'terminating', 'deleting' + :type previous_state: str or ~azure.batch.models.JobScheduleState + :param previous_state_transition_time: The time at which the job schedule + entered its previous state. This property is not present if the job + schedule is in its initial active state. + :type previous_state_transition_time: datetime + :param schedule: The schedule according to which jobs will be created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the jobs to be created on this + schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param execution_info: Information about jobs that have been and will be + run under this schedule. + :type execution_info: ~azure.batch.models.JobScheduleExecutionInformation + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: The lifetime resource usage statistics for the job schedule. + The statistics may not be immediately available. The Batch service + performs periodic roll-up of statistics. The typical delay is about 30 + minutes. + :type stats: ~azure.batch.models.JobScheduleStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobScheduleState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobScheduleState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobScheduleExecutionInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'JobScheduleStatistics'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, schedule=None, job_specification=None, execution_info=None, metadata=None, stats=None, **kwargs) -> None: + super(CloudJobSchedule, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.schedule = schedule + self.job_specification = job_specification + self.execution_info = execution_info + self.metadata = metadata + self.stats = stats diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_pool.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_pool.py new file mode 100644 index 00000000..8d85502d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_pool.py @@ -0,0 +1,237 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudPool(Model): + """A pool in the Azure Batch service. + + :param id: A string that uniquely identifies the pool within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the pool. + :type url: str + :param e_tag: The ETag of the pool. This is an opaque string. You can use + it to detect whether the pool has changed between requests. In particular, + you can be pass the ETag when updating a pool to specify that your changes + should take effect only if nobody else has modified the pool in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the pool. This is the last + time at which the pool level data, such as the targetDedicatedNodes or + enableAutoscale settings, changed. It does not factor in node-level + changes such as a compute node changing state. + :type last_modified: datetime + :param creation_time: The creation time of the pool. + :type creation_time: datetime + :param state: The current state of the pool. Possible values include: + 'active', 'deleting', 'upgrading' + :type state: str or ~azure.batch.models.PoolState + :param state_transition_time: The time at which the pool entered its + current state. + :type state_transition_time: datetime + :param allocation_state: Whether the pool is resizing. Possible values + include: 'steady', 'resizing', 'stopping' + :type allocation_state: str or ~azure.batch.models.AllocationState + :param allocation_state_transition_time: The time at which the pool + entered its current allocation state. + :type allocation_state_transition_time: datetime + :param vm_size: The size of virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines in pools, see Choose a VM size for compute nodes + in an Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This is the timeout for the most recent resize operation. (The + initial sizing when the pool is created counts as a resize.) The default + value is 15 minutes. + :type resize_timeout: timedelta + :param resize_errors: A list of errors encountered while performing the + last resize on the pool. This property is set only if one or more errors + occurred during the last pool resize, and only when the pool + allocationState is Steady. + :type resize_errors: list[~azure.batch.models.ResizeError] + :param current_dedicated_nodes: The number of dedicated compute nodes + currently in the pool. + :type current_dedicated_nodes: int + :param current_low_priority_nodes: The number of low-priority compute + nodes currently in the pool. Low-priority compute nodes which have been + preempted are included in this count. + :type current_low_priority_nodes: int + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property is set only if the pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. + This property is set only if the pool automatically scales, i.e. + enableAutoScale is true. + :type auto_scale_evaluation_interval: timedelta + :param auto_scale_run: The results and errors from the last execution of + the autoscale formula. This property is set only if the pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_run: ~azure.batch.models.AutoScaleRun + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. This imposes restrictions on which nodes can + be assigned to the pool. Specifying this value can reduce the chance of + the requested number of nodes to be allocated in the pool. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A task specified to run on each compute node as it + joins the pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the pool as + metadata. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: Utilization and resource usage statistics for the entire + lifetime of the pool. The statistics may not be immediately available. The + Batch service performs periodic roll-up of statistics. The typical delay + is about 30 minutes. + :type stats: ~azure.batch.models.PoolStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'PoolState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'allocation_state': {'key': 'allocationState', 'type': 'AllocationState'}, + 'allocation_state_transition_time': {'key': 'allocationStateTransitionTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'resize_errors': {'key': 'resizeErrors', 'type': '[ResizeError]'}, + 'current_dedicated_nodes': {'key': 'currentDedicatedNodes', 'type': 'int'}, + 'current_low_priority_nodes': {'key': 'currentLowPriorityNodes', 'type': 'int'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'auto_scale_run': {'key': 'autoScaleRun', 'type': 'AutoScaleRun'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'PoolStatistics'}, + } + + def __init__(self, **kwargs): + super(CloudPool, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.allocation_state = kwargs.get('allocation_state', None) + self.allocation_state_transition_time = kwargs.get('allocation_state_transition_time', None) + self.vm_size = kwargs.get('vm_size', None) + self.cloud_service_configuration = kwargs.get('cloud_service_configuration', None) + self.virtual_machine_configuration = kwargs.get('virtual_machine_configuration', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.resize_errors = kwargs.get('resize_errors', None) + self.current_dedicated_nodes = kwargs.get('current_dedicated_nodes', None) + self.current_low_priority_nodes = kwargs.get('current_low_priority_nodes', None) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.enable_auto_scale = kwargs.get('enable_auto_scale', None) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + self.auto_scale_run = kwargs.get('auto_scale_run', None) + self.enable_inter_node_communication = kwargs.get('enable_inter_node_communication', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.application_licenses = kwargs.get('application_licenses', None) + self.max_tasks_per_node = kwargs.get('max_tasks_per_node', None) + self.task_scheduling_policy = kwargs.get('task_scheduling_policy', None) + self.user_accounts = kwargs.get('user_accounts', None) + self.metadata = kwargs.get('metadata', None) + self.stats = kwargs.get('stats', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_pool_paged.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_pool_paged.py new file mode 100644 index 00000000..c23eb7cd --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_pool_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class CloudPoolPaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudPool ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudPool]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudPoolPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_pool_py3.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_pool_py3.py new file mode 100644 index 00000000..b1166d42 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_pool_py3.py @@ -0,0 +1,237 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudPool(Model): + """A pool in the Azure Batch service. + + :param id: A string that uniquely identifies the pool within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the pool. + :type url: str + :param e_tag: The ETag of the pool. This is an opaque string. You can use + it to detect whether the pool has changed between requests. In particular, + you can be pass the ETag when updating a pool to specify that your changes + should take effect only if nobody else has modified the pool in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the pool. This is the last + time at which the pool level data, such as the targetDedicatedNodes or + enableAutoscale settings, changed. It does not factor in node-level + changes such as a compute node changing state. + :type last_modified: datetime + :param creation_time: The creation time of the pool. + :type creation_time: datetime + :param state: The current state of the pool. Possible values include: + 'active', 'deleting', 'upgrading' + :type state: str or ~azure.batch.models.PoolState + :param state_transition_time: The time at which the pool entered its + current state. + :type state_transition_time: datetime + :param allocation_state: Whether the pool is resizing. Possible values + include: 'steady', 'resizing', 'stopping' + :type allocation_state: str or ~azure.batch.models.AllocationState + :param allocation_state_transition_time: The time at which the pool + entered its current allocation state. + :type allocation_state_transition_time: datetime + :param vm_size: The size of virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines in pools, see Choose a VM size for compute nodes + in an Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This is the timeout for the most recent resize operation. (The + initial sizing when the pool is created counts as a resize.) The default + value is 15 minutes. + :type resize_timeout: timedelta + :param resize_errors: A list of errors encountered while performing the + last resize on the pool. This property is set only if one or more errors + occurred during the last pool resize, and only when the pool + allocationState is Steady. + :type resize_errors: list[~azure.batch.models.ResizeError] + :param current_dedicated_nodes: The number of dedicated compute nodes + currently in the pool. + :type current_dedicated_nodes: int + :param current_low_priority_nodes: The number of low-priority compute + nodes currently in the pool. Low-priority compute nodes which have been + preempted are included in this count. + :type current_low_priority_nodes: int + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property is set only if the pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. + This property is set only if the pool automatically scales, i.e. + enableAutoScale is true. + :type auto_scale_evaluation_interval: timedelta + :param auto_scale_run: The results and errors from the last execution of + the autoscale formula. This property is set only if the pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_run: ~azure.batch.models.AutoScaleRun + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. This imposes restrictions on which nodes can + be assigned to the pool. Specifying this value can reduce the chance of + the requested number of nodes to be allocated in the pool. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A task specified to run on each compute node as it + joins the pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the pool as + metadata. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: Utilization and resource usage statistics for the entire + lifetime of the pool. The statistics may not be immediately available. The + Batch service performs periodic roll-up of statistics. The typical delay + is about 30 minutes. + :type stats: ~azure.batch.models.PoolStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'PoolState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'allocation_state': {'key': 'allocationState', 'type': 'AllocationState'}, + 'allocation_state_transition_time': {'key': 'allocationStateTransitionTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'resize_errors': {'key': 'resizeErrors', 'type': '[ResizeError]'}, + 'current_dedicated_nodes': {'key': 'currentDedicatedNodes', 'type': 'int'}, + 'current_low_priority_nodes': {'key': 'currentLowPriorityNodes', 'type': 'int'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'auto_scale_run': {'key': 'autoScaleRun', 'type': 'AutoScaleRun'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'PoolStatistics'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, allocation_state=None, allocation_state_transition_time=None, vm_size: str=None, cloud_service_configuration=None, virtual_machine_configuration=None, resize_timeout=None, resize_errors=None, current_dedicated_nodes: int=None, current_low_priority_nodes: int=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, auto_scale_run=None, enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, certificate_references=None, application_package_references=None, application_licenses=None, max_tasks_per_node: int=None, task_scheduling_policy=None, user_accounts=None, metadata=None, stats=None, **kwargs) -> None: + super(CloudPool, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.state = state + self.state_transition_time = state_transition_time + self.allocation_state = allocation_state + self.allocation_state_transition_time = allocation_state_transition_time + self.vm_size = vm_size + self.cloud_service_configuration = cloud_service_configuration + self.virtual_machine_configuration = virtual_machine_configuration + self.resize_timeout = resize_timeout + self.resize_errors = resize_errors + self.current_dedicated_nodes = current_dedicated_nodes + self.current_low_priority_nodes = current_low_priority_nodes + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.enable_auto_scale = enable_auto_scale + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + self.auto_scale_run = auto_scale_run + self.enable_inter_node_communication = enable_inter_node_communication + self.network_configuration = network_configuration + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.application_licenses = application_licenses + self.max_tasks_per_node = max_tasks_per_node + self.task_scheduling_policy = task_scheduling_policy + self.user_accounts = user_accounts + self.metadata = metadata + self.stats = stats diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration.py new file mode 100644 index 00000000..d86bae40 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudServiceConfiguration(Model): + """The configuration for nodes in a pool based on the Azure Cloud Services + platform. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param os_family: Required. The Azure Guest OS family to be installed on + the virtual machines in the pool. Possible values are: + 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. + 3 - OS Family 3, equivalent to Windows Server 2012. + 4 - OS Family 4, equivalent to Windows Server 2012 R2. + 5 - OS Family 5, equivalent to Windows Server 2016. For more information, + see Azure Guest OS Releases + (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). + :type os_family: str + :param target_os_version: The Azure Guest OS version to be installed on + the virtual machines in the pool. The default value is * which specifies + the latest operating system version for the specified OS family. + :type target_os_version: str + :ivar current_os_version: The Azure Guest OS Version currently installed + on the virtual machines in the pool. This may differ from targetOSVersion + if the pool state is Upgrading. In this case some virtual machines may be + on the targetOSVersion and some may be on the currentOSVersion during the + upgrade process. Once all virtual machines have upgraded, currentOSVersion + is updated to be the same as targetOSVersion. + :vartype current_os_version: str + """ + + _validation = { + 'os_family': {'required': True}, + 'current_os_version': {'readonly': True}, + } + + _attribute_map = { + 'os_family': {'key': 'osFamily', 'type': 'str'}, + 'target_os_version': {'key': 'targetOSVersion', 'type': 'str'}, + 'current_os_version': {'key': 'currentOSVersion', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CloudServiceConfiguration, self).__init__(**kwargs) + self.os_family = kwargs.get('os_family', None) + self.target_os_version = kwargs.get('target_os_version', None) + self.current_os_version = None diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration_py3.py new file mode 100644 index 00000000..eb53f78f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_service_configuration_py3.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudServiceConfiguration(Model): + """The configuration for nodes in a pool based on the Azure Cloud Services + platform. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param os_family: Required. The Azure Guest OS family to be installed on + the virtual machines in the pool. Possible values are: + 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. + 3 - OS Family 3, equivalent to Windows Server 2012. + 4 - OS Family 4, equivalent to Windows Server 2012 R2. + 5 - OS Family 5, equivalent to Windows Server 2016. For more information, + see Azure Guest OS Releases + (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). + :type os_family: str + :param target_os_version: The Azure Guest OS version to be installed on + the virtual machines in the pool. The default value is * which specifies + the latest operating system version for the specified OS family. + :type target_os_version: str + :ivar current_os_version: The Azure Guest OS Version currently installed + on the virtual machines in the pool. This may differ from targetOSVersion + if the pool state is Upgrading. In this case some virtual machines may be + on the targetOSVersion and some may be on the currentOSVersion during the + upgrade process. Once all virtual machines have upgraded, currentOSVersion + is updated to be the same as targetOSVersion. + :vartype current_os_version: str + """ + + _validation = { + 'os_family': {'required': True}, + 'current_os_version': {'readonly': True}, + } + + _attribute_map = { + 'os_family': {'key': 'osFamily', 'type': 'str'}, + 'target_os_version': {'key': 'targetOSVersion', 'type': 'str'}, + 'current_os_version': {'key': 'currentOSVersion', 'type': 'str'}, + } + + def __init__(self, *, os_family: str, target_os_version: str=None, **kwargs) -> None: + super(CloudServiceConfiguration, self).__init__(**kwargs) + self.os_family = os_family + self.target_os_version = target_os_version + self.current_os_version = None diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_task.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_task.py new file mode 100644 index 00000000..df9e3677 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_task.py @@ -0,0 +1,208 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudTask(Model): + """An Azure Batch task. + + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + :param id: A string that uniquely identifies the task within the job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the task. + :type url: str + :param e_tag: The ETag of the task. This is an opaque string. You can use + it to detect whether the task has changed between requests. In particular, + you can be pass the ETag when updating a task to specify that your changes + should take effect only if nobody else has modified the task in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the task. + :type last_modified: datetime + :param creation_time: The creation time of the task. + :type creation_time: datetime + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param state: The current state of the task. Possible values include: + 'active', 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.TaskState + :param state_transition_time: The time at which the task entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the task. This property is + not set if the task is in its initial Active state. Possible values + include: 'active', 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.TaskState + :param previous_state_transition_time: The time at which the task entered + its previous state. This property is not set if the task is in its initial + Active state. + :type previous_state_transition_time: datetime + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this task. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: ~azure.batch.models.UserIdentity + :param execution_info: Information about the execution of the task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + :param node_info: Information about the compute node on which the task + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param stats: Resource usage statistics for the task. + :type stats: ~azure.batch.models.TaskStatistics + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'state': {'key': 'state', 'type': 'TaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'TaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'stats': {'key': 'stats', 'type': 'TaskStatistics'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, **kwargs): + super(CloudTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.exit_conditions = kwargs.get('exit_conditions', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.execution_info = kwargs.get('execution_info', None) + self.node_info = kwargs.get('node_info', None) + self.multi_instance_settings = kwargs.get('multi_instance_settings', None) + self.stats = kwargs.get('stats', None) + self.depends_on = kwargs.get('depends_on', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result.py new file mode 100644 index 00000000..c592b348 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudTaskListSubtasksResult(Model): + """The result of listing the subtasks of a task. + + :param value: The list of subtasks. + :type value: list[~azure.batch.models.SubtaskInformation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SubtaskInformation]'}, + } + + def __init__(self, **kwargs): + super(CloudTaskListSubtasksResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result_py3.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result_py3.py new file mode 100644 index 00000000..f21e7260 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_list_subtasks_result_py3.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudTaskListSubtasksResult(Model): + """The result of listing the subtasks of a task. + + :param value: The list of subtasks. + :type value: list[~azure.batch.models.SubtaskInformation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SubtaskInformation]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(CloudTaskListSubtasksResult, self).__init__(**kwargs) + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_task_paged.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_paged.py new file mode 100644 index 00000000..3d8ef774 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class CloudTaskPaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudTask ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudTask]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudTaskPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/cloud_task_py3.py b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_py3.py new file mode 100644 index 00000000..95928544 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/cloud_task_py3.py @@ -0,0 +1,208 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CloudTask(Model): + """An Azure Batch task. + + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + :param id: A string that uniquely identifies the task within the job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the task. + :type url: str + :param e_tag: The ETag of the task. This is an opaque string. You can use + it to detect whether the task has changed between requests. In particular, + you can be pass the ETag when updating a task to specify that your changes + should take effect only if nobody else has modified the task in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the task. + :type last_modified: datetime + :param creation_time: The creation time of the task. + :type creation_time: datetime + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param state: The current state of the task. Possible values include: + 'active', 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.TaskState + :param state_transition_time: The time at which the task entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the task. This property is + not set if the task is in its initial Active state. Possible values + include: 'active', 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.TaskState + :param previous_state_transition_time: The time at which the task entered + its previous state. This property is not set if the task is in its initial + Active state. + :type previous_state_transition_time: datetime + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this task. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: ~azure.batch.models.UserIdentity + :param execution_info: Information about the execution of the task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + :param node_info: Information about the compute node on which the task + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param stats: Resource usage statistics for the task. + :type stats: ~azure.batch.models.TaskStatistics + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'state': {'key': 'state', 'type': 'TaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'TaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'stats': {'key': 'stats', 'type': 'TaskStatistics'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, exit_conditions=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, command_line: str=None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, affinity_info=None, constraints=None, user_identity=None, execution_info=None, node_info=None, multi_instance_settings=None, stats=None, depends_on=None, application_package_references=None, authentication_token_settings=None, **kwargs) -> None: + super(CloudTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.exit_conditions = exit_conditions + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.execution_info = execution_info + self.node_info = node_info + self.multi_instance_settings = multi_instance_settings + self.stats = stats + self.depends_on = depends_on + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node.py new file mode 100644 index 00000000..444598f9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node.py @@ -0,0 +1,155 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNode(Model): + """A compute node in the Batch service. + + :param id: The ID of the compute node. Every node that is added to a pool + is assigned a unique ID. Whenever a node is removed from a pool, all of + its local files are deleted, and the ID is reclaimed and could be reused + for new nodes. + :type id: str + :param url: The URL of the compute node. + :type url: str + :param state: The current state of the compute node. The low-priority node + has been preempted. Tasks which were running on the node when it was + pre-empted will be rescheduled when another node becomes available. + Possible values include: 'idle', 'rebooting', 'reimaging', 'running', + 'unusable', 'creating', 'starting', 'waitingForStartTask', + 'startTaskFailed', 'unknown', 'leavingPool', 'offline', 'preempted' + :type state: str or ~azure.batch.models.ComputeNodeState + :param scheduling_state: Whether the compute node is available for task + scheduling. Possible values include: 'enabled', 'disabled' + :type scheduling_state: str or ~azure.batch.models.SchedulingState + :param state_transition_time: The time at which the compute node entered + its current state. + :type state_transition_time: datetime + :param last_boot_time: The time at which the compute node was started. + This property may not be present if the node state is unusable. + :type last_boot_time: datetime + :param allocation_time: The time at which this compute node was allocated + to the pool. + :type allocation_time: datetime + :param ip_address: The IP address that other compute nodes can use to + communicate with this compute node. Every node that is added to a pool is + assigned a unique IP address. Whenever a node is removed from a pool, all + of its local files are deleted, and the IP address is reclaimed and could + be reused for new nodes. + :type ip_address: str + :param affinity_id: An identifier which can be passed when adding a task + to request that the task be scheduled on this node. Note that this is just + a soft affinity. If the target node is busy or unavailable at the time the + task is scheduled, then the task will be scheduled elsewhere. + :type affinity_id: str + :param vm_size: The size of the virtual machine hosting the compute node. + For information about available sizes of virtual machines in pools, see + Choose a VM size for compute nodes in an Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_tasks_run: The total number of job tasks completed on the + compute node. This includes Job Manager tasks and normal tasks, but not + Job Preparation, Job Release or Start tasks. + :type total_tasks_run: int + :param running_tasks_count: The total number of currently running job + tasks on the compute node. This includes Job Manager tasks and normal + tasks, but not Job Preparation, Job Release or Start tasks. + :type running_tasks_count: int + :param total_tasks_succeeded: The total number of job tasks which + completed successfully (with exitCode 0) on the compute node. This + includes Job Manager tasks and normal tasks, but not Job Preparation, Job + Release or Start tasks. + :type total_tasks_succeeded: int + :param recent_tasks: A list of tasks whose state has recently changed. + This property is present only if at least one task has run on this node + since it was assigned to the pool. + :type recent_tasks: list[~azure.batch.models.TaskInformation] + :param start_task: The task specified to run on the compute node as it + joins the pool. + :type start_task: ~azure.batch.models.StartTask + :param start_task_info: Runtime information about the execution of the + start task on the compute node. + :type start_task_info: ~azure.batch.models.StartTaskInformation + :param certificate_references: The list of certificates installed on the + compute node. For Windows compute nodes, the Batch service installs the + certificates to the specified certificate store and location. For Linux + compute nodes, the certificates are stored in a directory inside the task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the task to query for this location. For certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and certificates are placed + in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param errors: The list of errors that are currently being encountered by + the compute node. + :type errors: list[~azure.batch.models.ComputeNodeError] + :param is_dedicated: Whether this compute node is a dedicated node. If + false, the node is a low-priority node. + :type is_dedicated: bool + :param endpoint_configuration: The endpoint configuration for the compute + node. + :type endpoint_configuration: + ~azure.batch.models.ComputeNodeEndpointConfiguration + :param node_agent_info: Information about the node agent version and the + time the node upgraded to a new version. + :type node_agent_info: ~azure.batch.models.NodeAgentInformation + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'ComputeNodeState'}, + 'scheduling_state': {'key': 'schedulingState', 'type': 'SchedulingState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'last_boot_time': {'key': 'lastBootTime', 'type': 'iso-8601'}, + 'allocation_time': {'key': 'allocationTime', 'type': 'iso-8601'}, + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_tasks_run': {'key': 'totalTasksRun', 'type': 'int'}, + 'running_tasks_count': {'key': 'runningTasksCount', 'type': 'int'}, + 'total_tasks_succeeded': {'key': 'totalTasksSucceeded', 'type': 'int'}, + 'recent_tasks': {'key': 'recentTasks', 'type': '[TaskInformation]'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'start_task_info': {'key': 'startTaskInfo', 'type': 'StartTaskInformation'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'errors': {'key': 'errors', 'type': '[ComputeNodeError]'}, + 'is_dedicated': {'key': 'isDedicated', 'type': 'bool'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'ComputeNodeEndpointConfiguration'}, + 'node_agent_info': {'key': 'nodeAgentInfo', 'type': 'NodeAgentInformation'}, + } + + def __init__(self, **kwargs): + super(ComputeNode, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.url = kwargs.get('url', None) + self.state = kwargs.get('state', None) + self.scheduling_state = kwargs.get('scheduling_state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.last_boot_time = kwargs.get('last_boot_time', None) + self.allocation_time = kwargs.get('allocation_time', None) + self.ip_address = kwargs.get('ip_address', None) + self.affinity_id = kwargs.get('affinity_id', None) + self.vm_size = kwargs.get('vm_size', None) + self.total_tasks_run = kwargs.get('total_tasks_run', None) + self.running_tasks_count = kwargs.get('running_tasks_count', None) + self.total_tasks_succeeded = kwargs.get('total_tasks_succeeded', None) + self.recent_tasks = kwargs.get('recent_tasks', None) + self.start_task = kwargs.get('start_task', None) + self.start_task_info = kwargs.get('start_task_info', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.errors = kwargs.get('errors', None) + self.is_dedicated = kwargs.get('is_dedicated', None) + self.endpoint_configuration = kwargs.get('endpoint_configuration', None) + self.node_agent_info = kwargs.get('node_agent_info', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options.py new file mode 100644 index 00000000..89020475 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeAddUserOptions(Model): + """Additional parameters for add_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeAddUserOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options_py3.py new file mode 100644 index 00000000..dab4040b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_add_user_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeAddUserOptions(Model): + """Additional parameters for add_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeAddUserOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options.py new file mode 100644 index 00000000..4874a98a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeDeleteUserOptions(Model): + """Additional parameters for delete_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeDeleteUserOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options_py3.py new file mode 100644 index 00000000..88217b93 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_delete_user_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeDeleteUserOptions(Model): + """Additional parameters for delete_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeDeleteUserOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options.py new file mode 100644 index 00000000..92bf2911 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeDisableSchedulingOptions(Model): + """Additional parameters for disable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeDisableSchedulingOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options_py3.py new file mode 100644 index 00000000..0432c5db --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_disable_scheduling_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeDisableSchedulingOptions(Model): + """Additional parameters for disable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeDisableSchedulingOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options.py new file mode 100644 index 00000000..905e3e34 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeEnableSchedulingOptions(Model): + """Additional parameters for enable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeEnableSchedulingOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options_py3.py new file mode 100644 index 00000000..4ef5d9ad --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_enable_scheduling_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeEnableSchedulingOptions(Model): + """Additional parameters for enable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeEnableSchedulingOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration.py new file mode 100644 index 00000000..922c5c10 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeEndpointConfiguration(Model): + """The endpoint configuration for the compute node. + + All required parameters must be populated in order to send to Azure. + + :param inbound_endpoints: Required. The list of inbound endpoints that are + accessible on the compute node. + :type inbound_endpoints: list[~azure.batch.models.InboundEndpoint] + """ + + _validation = { + 'inbound_endpoints': {'required': True}, + } + + _attribute_map = { + 'inbound_endpoints': {'key': 'inboundEndpoints', 'type': '[InboundEndpoint]'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeEndpointConfiguration, self).__init__(**kwargs) + self.inbound_endpoints = kwargs.get('inbound_endpoints', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration_py3.py new file mode 100644 index 00000000..72dc202e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_endpoint_configuration_py3.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeEndpointConfiguration(Model): + """The endpoint configuration for the compute node. + + All required parameters must be populated in order to send to Azure. + + :param inbound_endpoints: Required. The list of inbound endpoints that are + accessible on the compute node. + :type inbound_endpoints: list[~azure.batch.models.InboundEndpoint] + """ + + _validation = { + 'inbound_endpoints': {'required': True}, + } + + _attribute_map = { + 'inbound_endpoints': {'key': 'inboundEndpoints', 'type': '[InboundEndpoint]'}, + } + + def __init__(self, *, inbound_endpoints, **kwargs) -> None: + super(ComputeNodeEndpointConfiguration, self).__init__(**kwargs) + self.inbound_endpoints = inbound_endpoints diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_error.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_error.py new file mode 100644 index 00000000..e02a6681 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_error.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeError(Model): + """An error encountered by a compute node. + + :param code: An identifier for the compute node error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the compute node error, intended to + be suitable for display in a user interface. + :type message: str + :param error_details: The list of additional error details related to the + compute node error. + :type error_details: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'error_details': {'key': 'errorDetails', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.error_details = kwargs.get('error_details', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_error_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_error_py3.py new file mode 100644 index 00000000..53a6871b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_error_py3.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeError(Model): + """An error encountered by a compute node. + + :param code: An identifier for the compute node error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the compute node error, intended to + be suitable for display in a user interface. + :type message: str + :param error_details: The list of additional error details related to the + compute node error. + :type error_details: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'error_details': {'key': 'errorDetails', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, error_details=None, **kwargs) -> None: + super(ComputeNodeError, self).__init__(**kwargs) + self.code = code + self.message = message + self.error_details = error_details diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options.py new file mode 100644 index 00000000..6218d444 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options_py3.py new file mode 100644 index 00000000..de6284b3 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_options_py3.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeGetOptions, self).__init__(**kwargs) + self.select = select + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options.py new file mode 100644 index 00000000..20af5558 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetRemoteDesktopOptions(Model): + """Additional parameters for get_remote_desktop operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetRemoteDesktopOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options_py3.py new file mode 100644 index 00000000..d79ce622 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_desktop_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetRemoteDesktopOptions(Model): + """Additional parameters for get_remote_desktop operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeGetRemoteDesktopOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options.py new file mode 100644 index 00000000..9c01ed5f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetRemoteLoginSettingsOptions(Model): + """Additional parameters for get_remote_login_settings operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetRemoteLoginSettingsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options_py3.py new file mode 100644 index 00000000..2d7987ab --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetRemoteLoginSettingsOptions(Model): + """Additional parameters for get_remote_login_settings operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeGetRemoteLoginSettingsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result.py new file mode 100644 index 00000000..2d4e378c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetRemoteLoginSettingsResult(Model): + """The remote login settings for a compute node. + + All required parameters must be populated in order to send to Azure. + + :param remote_login_ip_address: Required. The IP address used for remote + login to the compute node. + :type remote_login_ip_address: str + :param remote_login_port: Required. The port used for remote login to the + compute node. + :type remote_login_port: int + """ + + _validation = { + 'remote_login_ip_address': {'required': True}, + 'remote_login_port': {'required': True}, + } + + _attribute_map = { + 'remote_login_ip_address': {'key': 'remoteLoginIPAddress', 'type': 'str'}, + 'remote_login_port': {'key': 'remoteLoginPort', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetRemoteLoginSettingsResult, self).__init__(**kwargs) + self.remote_login_ip_address = kwargs.get('remote_login_ip_address', None) + self.remote_login_port = kwargs.get('remote_login_port', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result_py3.py new file mode 100644 index 00000000..c13ace1c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_get_remote_login_settings_result_py3.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeGetRemoteLoginSettingsResult(Model): + """The remote login settings for a compute node. + + All required parameters must be populated in order to send to Azure. + + :param remote_login_ip_address: Required. The IP address used for remote + login to the compute node. + :type remote_login_ip_address: str + :param remote_login_port: Required. The port used for remote login to the + compute node. + :type remote_login_port: int + """ + + _validation = { + 'remote_login_ip_address': {'required': True}, + 'remote_login_port': {'required': True}, + } + + _attribute_map = { + 'remote_login_ip_address': {'key': 'remoteLoginIPAddress', 'type': 'str'}, + 'remote_login_port': {'key': 'remoteLoginPort', 'type': 'int'}, + } + + def __init__(self, *, remote_login_ip_address: str, remote_login_port: int, **kwargs) -> None: + super(ComputeNodeGetRemoteLoginSettingsResult, self).__init__(**kwargs) + self.remote_login_ip_address = remote_login_ip_address + self.remote_login_port = remote_login_port diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_information.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_information.py new file mode 100644 index 00000000..9c6a3421 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_information.py @@ -0,0 +1,52 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeInformation(Model): + """Information about the compute node on which a task ran. + + :param affinity_id: An identifier for the compute node on which the task + ran, which can be passed when adding a task to request that the task be + scheduled on this compute node. + :type affinity_id: str + :param node_url: The URL of the node on which the task ran. . + :type node_url: str + :param pool_id: The ID of the pool on which the task ran. + :type pool_id: str + :param node_id: The ID of the node on which the task ran. + :type node_id: str + :param task_root_directory: The root directory of the task on the compute + node. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the task + on the compute node. + :type task_root_directory_url: str + """ + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeInformation, self).__init__(**kwargs) + self.affinity_id = kwargs.get('affinity_id', None) + self.node_url = kwargs.get('node_url', None) + self.pool_id = kwargs.get('pool_id', None) + self.node_id = kwargs.get('node_id', None) + self.task_root_directory = kwargs.get('task_root_directory', None) + self.task_root_directory_url = kwargs.get('task_root_directory_url', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_information_py3.py new file mode 100644 index 00000000..7c82bde1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_information_py3.py @@ -0,0 +1,52 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeInformation(Model): + """Information about the compute node on which a task ran. + + :param affinity_id: An identifier for the compute node on which the task + ran, which can be passed when adding a task to request that the task be + scheduled on this compute node. + :type affinity_id: str + :param node_url: The URL of the node on which the task ran. . + :type node_url: str + :param pool_id: The ID of the pool on which the task ran. + :type pool_id: str + :param node_id: The ID of the node on which the task ran. + :type node_id: str + :param task_root_directory: The root directory of the task on the compute + node. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the task + on the compute node. + :type task_root_directory_url: str + """ + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + } + + def __init__(self, *, affinity_id: str=None, node_url: str=None, pool_id: str=None, node_id: str=None, task_root_directory: str=None, task_root_directory_url: str=None, **kwargs) -> None: + super(ComputeNodeInformation, self).__init__(**kwargs) + self.affinity_id = affinity_id + self.node_url = node_url + self.pool_id = pool_id + self.node_id = node_id + self.task_root_directory = task_root_directory + self.task_root_directory_url = task_root_directory_url diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options.py new file mode 100644 index 00000000..b3cf782f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 nodes can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options_py3.py new file mode 100644 index 00000000..e046429d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_list_options_py3.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 nodes can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_paged.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_paged.py new file mode 100644 index 00000000..26f41dcb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class ComputeNodePaged(Paged): + """ + A paging container for iterating over a list of :class:`ComputeNode ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ComputeNode]'} + } + + def __init__(self, *args, **kwargs): + + super(ComputeNodePaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_py3.py new file mode 100644 index 00000000..1b5d7405 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_py3.py @@ -0,0 +1,155 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNode(Model): + """A compute node in the Batch service. + + :param id: The ID of the compute node. Every node that is added to a pool + is assigned a unique ID. Whenever a node is removed from a pool, all of + its local files are deleted, and the ID is reclaimed and could be reused + for new nodes. + :type id: str + :param url: The URL of the compute node. + :type url: str + :param state: The current state of the compute node. The low-priority node + has been preempted. Tasks which were running on the node when it was + pre-empted will be rescheduled when another node becomes available. + Possible values include: 'idle', 'rebooting', 'reimaging', 'running', + 'unusable', 'creating', 'starting', 'waitingForStartTask', + 'startTaskFailed', 'unknown', 'leavingPool', 'offline', 'preempted' + :type state: str or ~azure.batch.models.ComputeNodeState + :param scheduling_state: Whether the compute node is available for task + scheduling. Possible values include: 'enabled', 'disabled' + :type scheduling_state: str or ~azure.batch.models.SchedulingState + :param state_transition_time: The time at which the compute node entered + its current state. + :type state_transition_time: datetime + :param last_boot_time: The time at which the compute node was started. + This property may not be present if the node state is unusable. + :type last_boot_time: datetime + :param allocation_time: The time at which this compute node was allocated + to the pool. + :type allocation_time: datetime + :param ip_address: The IP address that other compute nodes can use to + communicate with this compute node. Every node that is added to a pool is + assigned a unique IP address. Whenever a node is removed from a pool, all + of its local files are deleted, and the IP address is reclaimed and could + be reused for new nodes. + :type ip_address: str + :param affinity_id: An identifier which can be passed when adding a task + to request that the task be scheduled on this node. Note that this is just + a soft affinity. If the target node is busy or unavailable at the time the + task is scheduled, then the task will be scheduled elsewhere. + :type affinity_id: str + :param vm_size: The size of the virtual machine hosting the compute node. + For information about available sizes of virtual machines in pools, see + Choose a VM size for compute nodes in an Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_tasks_run: The total number of job tasks completed on the + compute node. This includes Job Manager tasks and normal tasks, but not + Job Preparation, Job Release or Start tasks. + :type total_tasks_run: int + :param running_tasks_count: The total number of currently running job + tasks on the compute node. This includes Job Manager tasks and normal + tasks, but not Job Preparation, Job Release or Start tasks. + :type running_tasks_count: int + :param total_tasks_succeeded: The total number of job tasks which + completed successfully (with exitCode 0) on the compute node. This + includes Job Manager tasks and normal tasks, but not Job Preparation, Job + Release or Start tasks. + :type total_tasks_succeeded: int + :param recent_tasks: A list of tasks whose state has recently changed. + This property is present only if at least one task has run on this node + since it was assigned to the pool. + :type recent_tasks: list[~azure.batch.models.TaskInformation] + :param start_task: The task specified to run on the compute node as it + joins the pool. + :type start_task: ~azure.batch.models.StartTask + :param start_task_info: Runtime information about the execution of the + start task on the compute node. + :type start_task_info: ~azure.batch.models.StartTaskInformation + :param certificate_references: The list of certificates installed on the + compute node. For Windows compute nodes, the Batch service installs the + certificates to the specified certificate store and location. For Linux + compute nodes, the certificates are stored in a directory inside the task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the task to query for this location. For certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and certificates are placed + in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param errors: The list of errors that are currently being encountered by + the compute node. + :type errors: list[~azure.batch.models.ComputeNodeError] + :param is_dedicated: Whether this compute node is a dedicated node. If + false, the node is a low-priority node. + :type is_dedicated: bool + :param endpoint_configuration: The endpoint configuration for the compute + node. + :type endpoint_configuration: + ~azure.batch.models.ComputeNodeEndpointConfiguration + :param node_agent_info: Information about the node agent version and the + time the node upgraded to a new version. + :type node_agent_info: ~azure.batch.models.NodeAgentInformation + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'ComputeNodeState'}, + 'scheduling_state': {'key': 'schedulingState', 'type': 'SchedulingState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'last_boot_time': {'key': 'lastBootTime', 'type': 'iso-8601'}, + 'allocation_time': {'key': 'allocationTime', 'type': 'iso-8601'}, + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_tasks_run': {'key': 'totalTasksRun', 'type': 'int'}, + 'running_tasks_count': {'key': 'runningTasksCount', 'type': 'int'}, + 'total_tasks_succeeded': {'key': 'totalTasksSucceeded', 'type': 'int'}, + 'recent_tasks': {'key': 'recentTasks', 'type': '[TaskInformation]'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'start_task_info': {'key': 'startTaskInfo', 'type': 'StartTaskInformation'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'errors': {'key': 'errors', 'type': '[ComputeNodeError]'}, + 'is_dedicated': {'key': 'isDedicated', 'type': 'bool'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'ComputeNodeEndpointConfiguration'}, + 'node_agent_info': {'key': 'nodeAgentInfo', 'type': 'NodeAgentInformation'}, + } + + def __init__(self, *, id: str=None, url: str=None, state=None, scheduling_state=None, state_transition_time=None, last_boot_time=None, allocation_time=None, ip_address: str=None, affinity_id: str=None, vm_size: str=None, total_tasks_run: int=None, running_tasks_count: int=None, total_tasks_succeeded: int=None, recent_tasks=None, start_task=None, start_task_info=None, certificate_references=None, errors=None, is_dedicated: bool=None, endpoint_configuration=None, node_agent_info=None, **kwargs) -> None: + super(ComputeNode, self).__init__(**kwargs) + self.id = id + self.url = url + self.state = state + self.scheduling_state = scheduling_state + self.state_transition_time = state_transition_time + self.last_boot_time = last_boot_time + self.allocation_time = allocation_time + self.ip_address = ip_address + self.affinity_id = affinity_id + self.vm_size = vm_size + self.total_tasks_run = total_tasks_run + self.running_tasks_count = running_tasks_count + self.total_tasks_succeeded = total_tasks_succeeded + self.recent_tasks = recent_tasks + self.start_task = start_task + self.start_task_info = start_task_info + self.certificate_references = certificate_references + self.errors = errors + self.is_dedicated = is_dedicated + self.endpoint_configuration = endpoint_configuration + self.node_agent_info = node_agent_info diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options.py new file mode 100644 index 00000000..182c563e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeRebootOptions(Model): + """Additional parameters for reboot operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeRebootOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options_py3.py new file mode 100644 index 00000000..97e8cb41 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reboot_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeRebootOptions(Model): + """Additional parameters for reboot operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeRebootOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options.py new file mode 100644 index 00000000..8ec6e55f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeReimageOptions(Model): + """Additional parameters for reimage operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeReimageOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options_py3.py new file mode 100644 index 00000000..dcff3ee8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_reimage_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeReimageOptions(Model): + """Additional parameters for reimage operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeReimageOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options.py new file mode 100644 index 00000000..ed1f9548 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeUpdateUserOptions(Model): + """Additional parameters for update_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeUpdateUserOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options_py3.py new file mode 100644 index 00000000..81e45b6c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_update_user_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeUpdateUserOptions(Model): + """Additional parameters for update_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeUpdateUserOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options.py new file mode 100644 index 00000000..071b712e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeUploadBatchServiceLogsOptions(Model): + """Additional parameters for upload_batch_service_logs operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeUploadBatchServiceLogsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options_py3.py new file mode 100644 index 00000000..bac1dad5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_upload_batch_service_logs_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeUploadBatchServiceLogsOptions(Model): + """Additional parameters for upload_batch_service_logs operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeUploadBatchServiceLogsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_user.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_user.py new file mode 100644 index 00000000..495b246e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_user.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeUser(Model): + """A user account for RDP or SSH access on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The user name of the account. + :type name: str + :param is_admin: Whether the account should be an administrator on the + compute node. The default value is false. + :type is_admin: bool + :param expiry_time: The time at which the account should expire. If + omitted, the default is 1 day from the current time. For Linux compute + nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param password: The password of the account. The password is required for + Windows nodes (those created with 'cloudServiceConfiguration', or created + with 'virtualMachineConfiguration' using a Windows image reference). For + Linux compute nodes, the password can optionally be specified along with + the sshPublicKey property. + :type password: str + :param ssh_public_key: The SSH public key that can be used for remote + login to the compute node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux nodes. If this is specified for a Windows node, + then the Batch service rejects the request; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). + :type ssh_public_key: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'is_admin': {'key': 'isAdmin', 'type': 'bool'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'password': {'key': 'password', 'type': 'str'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeUser, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.is_admin = kwargs.get('is_admin', None) + self.expiry_time = kwargs.get('expiry_time', None) + self.password = kwargs.get('password', None) + self.ssh_public_key = kwargs.get('ssh_public_key', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/compute_node_user_py3.py b/azext/batch/_vendor/v4/azure/batch/models/compute_node_user_py3.py new file mode 100644 index 00000000..a88a6ab2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/compute_node_user_py3.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ComputeNodeUser(Model): + """A user account for RDP or SSH access on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The user name of the account. + :type name: str + :param is_admin: Whether the account should be an administrator on the + compute node. The default value is false. + :type is_admin: bool + :param expiry_time: The time at which the account should expire. If + omitted, the default is 1 day from the current time. For Linux compute + nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param password: The password of the account. The password is required for + Windows nodes (those created with 'cloudServiceConfiguration', or created + with 'virtualMachineConfiguration' using a Windows image reference). For + Linux compute nodes, the password can optionally be specified along with + the sshPublicKey property. + :type password: str + :param ssh_public_key: The SSH public key that can be used for remote + login to the compute node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux nodes. If this is specified for a Windows node, + then the Batch service rejects the request; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). + :type ssh_public_key: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'is_admin': {'key': 'isAdmin', 'type': 'bool'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'password': {'key': 'password', 'type': 'str'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, *, name: str, is_admin: bool=None, expiry_time=None, password: str=None, ssh_public_key: str=None, **kwargs) -> None: + super(ComputeNodeUser, self).__init__(**kwargs) + self.name = name + self.is_admin = is_admin + self.expiry_time = expiry_time + self.password = password + self.ssh_public_key = ssh_public_key diff --git a/azext/batch/_vendor/v4/azure/batch/models/container_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/container_configuration.py new file mode 100644 index 00000000..f4b932c4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/container_configuration.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ContainerConfiguration(Model): + """The configuration for container-enabled pools. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar type: Required. The container technology to be used. Default value: + "dockerCompatible" . + :vartype type: str + :param container_image_names: The collection of container image names. + This is the full image reference, as would be specified to "docker pull". + An image will be sourced from the default Docker registry unless the image + is fully qualified with an alternative registry. + :type container_image_names: list[str] + :param container_registries: Additional private registries from which + containers can be pulled. If any images must be downloaded from a private + registry which requires credentials, then those credentials must be + provided here. + :type container_registries: list[~azure.batch.models.ContainerRegistry] + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'container_image_names': {'key': 'containerImageNames', 'type': '[str]'}, + 'container_registries': {'key': 'containerRegistries', 'type': '[ContainerRegistry]'}, + } + + type = "dockerCompatible" + + def __init__(self, **kwargs): + super(ContainerConfiguration, self).__init__(**kwargs) + self.container_image_names = kwargs.get('container_image_names', None) + self.container_registries = kwargs.get('container_registries', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/container_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/container_configuration_py3.py new file mode 100644 index 00000000..f65b047e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/container_configuration_py3.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ContainerConfiguration(Model): + """The configuration for container-enabled pools. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar type: Required. The container technology to be used. Default value: + "dockerCompatible" . + :vartype type: str + :param container_image_names: The collection of container image names. + This is the full image reference, as would be specified to "docker pull". + An image will be sourced from the default Docker registry unless the image + is fully qualified with an alternative registry. + :type container_image_names: list[str] + :param container_registries: Additional private registries from which + containers can be pulled. If any images must be downloaded from a private + registry which requires credentials, then those credentials must be + provided here. + :type container_registries: list[~azure.batch.models.ContainerRegistry] + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'container_image_names': {'key': 'containerImageNames', 'type': '[str]'}, + 'container_registries': {'key': 'containerRegistries', 'type': '[ContainerRegistry]'}, + } + + type = "dockerCompatible" + + def __init__(self, *, container_image_names=None, container_registries=None, **kwargs) -> None: + super(ContainerConfiguration, self).__init__(**kwargs) + self.container_image_names = container_image_names + self.container_registries = container_registries diff --git a/azext/batch/_vendor/v4/azure/batch/models/container_registry.py b/azext/batch/_vendor/v4/azure/batch/models/container_registry.py new file mode 100644 index 00000000..18203196 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/container_registry.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ContainerRegistry(Model): + """A private container registry. + + All required parameters must be populated in order to send to Azure. + + :param registry_server: The registry URL. If omitted, the default is + "docker.io". + :type registry_server: str + :param user_name: Required. The user name to log into the registry server. + :type user_name: str + :param password: Required. The password to log into the registry server. + :type password: str + """ + + _validation = { + 'user_name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'registry_server': {'key': 'registryServer', 'type': 'str'}, + 'user_name': {'key': 'username', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerRegistry, self).__init__(**kwargs) + self.registry_server = kwargs.get('registry_server', None) + self.user_name = kwargs.get('user_name', None) + self.password = kwargs.get('password', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/container_registry_py3.py b/azext/batch/_vendor/v4/azure/batch/models/container_registry_py3.py new file mode 100644 index 00000000..eb47f9e5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/container_registry_py3.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ContainerRegistry(Model): + """A private container registry. + + All required parameters must be populated in order to send to Azure. + + :param registry_server: The registry URL. If omitted, the default is + "docker.io". + :type registry_server: str + :param user_name: Required. The user name to log into the registry server. + :type user_name: str + :param password: Required. The password to log into the registry server. + :type password: str + """ + + _validation = { + 'user_name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'registry_server': {'key': 'registryServer', 'type': 'str'}, + 'user_name': {'key': 'username', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, *, user_name: str, password: str, registry_server: str=None, **kwargs) -> None: + super(ContainerRegistry, self).__init__(**kwargs) + self.registry_server = registry_server + self.user_name = user_name + self.password = password diff --git a/azext/batch/_vendor/v4/azure/batch/models/data_disk.py b/azext/batch/_vendor/v4/azure/batch/models/data_disk.py new file mode 100644 index 00000000..d2f80dad --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/data_disk.py @@ -0,0 +1,56 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class DataDisk(Model): + """Settings which will be used by the data disks associated to compute nodes + in the pool. + + All required parameters must be populated in order to send to Azure. + + :param lun: Required. The logical unit number. The lun is used to uniquely + identify each data disk. If attaching multiple disks, each should have a + distinct lun. + :type lun: int + :param caching: The type of caching to be enabled for the data disks. The + default value for caching is readwrite. For information about the caching + options see: + https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + Possible values include: 'none', 'readOnly', 'readWrite' + :type caching: str or ~azure.batch.models.CachingType + :param disk_size_gb: Required. The initial disk size in gigabytes. + :type disk_size_gb: int + :param storage_account_type: The storage account type to be used for the + data disk. If omitted, the default is "standard_lrs". Possible values + include: 'StandardLRS', 'PremiumLRS' + :type storage_account_type: str or ~azure.batch.models.StorageAccountType + """ + + _validation = { + 'lun': {'required': True}, + 'disk_size_gb': {'required': True}, + } + + _attribute_map = { + 'lun': {'key': 'lun', 'type': 'int'}, + 'caching': {'key': 'caching', 'type': 'CachingType'}, + 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, + 'storage_account_type': {'key': 'storageAccountType', 'type': 'StorageAccountType'}, + } + + def __init__(self, **kwargs): + super(DataDisk, self).__init__(**kwargs) + self.lun = kwargs.get('lun', None) + self.caching = kwargs.get('caching', None) + self.disk_size_gb = kwargs.get('disk_size_gb', None) + self.storage_account_type = kwargs.get('storage_account_type', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/data_disk_py3.py b/azext/batch/_vendor/v4/azure/batch/models/data_disk_py3.py new file mode 100644 index 00000000..2af0ce19 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/data_disk_py3.py @@ -0,0 +1,56 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class DataDisk(Model): + """Settings which will be used by the data disks associated to compute nodes + in the pool. + + All required parameters must be populated in order to send to Azure. + + :param lun: Required. The logical unit number. The lun is used to uniquely + identify each data disk. If attaching multiple disks, each should have a + distinct lun. + :type lun: int + :param caching: The type of caching to be enabled for the data disks. The + default value for caching is readwrite. For information about the caching + options see: + https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + Possible values include: 'none', 'readOnly', 'readWrite' + :type caching: str or ~azure.batch.models.CachingType + :param disk_size_gb: Required. The initial disk size in gigabytes. + :type disk_size_gb: int + :param storage_account_type: The storage account type to be used for the + data disk. If omitted, the default is "standard_lrs". Possible values + include: 'StandardLRS', 'PremiumLRS' + :type storage_account_type: str or ~azure.batch.models.StorageAccountType + """ + + _validation = { + 'lun': {'required': True}, + 'disk_size_gb': {'required': True}, + } + + _attribute_map = { + 'lun': {'key': 'lun', 'type': 'int'}, + 'caching': {'key': 'caching', 'type': 'CachingType'}, + 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, + 'storage_account_type': {'key': 'storageAccountType', 'type': 'StorageAccountType'}, + } + + def __init__(self, *, lun: int, disk_size_gb: int, caching=None, storage_account_type=None, **kwargs) -> None: + super(DataDisk, self).__init__(**kwargs) + self.lun = lun + self.caching = caching + self.disk_size_gb = disk_size_gb + self.storage_account_type = storage_account_type diff --git a/azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error.py b/azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error.py new file mode 100644 index 00000000..dbb14c3c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class DeleteCertificateError(Model): + """An error encountered by the Batch service when deleting a certificate. + + :param code: An identifier for the certificate deletion error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the certificate deletion error, + intended to be suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the + certificate deletion error. This list includes details such as the active + pools and nodes referencing this certificate. However, if a large number + of resources reference the certificate, the list contains only about the + first hundred. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(DeleteCertificateError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error_py3.py b/azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error_py3.py new file mode 100644 index 00000000..246a12a0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/delete_certificate_error_py3.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class DeleteCertificateError(Model): + """An error encountered by the Batch service when deleting a certificate. + + :param code: An identifier for the certificate deletion error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the certificate deletion error, + intended to be suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the + certificate deletion error. This list includes details such as the active + pools and nodes referencing this certificate. However, if a large number + of resources reference the certificate, the list contains only about the + first hundred. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, values=None, **kwargs) -> None: + super(DeleteCertificateError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values diff --git a/azext/batch/_vendor/v4/azure/batch/models/environment_setting.py b/azext/batch/_vendor/v4/azure/batch/models/environment_setting.py new file mode 100644 index 00000000..e46a6e5e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/environment_setting.py @@ -0,0 +1,38 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class EnvironmentSetting(Model): + """An environment variable to be set on a task process. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the environment variable. + :type name: str + :param value: The value of the environment variable. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(EnvironmentSetting, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/environment_setting_py3.py b/azext/batch/_vendor/v4/azure/batch/models/environment_setting_py3.py new file mode 100644 index 00000000..facb8f44 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/environment_setting_py3.py @@ -0,0 +1,38 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class EnvironmentSetting(Model): + """An environment variable to be set on a task process. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the environment variable. + :type name: str + :param value: The value of the environment variable. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, name: str, value: str=None, **kwargs) -> None: + super(EnvironmentSetting, self).__init__(**kwargs) + self.name = name + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/error_message.py b/azext/batch/_vendor/v4/azure/batch/models/error_message.py new file mode 100644 index 00000000..bbdf64f1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/error_message.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ErrorMessage(Model): + """An error message received in an Azure Batch error response. + + :param lang: The language code of the error message. + :type lang: str + :param value: The text of the message. + :type value: str + """ + + _attribute_map = { + 'lang': {'key': 'lang', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ErrorMessage, self).__init__(**kwargs) + self.lang = kwargs.get('lang', None) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/error_message_py3.py b/azext/batch/_vendor/v4/azure/batch/models/error_message_py3.py new file mode 100644 index 00000000..a84934fc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/error_message_py3.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ErrorMessage(Model): + """An error message received in an Azure Batch error response. + + :param lang: The language code of the error message. + :type lang: str + :param value: The text of the message. + :type value: str + """ + + _attribute_map = { + 'lang': {'key': 'lang', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, lang: str=None, value: str=None, **kwargs) -> None: + super(ErrorMessage, self).__init__(**kwargs) + self.lang = lang + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping.py b/azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping.py new file mode 100644 index 00000000..57977e3d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitCodeMapping(Model): + """How the Batch service should respond if a task exits with a particular exit + code. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. A process exit code. + :type code: int + :param exit_options: Required. How the Batch service should respond if the + task exits with this exit code. + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'code': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, **kwargs): + super(ExitCodeMapping, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.exit_options = kwargs.get('exit_options', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping_py3.py b/azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping_py3.py new file mode 100644 index 00000000..5a5176bb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_code_mapping_py3.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitCodeMapping(Model): + """How the Batch service should respond if a task exits with a particular exit + code. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. A process exit code. + :type code: int + :param exit_options: Required. How the Batch service should respond if the + task exits with this exit code. + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'code': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, *, code: int, exit_options, **kwargs) -> None: + super(ExitCodeMapping, self).__init__(**kwargs) + self.code = code + self.exit_options = exit_options diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping.py b/azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping.py new file mode 100644 index 00000000..999272ae --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitCodeRangeMapping(Model): + """A range of exit codes and how the Batch service should respond to exit + codes within that range. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first exit code in the range. + :type start: int + :param end: Required. The last exit code in the range. + :type end: int + :param exit_options: Required. How the Batch service should respond if the + task exits with an exit code in the range start to end (inclusive). + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, **kwargs): + super(ExitCodeRangeMapping, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + self.exit_options = kwargs.get('exit_options', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping_py3.py b/azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping_py3.py new file mode 100644 index 00000000..9a3da0bd --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_code_range_mapping_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitCodeRangeMapping(Model): + """A range of exit codes and how the Batch service should respond to exit + codes within that range. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first exit code in the range. + :type start: int + :param end: Required. The last exit code in the range. + :type end: int + :param exit_options: Required. How the Batch service should respond if the + task exits with an exit code in the range start to end (inclusive). + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, *, start: int, end: int, exit_options, **kwargs) -> None: + super(ExitCodeRangeMapping, self).__init__(**kwargs) + self.start = start + self.end = end + self.exit_options = exit_options diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_conditions.py b/azext/batch/_vendor/v4/azure/batch/models/exit_conditions.py new file mode 100644 index 00000000..c368f4a1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_conditions.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitConditions(Model): + """Specifies how the Batch service should respond when the task completes. + + :param exit_codes: A list of individual task exit codes and how the Batch + service should respond to them. + :type exit_codes: list[~azure.batch.models.ExitCodeMapping] + :param exit_code_ranges: A list of task exit code ranges and how the Batch + service should respond to them. + :type exit_code_ranges: list[~azure.batch.models.ExitCodeRangeMapping] + :param pre_processing_error: How the Batch service should respond if the + task fails to start due to an error. + :type pre_processing_error: ~azure.batch.models.ExitOptions + :param file_upload_error: How the Batch service should respond if a file + upload error occurs. If the task exited with an exit code that was + specified via exitCodes or exitCodeRanges, and then encountered a file + upload error, then the action specified by the exit code takes precedence. + :type file_upload_error: ~azure.batch.models.ExitOptions + :param default: How the Batch service should respond if the task fails + with an exit condition not covered by any of the other properties. This + value is used if the task exits with any nonzero exit code not listed in + the exitCodes or exitCodeRanges collection, with a pre-processing error if + the preProcessingError property is not present, or with a file upload + error if the fileUploadError property is not present. If you want + non-default behaviour on exit code 0, you must list it explicitly using + the exitCodes or exitCodeRanges collection. + :type default: ~azure.batch.models.ExitOptions + """ + + _attribute_map = { + 'exit_codes': {'key': 'exitCodes', 'type': '[ExitCodeMapping]'}, + 'exit_code_ranges': {'key': 'exitCodeRanges', 'type': '[ExitCodeRangeMapping]'}, + 'pre_processing_error': {'key': 'preProcessingError', 'type': 'ExitOptions'}, + 'file_upload_error': {'key': 'fileUploadError', 'type': 'ExitOptions'}, + 'default': {'key': 'default', 'type': 'ExitOptions'}, + } + + def __init__(self, **kwargs): + super(ExitConditions, self).__init__(**kwargs) + self.exit_codes = kwargs.get('exit_codes', None) + self.exit_code_ranges = kwargs.get('exit_code_ranges', None) + self.pre_processing_error = kwargs.get('pre_processing_error', None) + self.file_upload_error = kwargs.get('file_upload_error', None) + self.default = kwargs.get('default', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_conditions_py3.py b/azext/batch/_vendor/v4/azure/batch/models/exit_conditions_py3.py new file mode 100644 index 00000000..f0630c7f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_conditions_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitConditions(Model): + """Specifies how the Batch service should respond when the task completes. + + :param exit_codes: A list of individual task exit codes and how the Batch + service should respond to them. + :type exit_codes: list[~azure.batch.models.ExitCodeMapping] + :param exit_code_ranges: A list of task exit code ranges and how the Batch + service should respond to them. + :type exit_code_ranges: list[~azure.batch.models.ExitCodeRangeMapping] + :param pre_processing_error: How the Batch service should respond if the + task fails to start due to an error. + :type pre_processing_error: ~azure.batch.models.ExitOptions + :param file_upload_error: How the Batch service should respond if a file + upload error occurs. If the task exited with an exit code that was + specified via exitCodes or exitCodeRanges, and then encountered a file + upload error, then the action specified by the exit code takes precedence. + :type file_upload_error: ~azure.batch.models.ExitOptions + :param default: How the Batch service should respond if the task fails + with an exit condition not covered by any of the other properties. This + value is used if the task exits with any nonzero exit code not listed in + the exitCodes or exitCodeRanges collection, with a pre-processing error if + the preProcessingError property is not present, or with a file upload + error if the fileUploadError property is not present. If you want + non-default behaviour on exit code 0, you must list it explicitly using + the exitCodes or exitCodeRanges collection. + :type default: ~azure.batch.models.ExitOptions + """ + + _attribute_map = { + 'exit_codes': {'key': 'exitCodes', 'type': '[ExitCodeMapping]'}, + 'exit_code_ranges': {'key': 'exitCodeRanges', 'type': '[ExitCodeRangeMapping]'}, + 'pre_processing_error': {'key': 'preProcessingError', 'type': 'ExitOptions'}, + 'file_upload_error': {'key': 'fileUploadError', 'type': 'ExitOptions'}, + 'default': {'key': 'default', 'type': 'ExitOptions'}, + } + + def __init__(self, *, exit_codes=None, exit_code_ranges=None, pre_processing_error=None, file_upload_error=None, default=None, **kwargs) -> None: + super(ExitConditions, self).__init__(**kwargs) + self.exit_codes = exit_codes + self.exit_code_ranges = exit_code_ranges + self.pre_processing_error = pre_processing_error + self.file_upload_error = file_upload_error + self.default = default diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_options.py b/azext/batch/_vendor/v4/azure/batch/models/exit_options.py new file mode 100644 index 00000000..f7f5e7b1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_options.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitOptions(Model): + """Specifies how the Batch service responds to a particular exit condition. + + :param job_action: An action to take on the job containing the task, if + the task completes with the given exit condition and the job's + onTaskFailed property is 'performExitOptionsJobAction'. The default is + none for exit code 0 and terminate for all other exit conditions. If the + job's onTaskFailed property is noaction, then specifying this property + returns an error and the add task request fails with an invalid property + value error; if you are calling the REST API directly, the HTTP status + code is 400 (Bad Request). Possible values include: 'none', 'disable', + 'terminate' + :type job_action: str or ~azure.batch.models.JobAction + :param dependency_action: An action that the Batch service performs on + tasks that depend on this task. The default is 'satisfy' for exit code 0, + and 'block' for all other exit conditions. If the job's + usesTaskDependencies property is set to false, then specifying the + dependencyAction property returns an error and the add task request fails + with an invalid property value error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). Possible values + include: 'satisfy', 'block' + :type dependency_action: str or ~azure.batch.models.DependencyAction + """ + + _attribute_map = { + 'job_action': {'key': 'jobAction', 'type': 'JobAction'}, + 'dependency_action': {'key': 'dependencyAction', 'type': 'DependencyAction'}, + } + + def __init__(self, **kwargs): + super(ExitOptions, self).__init__(**kwargs) + self.job_action = kwargs.get('job_action', None) + self.dependency_action = kwargs.get('dependency_action', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/exit_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/exit_options_py3.py new file mode 100644 index 00000000..0867bbea --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/exit_options_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ExitOptions(Model): + """Specifies how the Batch service responds to a particular exit condition. + + :param job_action: An action to take on the job containing the task, if + the task completes with the given exit condition and the job's + onTaskFailed property is 'performExitOptionsJobAction'. The default is + none for exit code 0 and terminate for all other exit conditions. If the + job's onTaskFailed property is noaction, then specifying this property + returns an error and the add task request fails with an invalid property + value error; if you are calling the REST API directly, the HTTP status + code is 400 (Bad Request). Possible values include: 'none', 'disable', + 'terminate' + :type job_action: str or ~azure.batch.models.JobAction + :param dependency_action: An action that the Batch service performs on + tasks that depend on this task. The default is 'satisfy' for exit code 0, + and 'block' for all other exit conditions. If the job's + usesTaskDependencies property is set to false, then specifying the + dependencyAction property returns an error and the add task request fails + with an invalid property value error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). Possible values + include: 'satisfy', 'block' + :type dependency_action: str or ~azure.batch.models.DependencyAction + """ + + _attribute_map = { + 'job_action': {'key': 'jobAction', 'type': 'JobAction'}, + 'dependency_action': {'key': 'dependencyAction', 'type': 'DependencyAction'}, + } + + def __init__(self, *, job_action=None, dependency_action=None, **kwargs) -> None: + super(ExitOptions, self).__init__(**kwargs) + self.job_action = job_action + self.dependency_action = dependency_action diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options.py new file mode 100644 index 00000000..7522e806 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileDeleteFromComputeNodeOptions(Model): + """Additional parameters for delete_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileDeleteFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options_py3.py new file mode 100644 index 00000000..62291d14 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_compute_node_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileDeleteFromComputeNodeOptions(Model): + """Additional parameters for delete_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileDeleteFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options.py new file mode 100644 index 00000000..054babe8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileDeleteFromTaskOptions(Model): + """Additional parameters for delete_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileDeleteFromTaskOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options_py3.py new file mode 100644 index 00000000..7d783006 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_delete_from_task_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileDeleteFromTaskOptions(Model): + """Additional parameters for delete_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileDeleteFromTaskOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options.py new file mode 100644 index 00000000..9a6e3fb7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options.py @@ -0,0 +1,64 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetFromComputeNodeOptions(Model): + """Additional parameters for get_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.ocp_range = kwargs.get('ocp_range', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options_py3.py new file mode 100644 index 00000000..ab3dc34f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_compute_node_options_py3.py @@ -0,0 +1,64 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetFromComputeNodeOptions(Model): + """Additional parameters for get_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, ocp_range: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.ocp_range = ocp_range + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options.py new file mode 100644 index 00000000..19bd5cde --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options.py @@ -0,0 +1,64 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetFromTaskOptions(Model): + """Additional parameters for get_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetFromTaskOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.ocp_range = kwargs.get('ocp_range', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options_py3.py new file mode 100644 index 00000000..30ec6583 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_from_task_options_py3.py @@ -0,0 +1,64 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetFromTaskOptions(Model): + """Additional parameters for get_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, ocp_range: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetFromTaskOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.ocp_range = ocp_range + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options.py new file mode 100644 index 00000000..bf283d1d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetPropertiesFromComputeNodeOptions(Model): + """Additional parameters for get_properties_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetPropertiesFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options_py3.py new file mode 100644 index 00000000..69a90184 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_compute_node_options_py3.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetPropertiesFromComputeNodeOptions(Model): + """Additional parameters for get_properties_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetPropertiesFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options.py new file mode 100644 index 00000000..836387d3 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetPropertiesFromTaskOptions(Model): + """Additional parameters for get_properties_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetPropertiesFromTaskOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options_py3.py new file mode 100644 index 00000000..73996895 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_get_properties_from_task_options_py3.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileGetPropertiesFromTaskOptions(Model): + """Additional parameters for get_properties_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetPropertiesFromTaskOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options.py new file mode 100644 index 00000000..dc32df46 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileListFromComputeNodeOptions(Model): + """Additional parameters for list_from_compute_node operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileListFromComputeNodeOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options_py3.py new file mode 100644 index 00000000..e475dcde --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_compute_node_options_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileListFromComputeNodeOptions(Model): + """Additional parameters for list_from_compute_node operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileListFromComputeNodeOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options.py b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options.py new file mode 100644 index 00000000..86728b25 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileListFromTaskOptions(Model): + """Additional parameters for list_from_task operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileListFromTaskOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options_py3.py new file mode 100644 index 00000000..354c4869 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_list_from_task_options_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileListFromTaskOptions(Model): + """Additional parameters for list_from_task operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileListFromTaskOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_properties.py b/azext/batch/_vendor/v4/azure/batch/models/file_properties.py new file mode 100644 index 00000000..3cef0000 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_properties.py @@ -0,0 +1,54 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileProperties(Model): + """The properties of a file on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: The file creation time. The creation time is not + returned for files on Linux compute nodes. + :type creation_time: datetime + :param last_modified: Required. The time at which the file was last + modified. + :type last_modified: datetime + :param content_length: Required. The length of the file. + :type content_length: long + :param content_type: The content type of the file. + :type content_type: str + :param file_mode: The file mode attribute in octal format. The file mode + is returned only for files on Linux compute nodes. + :type file_mode: str + """ + + _validation = { + 'last_modified': {'required': True}, + 'content_length': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'content_length': {'key': 'contentLength', 'type': 'long'}, + 'content_type': {'key': 'contentType', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(FileProperties, self).__init__(**kwargs) + self.creation_time = kwargs.get('creation_time', None) + self.last_modified = kwargs.get('last_modified', None) + self.content_length = kwargs.get('content_length', None) + self.content_type = kwargs.get('content_type', None) + self.file_mode = kwargs.get('file_mode', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/file_properties_py3.py b/azext/batch/_vendor/v4/azure/batch/models/file_properties_py3.py new file mode 100644 index 00000000..71c2a8e6 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/file_properties_py3.py @@ -0,0 +1,54 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class FileProperties(Model): + """The properties of a file on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: The file creation time. The creation time is not + returned for files on Linux compute nodes. + :type creation_time: datetime + :param last_modified: Required. The time at which the file was last + modified. + :type last_modified: datetime + :param content_length: Required. The length of the file. + :type content_length: long + :param content_type: The content type of the file. + :type content_type: str + :param file_mode: The file mode attribute in octal format. The file mode + is returned only for files on Linux compute nodes. + :type file_mode: str + """ + + _validation = { + 'last_modified': {'required': True}, + 'content_length': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'content_length': {'key': 'contentLength', 'type': 'long'}, + 'content_type': {'key': 'contentType', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, *, last_modified, content_length: int, creation_time=None, content_type: str=None, file_mode: str=None, **kwargs) -> None: + super(FileProperties, self).__init__(**kwargs) + self.creation_time = creation_time + self.last_modified = last_modified + self.content_length = content_length + self.content_type = content_type + self.file_mode = file_mode diff --git a/azext/batch/_vendor/v4/azure/batch/models/image_reference.py b/azext/batch/_vendor/v4/azure/batch/models/image_reference.py new file mode 100644 index 00000000..41fb7fbc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/image_reference.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ImageReference(Model): + """A reference to an Azure Virtual Machines Marketplace image or a custom + Azure Virtual Machine image. To get the list of all Azure Marketplace image + references verified by Azure Batch, see the 'List node agent SKUs' + operation. + + :param publisher: The publisher of the Azure Virtual Machines Marketplace + image. For example, Canonical or MicrosoftWindowsServer. + :type publisher: str + :param offer: The offer type of the Azure Virtual Machines Marketplace + image. For example, UbuntuServer or WindowsServer. + :type offer: str + :param sku: The SKU of the Azure Virtual Machines Marketplace image. For + example, 14.04.0-LTS or 2012-R2-Datacenter. + :type sku: str + :param version: The version of the Azure Virtual Machines Marketplace + image. A value of 'latest' can be specified to select the latest version + of an image. If omitted, the default is 'latest'. + :type version: str + :param virtual_machine_image_id: The ARM resource identifier of the + virtual machine image. Computes nodes of the pool will be created using + this custom image. This is of the form + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}. + This property is mutually exclusive with other ImageReference properties. + The virtual machine image must be in the same region and subscription as + the Azure Batch account. For information about the firewall settings for + the Batch node agent to communicate with the Batch service see + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + :type virtual_machine_image_id: str + """ + + _attribute_map = { + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'offer': {'key': 'offer', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'virtual_machine_image_id': {'key': 'virtualMachineImageId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ImageReference, self).__init__(**kwargs) + self.publisher = kwargs.get('publisher', None) + self.offer = kwargs.get('offer', None) + self.sku = kwargs.get('sku', None) + self.version = kwargs.get('version', None) + self.virtual_machine_image_id = kwargs.get('virtual_machine_image_id', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/image_reference_py3.py b/azext/batch/_vendor/v4/azure/batch/models/image_reference_py3.py new file mode 100644 index 00000000..7471294d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/image_reference_py3.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ImageReference(Model): + """A reference to an Azure Virtual Machines Marketplace image or a custom + Azure Virtual Machine image. To get the list of all Azure Marketplace image + references verified by Azure Batch, see the 'List node agent SKUs' + operation. + + :param publisher: The publisher of the Azure Virtual Machines Marketplace + image. For example, Canonical or MicrosoftWindowsServer. + :type publisher: str + :param offer: The offer type of the Azure Virtual Machines Marketplace + image. For example, UbuntuServer or WindowsServer. + :type offer: str + :param sku: The SKU of the Azure Virtual Machines Marketplace image. For + example, 14.04.0-LTS or 2012-R2-Datacenter. + :type sku: str + :param version: The version of the Azure Virtual Machines Marketplace + image. A value of 'latest' can be specified to select the latest version + of an image. If omitted, the default is 'latest'. + :type version: str + :param virtual_machine_image_id: The ARM resource identifier of the + virtual machine image. Computes nodes of the pool will be created using + this custom image. This is of the form + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}. + This property is mutually exclusive with other ImageReference properties. + The virtual machine image must be in the same region and subscription as + the Azure Batch account. For information about the firewall settings for + the Batch node agent to communicate with the Batch service see + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + :type virtual_machine_image_id: str + """ + + _attribute_map = { + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'offer': {'key': 'offer', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'virtual_machine_image_id': {'key': 'virtualMachineImageId', 'type': 'str'}, + } + + def __init__(self, *, publisher: str=None, offer: str=None, sku: str=None, version: str=None, virtual_machine_image_id: str=None, **kwargs) -> None: + super(ImageReference, self).__init__(**kwargs) + self.publisher = publisher + self.offer = offer + self.sku = sku + self.version = version + self.virtual_machine_image_id = virtual_machine_image_id diff --git a/azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint.py b/azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint.py new file mode 100644 index 00000000..8fd064a9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class InboundEndpoint(Model): + """An inbound endpoint on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param public_ip_address: Required. The public IP address of the compute + node. + :type public_ip_address: str + :param public_fqdn: Required. The public fully qualified domain name for + the compute node. + :type public_fqdn: str + :param frontend_port: Required. The public port number of the endpoint. + :type frontend_port: int + :param backend_port: Required. The backend port number of the endpoint. + :type backend_port: int + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'public_ip_address': {'required': True}, + 'public_fqdn': {'required': True}, + 'frontend_port': {'required': True}, + 'backend_port': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'public_ip_address': {'key': 'publicIPAddress', 'type': 'str'}, + 'public_fqdn': {'key': 'publicFQDN', 'type': 'str'}, + 'frontend_port': {'key': 'frontendPort', 'type': 'int'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(InboundEndpoint, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.protocol = kwargs.get('protocol', None) + self.public_ip_address = kwargs.get('public_ip_address', None) + self.public_fqdn = kwargs.get('public_fqdn', None) + self.frontend_port = kwargs.get('frontend_port', None) + self.backend_port = kwargs.get('backend_port', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint_py3.py b/azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint_py3.py new file mode 100644 index 00000000..004e1577 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/inbound_endpoint_py3.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class InboundEndpoint(Model): + """An inbound endpoint on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param public_ip_address: Required. The public IP address of the compute + node. + :type public_ip_address: str + :param public_fqdn: Required. The public fully qualified domain name for + the compute node. + :type public_fqdn: str + :param frontend_port: Required. The public port number of the endpoint. + :type frontend_port: int + :param backend_port: Required. The backend port number of the endpoint. + :type backend_port: int + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'public_ip_address': {'required': True}, + 'public_fqdn': {'required': True}, + 'frontend_port': {'required': True}, + 'backend_port': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'public_ip_address': {'key': 'publicIPAddress', 'type': 'str'}, + 'public_fqdn': {'key': 'publicFQDN', 'type': 'str'}, + 'frontend_port': {'key': 'frontendPort', 'type': 'int'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + } + + def __init__(self, *, name: str, protocol, public_ip_address: str, public_fqdn: str, frontend_port: int, backend_port: int, **kwargs) -> None: + super(InboundEndpoint, self).__init__(**kwargs) + self.name = name + self.protocol = protocol + self.public_ip_address = public_ip_address + self.public_fqdn = public_fqdn + self.frontend_port = frontend_port + self.backend_port = backend_port diff --git a/azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool.py b/azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool.py new file mode 100644 index 00000000..bf3209e9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool.py @@ -0,0 +1,86 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class InboundNATPool(Model): + """A inbound NAT pool that can be used to address specific ports on compute + nodes in a Batch pool externally. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. The name must be unique + within a Batch pool, can contain letters, numbers, underscores, periods, + and hyphens. Names must start with a letter or number, must end with a + letter, number, or underscore, and cannot exceed 77 characters. If any + invalid values are provided the request fails with HTTP status code 400. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param backend_port: Required. The port number on the compute node. This + must be unique within a Batch pool. Acceptable values are between 1 and + 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any + reserved values are provided the request fails with HTTP status code 400. + :type backend_port: int + :param frontend_port_range_start: Required. The first port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual compute nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved. All ranges + within a pool must be distinct and cannot overlap. Each range must contain + at least 40 ports. If any reserved or overlapping values are provided the + request fails with HTTP status code 400. + :type frontend_port_range_start: int + :param frontend_port_range_end: Required. The last port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual compute nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved by the Batch + service. All ranges within a pool must be distinct and cannot overlap. + Each range must contain at least 40 ports. If any reserved or overlapping + values are provided the request fails with HTTP status code 400. + :type frontend_port_range_end: int + :param network_security_group_rules: A list of network security group + rules that will be applied to the endpoint. The maximum number of rules + that can be specified across all the endpoints on a Batch pool is 25. If + no network security group rules are specified, a default rule will be + created to allow inbound access to the specified backendPort. If the + maximum number of network security group rules is exceeded the request + fails with HTTP status code 400. + :type network_security_group_rules: + list[~azure.batch.models.NetworkSecurityGroupRule] + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'backend_port': {'required': True}, + 'frontend_port_range_start': {'required': True}, + 'frontend_port_range_end': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + 'frontend_port_range_start': {'key': 'frontendPortRangeStart', 'type': 'int'}, + 'frontend_port_range_end': {'key': 'frontendPortRangeEnd', 'type': 'int'}, + 'network_security_group_rules': {'key': 'networkSecurityGroupRules', 'type': '[NetworkSecurityGroupRule]'}, + } + + def __init__(self, **kwargs): + super(InboundNATPool, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.protocol = kwargs.get('protocol', None) + self.backend_port = kwargs.get('backend_port', None) + self.frontend_port_range_start = kwargs.get('frontend_port_range_start', None) + self.frontend_port_range_end = kwargs.get('frontend_port_range_end', None) + self.network_security_group_rules = kwargs.get('network_security_group_rules', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool_py3.py b/azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool_py3.py new file mode 100644 index 00000000..ed91e373 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/inbound_nat_pool_py3.py @@ -0,0 +1,86 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class InboundNATPool(Model): + """A inbound NAT pool that can be used to address specific ports on compute + nodes in a Batch pool externally. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. The name must be unique + within a Batch pool, can contain letters, numbers, underscores, periods, + and hyphens. Names must start with a letter or number, must end with a + letter, number, or underscore, and cannot exceed 77 characters. If any + invalid values are provided the request fails with HTTP status code 400. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param backend_port: Required. The port number on the compute node. This + must be unique within a Batch pool. Acceptable values are between 1 and + 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any + reserved values are provided the request fails with HTTP status code 400. + :type backend_port: int + :param frontend_port_range_start: Required. The first port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual compute nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved. All ranges + within a pool must be distinct and cannot overlap. Each range must contain + at least 40 ports. If any reserved or overlapping values are provided the + request fails with HTTP status code 400. + :type frontend_port_range_start: int + :param frontend_port_range_end: Required. The last port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual compute nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved by the Batch + service. All ranges within a pool must be distinct and cannot overlap. + Each range must contain at least 40 ports. If any reserved or overlapping + values are provided the request fails with HTTP status code 400. + :type frontend_port_range_end: int + :param network_security_group_rules: A list of network security group + rules that will be applied to the endpoint. The maximum number of rules + that can be specified across all the endpoints on a Batch pool is 25. If + no network security group rules are specified, a default rule will be + created to allow inbound access to the specified backendPort. If the + maximum number of network security group rules is exceeded the request + fails with HTTP status code 400. + :type network_security_group_rules: + list[~azure.batch.models.NetworkSecurityGroupRule] + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'backend_port': {'required': True}, + 'frontend_port_range_start': {'required': True}, + 'frontend_port_range_end': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + 'frontend_port_range_start': {'key': 'frontendPortRangeStart', 'type': 'int'}, + 'frontend_port_range_end': {'key': 'frontendPortRangeEnd', 'type': 'int'}, + 'network_security_group_rules': {'key': 'networkSecurityGroupRules', 'type': '[NetworkSecurityGroupRule]'}, + } + + def __init__(self, *, name: str, protocol, backend_port: int, frontend_port_range_start: int, frontend_port_range_end: int, network_security_group_rules=None, **kwargs) -> None: + super(InboundNATPool, self).__init__(**kwargs) + self.name = name + self.protocol = protocol + self.backend_port = backend_port + self.frontend_port_range_start = frontend_port_range_start + self.frontend_port_range_end = frontend_port_range_end + self.network_security_group_rules = network_security_group_rules diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_add_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_add_options.py new file mode 100644 index 00000000..bdcf7969 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_add_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_add_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_add_options_py3.py new file mode 100644 index 00000000..9633e748 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_add_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_add_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_add_parameter.py new file mode 100644 index 00000000..f79558f4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_add_parameter.py @@ -0,0 +1,134 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobAddParameter(Model): + """An Azure Batch job to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the job within the + account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The pool on which the Batch service runs the + job's tasks. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noaction and update the job properties to set + onAllTasksComplete to terminatejob once you have finished adding tasks. + The default is noaction. Possible values include: 'noAction', + 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.priority = kwargs.get('priority', None) + self.constraints = kwargs.get('constraints', None) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.pool_info = kwargs.get('pool_info', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.metadata = kwargs.get('metadata', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_add_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_add_parameter_py3.py new file mode 100644 index 00000000..e0957755 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_add_parameter_py3.py @@ -0,0 +1,134 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobAddParameter(Model): + """An Azure Batch job to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the job within the + account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The pool on which the Batch service runs the + job's tasks. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noaction and update the job properties to set + onAllTasksComplete to terminatejob once you have finished adding tasks. + The default is noaction. Possible values include: 'noAction', + 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + } + + def __init__(self, *, id: str, pool_info, display_name: str=None, priority: int=None, constraints=None, job_manager_task=None, job_preparation_task=None, job_release_task=None, common_environment_settings=None, on_all_tasks_complete=None, on_task_failure=None, metadata=None, uses_task_dependencies: bool=None, **kwargs) -> None: + super(JobAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.priority = priority + self.constraints = constraints + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.pool_info = pool_info + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.metadata = metadata + self.uses_task_dependencies = uses_task_dependencies diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_constraints.py b/azext/batch/_vendor/v4/azure/batch/models/job_constraints.py new file mode 100644 index 00000000..070a37ae --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_constraints.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobConstraints(Model): + """The execution constraints for a job. + + :param max_wall_clock_time: The maximum elapsed time that the job may run, + measured from the time the job is created. If the job does not complete + within the time limit, the Batch service terminates it and any tasks that + are still running. In this case, the termination reason will be + MaxWallClockTimeExpiry. If this property is not specified, there is no + time limit on how long the job may run. + :type max_wall_clock_time: timedelta + :param max_task_retry_count: The maximum number of times each task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try each task once, and may then retry up to this + limit. For example, if the maximum retry count is 3, Batch tries a task up + to 4 times (one initial try and 3 retries). If the maximum retry count is + 0, the Batch service does not retry tasks. If the maximum retry count is + -1, the Batch service retries tasks without limit. The default value is 0 + (no retries). + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(JobConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_constraints_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_constraints_py3.py new file mode 100644 index 00000000..06340ebe --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_constraints_py3.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobConstraints(Model): + """The execution constraints for a job. + + :param max_wall_clock_time: The maximum elapsed time that the job may run, + measured from the time the job is created. If the job does not complete + within the time limit, the Batch service terminates it and any tasks that + are still running. In this case, the termination reason will be + MaxWallClockTimeExpiry. If this property is not specified, there is no + time limit on how long the job may run. + :type max_wall_clock_time: timedelta + :param max_task_retry_count: The maximum number of times each task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try each task once, and may then retry up to this + limit. For example, if the maximum retry count is 3, Batch tries a task up + to 4 times (one initial try and 3 retries). If the maximum retry count is + 0, the Batch service does not retry tasks. If the maximum retry count is + -1, the Batch service retries tasks without limit. The default value is 0 + (no retries). + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, *, max_wall_clock_time=None, max_task_retry_count: int=None, **kwargs) -> None: + super(JobConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = max_wall_clock_time + self.max_task_retry_count = max_task_retry_count diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_delete_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_delete_options.py new file mode 100644 index 00000000..a537b55e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_delete_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_delete_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_delete_options_py3.py new file mode 100644 index 00000000..821db0e8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_delete_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_disable_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_disable_options.py new file mode 100644 index 00000000..c6694516 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_disable_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobDisableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_disable_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_disable_options_py3.py new file mode 100644 index 00000000..4b077714 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_disable_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobDisableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter.py new file mode 100644 index 00000000..d86c965f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobDisableParameter(Model): + """Options when disabling a job. + + All required parameters must be populated in order to send to Azure. + + :param disable_tasks: Required. What to do with active tasks associated + with the job. Possible values include: 'requeue', 'terminate', 'wait' + :type disable_tasks: str or ~azure.batch.models.DisableJobOption + """ + + _validation = { + 'disable_tasks': {'required': True}, + } + + _attribute_map = { + 'disable_tasks': {'key': 'disableTasks', 'type': 'DisableJobOption'}, + } + + def __init__(self, **kwargs): + super(JobDisableParameter, self).__init__(**kwargs) + self.disable_tasks = kwargs.get('disable_tasks', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter_py3.py new file mode 100644 index 00000000..fd99f78e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_disable_parameter_py3.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobDisableParameter(Model): + """Options when disabling a job. + + All required parameters must be populated in order to send to Azure. + + :param disable_tasks: Required. What to do with active tasks associated + with the job. Possible values include: 'requeue', 'terminate', 'wait' + :type disable_tasks: str or ~azure.batch.models.DisableJobOption + """ + + _validation = { + 'disable_tasks': {'required': True}, + } + + _attribute_map = { + 'disable_tasks': {'key': 'disableTasks', 'type': 'DisableJobOption'}, + } + + def __init__(self, *, disable_tasks, **kwargs) -> None: + super(JobDisableParameter, self).__init__(**kwargs) + self.disable_tasks = disable_tasks diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_enable_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_enable_options.py new file mode 100644 index 00000000..182f2b04 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_enable_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobEnableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_enable_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_enable_options_py3.py new file mode 100644 index 00000000..47695f37 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_enable_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobEnableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/job_execution_information.py new file mode 100644 index 00000000..28f5a31d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_execution_information.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobExecutionInformation(Model): + """Contains information about the execution of a job in the Azure Batch + service. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the job. This is the time + at which the job was created. + :type start_time: datetime + :param end_time: The completion time of the job. This property is set only + if the job is in the completed state. + :type end_time: datetime + :param pool_id: The ID of the pool to which this job is assigned. This + element contains the actual pool where the job is assigned. When you get + job details from the service, they also contain a poolInfo element, which + contains the pool configuration data from when the job was added or + updated. That poolInfo element may also contain a poolId element. If it + does, the two IDs are the same. If it does not, it means the job ran on an + auto pool, and this property contains the ID of that auto pool. + :type pool_id: str + :param scheduling_error: Details of any error encountered by the service + in starting the job. This property is not set if there was no error + starting the job. + :type scheduling_error: ~azure.batch.models.JobSchedulingError + :param terminate_reason: A string describing the reason the job ended. + This property is set only if the job is in the completed state. If the + Batch service terminates the job, it sets the reason as follows: + JMComplete - the Job Manager task completed, and killJobOnCompletion was + set to true. MaxWallClockTimeExpiry - the job reached its maxWallClockTime + constraint. TerminateJobSchedule - the job ran as part of a schedule, and + the schedule terminated. AllTasksComplete - the job's onAllTasksComplete + attribute is set to terminatejob, and all tasks in the job are complete. + TaskFailed - the job's onTaskFailure attribute is set to + performExitOptionsJobAction, and a task in the job failed with an exit + condition that specified a jobAction of terminatejob. Any other string is + a user-defined reason specified in a call to the 'Terminate a job' + operation. + :type terminate_reason: str + """ + + _validation = { + 'start_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'scheduling_error': {'key': 'schedulingError', 'type': 'JobSchedulingError'}, + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(JobExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.pool_id = kwargs.get('pool_id', None) + self.scheduling_error = kwargs.get('scheduling_error', None) + self.terminate_reason = kwargs.get('terminate_reason', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_execution_information_py3.py new file mode 100644 index 00000000..436d2990 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_execution_information_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobExecutionInformation(Model): + """Contains information about the execution of a job in the Azure Batch + service. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the job. This is the time + at which the job was created. + :type start_time: datetime + :param end_time: The completion time of the job. This property is set only + if the job is in the completed state. + :type end_time: datetime + :param pool_id: The ID of the pool to which this job is assigned. This + element contains the actual pool where the job is assigned. When you get + job details from the service, they also contain a poolInfo element, which + contains the pool configuration data from when the job was added or + updated. That poolInfo element may also contain a poolId element. If it + does, the two IDs are the same. If it does not, it means the job ran on an + auto pool, and this property contains the ID of that auto pool. + :type pool_id: str + :param scheduling_error: Details of any error encountered by the service + in starting the job. This property is not set if there was no error + starting the job. + :type scheduling_error: ~azure.batch.models.JobSchedulingError + :param terminate_reason: A string describing the reason the job ended. + This property is set only if the job is in the completed state. If the + Batch service terminates the job, it sets the reason as follows: + JMComplete - the Job Manager task completed, and killJobOnCompletion was + set to true. MaxWallClockTimeExpiry - the job reached its maxWallClockTime + constraint. TerminateJobSchedule - the job ran as part of a schedule, and + the schedule terminated. AllTasksComplete - the job's onAllTasksComplete + attribute is set to terminatejob, and all tasks in the job are complete. + TaskFailed - the job's onTaskFailure attribute is set to + performExitOptionsJobAction, and a task in the job failed with an exit + condition that specified a jobAction of terminatejob. Any other string is + a user-defined reason specified in a call to the 'Terminate a job' + operation. + :type terminate_reason: str + """ + + _validation = { + 'start_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'scheduling_error': {'key': 'schedulingError', 'type': 'JobSchedulingError'}, + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, *, start_time, end_time=None, pool_id: str=None, scheduling_error=None, terminate_reason: str=None, **kwargs) -> None: + super(JobExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.pool_id = pool_id + self.scheduling_error = scheduling_error + self.terminate_reason = terminate_reason diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options.py new file mode 100644 index 00000000..a8f7e849 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options_py3.py new file mode 100644 index 00000000..2092bbd8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_get_all_lifetime_statistics_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_get_options.py new file mode 100644 index 00000000..62d47959 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_get_options.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_get_options_py3.py new file mode 100644 index 00000000..9ed21fc3 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_get_options_py3.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options.py new file mode 100644 index 00000000..603d79ce --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobGetTaskCountsOptions(Model): + """Additional parameters for get_task_counts operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobGetTaskCountsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options_py3.py new file mode 100644 index 00000000..b109e59e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_get_task_counts_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobGetTaskCountsOptions(Model): + """Additional parameters for get_task_counts operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobGetTaskCountsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options.py new file mode 100644 index 00000000..7f95aaf7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobListFromJobScheduleOptions(Model): + """Additional parameters for list_from_job_schedule operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobListFromJobScheduleOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options_py3.py new file mode 100644 index 00000000..eb606478 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_list_from_job_schedule_options_py3.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobListFromJobScheduleOptions(Model): + """Additional parameters for list_from_job_schedule operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobListFromJobScheduleOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_list_options.py new file mode 100644 index 00000000..b9d34191 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_list_options.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_list_options_py3.py new file mode 100644 index 00000000..f7787cd7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_list_options_py3.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options.py new file mode 100644 index 00000000..443ebba5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobListPreparationAndReleaseTaskStatusOptions(Model): + """Additional parameters for list_preparation_and_release_task_status + operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobListPreparationAndReleaseTaskStatusOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options_py3.py new file mode 100644 index 00000000..a7353629 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_list_preparation_and_release_task_status_options_py3.py @@ -0,0 +1,62 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobListPreparationAndReleaseTaskStatusOptions(Model): + """Additional parameters for list_preparation_and_release_task_status + operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobListPreparationAndReleaseTaskStatusOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_manager_task.py b/azext/batch/_vendor/v4/azure/batch/models/job_manager_task.py new file mode 100644 index 00000000..38d54ac0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_manager_task.py @@ -0,0 +1,182 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobManagerTask(Model): + """Specifies details of a Job Manager task. + + The Job Manager task is automatically started when the job is created. The + Batch service tries to schedule the Job Manager task before any other tasks + in the job. When shrinking a pool, the Batch service tries to preserve + compute nodes where Job Manager tasks are running for as long as possible + (that is, nodes running 'normal' tasks are removed before nodes running Job + Manager tasks). When a Job Manager task fails and needs to be restarted, + the system tries to schedule it at the highest priority. If there are no + idle nodes available, the system may terminate one of the running tasks in + the pool and return it to the queue in order to make room for the Job + Manager task to restart. Note that a Job Manager task in one job does not + have priority over tasks in other jobs. Across jobs, only job level + priorities are observed. For example, if a Job Manager in a priority 0 job + needs to be restarted, it will not displace tasks of a priority 1 job. + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Job Manager + task within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. + :type id: str + :param display_name: The display name of the Job Manager task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: Required. The command line of the Job Manager task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager task runs. If the pool that will run this task has + containerConfiguration set, this must be set as well. If the pool that + will run this task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all task environment variables are mapped + into the container, and the task command line is executed in the + container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Job Manager task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Manager task. + :type constraints: ~azure.batch.models.TaskConstraints + :param kill_job_on_completion: Whether completion of the Job Manager task + signifies completion of the entire job. If true, when the Job Manager task + completes, the Batch service marks the job as complete. If any tasks are + still running at this time (other than Job Release), those tasks are + terminated. If false, the completion of the Job Manager task does not + affect the job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the job, or have a client or + user terminate the job explicitly. An example of this is if the Job + Manager creates a set of tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control job lifetime, + and using the Job Manager task only to create the tasks for the job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: ~azure.batch.models.UserIdentity + :param run_exclusive: Whether the Job Manager task requires exclusive use + of the compute node where it runs. If true, no other tasks will run on the + same compute node for as long as the Job Manager is running. If false, + other tasks can run simultaneously with the Job Manager on a compute node. + The Job Manager task counts normally against the node's concurrent task + limit, so this is only relevant if the node allows multiple concurrent + tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + :param allow_low_priority_node: Whether the Job Manager task may run on a + low-priority compute node. The default value is true. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobManagerTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.kill_job_on_completion = kwargs.get('kill_job_on_completion', None) + self.user_identity = kwargs.get('user_identity', None) + self.run_exclusive = kwargs.get('run_exclusive', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.allow_low_priority_node = kwargs.get('allow_low_priority_node', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_manager_task_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_manager_task_py3.py new file mode 100644 index 00000000..668b182b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_manager_task_py3.py @@ -0,0 +1,182 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobManagerTask(Model): + """Specifies details of a Job Manager task. + + The Job Manager task is automatically started when the job is created. The + Batch service tries to schedule the Job Manager task before any other tasks + in the job. When shrinking a pool, the Batch service tries to preserve + compute nodes where Job Manager tasks are running for as long as possible + (that is, nodes running 'normal' tasks are removed before nodes running Job + Manager tasks). When a Job Manager task fails and needs to be restarted, + the system tries to schedule it at the highest priority. If there are no + idle nodes available, the system may terminate one of the running tasks in + the pool and return it to the queue in order to make room for the Job + Manager task to restart. Note that a Job Manager task in one job does not + have priority over tasks in other jobs. Across jobs, only job level + priorities are observed. For example, if a Job Manager in a priority 0 job + needs to be restarted, it will not displace tasks of a priority 1 job. + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Job Manager + task within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. + :type id: str + :param display_name: The display name of the Job Manager task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: Required. The command line of the Job Manager task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager task runs. If the pool that will run this task has + containerConfiguration set, this must be set as well. If the pool that + will run this task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all task environment variables are mapped + into the container, and the task command line is executed in the + container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Job Manager task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Manager task. + :type constraints: ~azure.batch.models.TaskConstraints + :param kill_job_on_completion: Whether completion of the Job Manager task + signifies completion of the entire job. If true, when the Job Manager task + completes, the Batch service marks the job as complete. If any tasks are + still running at this time (other than Job Release), those tasks are + terminated. If false, the completion of the Job Manager task does not + affect the job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the job, or have a client or + user terminate the job explicitly. An example of this is if the Job + Manager creates a set of tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control job lifetime, + and using the Job Manager task only to create the tasks for the job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: ~azure.batch.models.UserIdentity + :param run_exclusive: Whether the Job Manager task requires exclusive use + of the compute node where it runs. If true, no other tasks will run on the + same compute node for as long as the Job Manager is running. If false, + other tasks can run simultaneously with the Job Manager on a compute node. + The Job Manager task counts normally against the node's concurrent task + limit, so this is only relevant if the node allows multiple concurrent + tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + :param allow_low_priority_node: Whether the Job Manager task may run on a + low-priority compute node. The default value is true. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, kill_job_on_completion: bool=None, user_identity=None, run_exclusive: bool=None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool=None, **kwargs) -> None: + super(JobManagerTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.constraints = constraints + self.kill_job_on_completion = kill_job_on_completion + self.user_identity = user_identity + self.run_exclusive = run_exclusive + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.allow_low_priority_node = allow_low_priority_node diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_patch_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_patch_options.py new file mode 100644 index 00000000..9fdbb4f3 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_patch_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobPatchOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_patch_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_patch_options_py3.py new file mode 100644 index 00000000..586e381d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_patch_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobPatchOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter.py new file mode 100644 index 00000000..2088a145 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPatchParameter(Model): + """The set of changes to be made to a job. + + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, the priority of the job is left unchanged. + :type priority: int + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. If omitted, the + completion behavior is left unchanged. You may not change the value from + terminatejob to noaction - that is, once you have engaged automatic job + termination, you cannot turn it off again. If you try to do this, the + request fails with an 'invalid property value' error response; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param constraints: The execution constraints for the job. If omitted, the + existing execution constraints are left unchanged. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: The pool on which the Batch service runs the job's + tasks. You may change the pool for a job only when the job is disabled. + The Patch Job call will fail if you include the poolInfo element and the + job is not disabled. If you specify an autoPoolSpecification specification + in the poolInfo, only the keepAlive property can be updated, and then only + if the auto pool has a poolLifetimeOption of job. If omitted, the job + continues to run on its current pool. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the job as + metadata. If omitted, the existing job metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobPatchParameter, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.constraints = kwargs.get('constraints', None) + self.pool_info = kwargs.get('pool_info', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter_py3.py new file mode 100644 index 00000000..af6da2aa --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_patch_parameter_py3.py @@ -0,0 +1,61 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPatchParameter(Model): + """The set of changes to be made to a job. + + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, the priority of the job is left unchanged. + :type priority: int + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. If omitted, the + completion behavior is left unchanged. You may not change the value from + terminatejob to noaction - that is, once you have engaged automatic job + termination, you cannot turn it off again. If you try to do this, the + request fails with an 'invalid property value' error response; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param constraints: The execution constraints for the job. If omitted, the + existing execution constraints are left unchanged. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: The pool on which the Batch service runs the job's + tasks. You may change the pool for a job only when the job is disabled. + The Patch Job call will fail if you include the poolInfo element and the + job is not disabled. If you specify an autoPoolSpecification specification + in the poolInfo, only the keepAlive property can be updated, and then only + if the auto pool has a poolLifetimeOption of job. If omitted, the job + continues to run on its current pool. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the job as + metadata. If omitted, the existing job metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, priority: int=None, on_all_tasks_complete=None, constraints=None, pool_info=None, metadata=None, **kwargs) -> None: + super(JobPatchParameter, self).__init__(**kwargs) + self.priority = priority + self.on_all_tasks_complete = on_all_tasks_complete + self.constraints = constraints + self.pool_info = pool_info + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information.py new file mode 100644 index 00000000..44356460 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPreparationAndReleaseTaskExecutionInformation(Model): + """The status of the Job Preparation and Job Release tasks on a compute node. + + :param pool_id: The ID of the pool containing the compute node to which + this entry refers. + :type pool_id: str + :param node_id: The ID of the compute node to which this entry refers. + :type node_id: str + :param node_url: The URL of the compute node to which this entry refers. + :type node_url: str + :param job_preparation_task_execution_info: Information about the + execution status of the Job Preparation task on this compute node. + :type job_preparation_task_execution_info: + ~azure.batch.models.JobPreparationTaskExecutionInformation + :param job_release_task_execution_info: Information about the execution + status of the Job Release task on this compute node. This property is set + only if the Job Release task has run on the node. + :type job_release_task_execution_info: + ~azure.batch.models.JobReleaseTaskExecutionInformation + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'job_preparation_task_execution_info': {'key': 'jobPreparationTaskExecutionInfo', 'type': 'JobPreparationTaskExecutionInformation'}, + 'job_release_task_execution_info': {'key': 'jobReleaseTaskExecutionInfo', 'type': 'JobReleaseTaskExecutionInformation'}, + } + + def __init__(self, **kwargs): + super(JobPreparationAndReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.node_id = kwargs.get('node_id', None) + self.node_url = kwargs.get('node_url', None) + self.job_preparation_task_execution_info = kwargs.get('job_preparation_task_execution_info', None) + self.job_release_task_execution_info = kwargs.get('job_release_task_execution_info', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_paged.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_paged.py new file mode 100644 index 00000000..f1f7d3c4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class JobPreparationAndReleaseTaskExecutionInformationPaged(Paged): + """ + A paging container for iterating over a list of :class:`JobPreparationAndReleaseTaskExecutionInformation ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[JobPreparationAndReleaseTaskExecutionInformation]'} + } + + def __init__(self, *args, **kwargs): + + super(JobPreparationAndReleaseTaskExecutionInformationPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_py3.py new file mode 100644 index 00000000..35520702 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_and_release_task_execution_information_py3.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPreparationAndReleaseTaskExecutionInformation(Model): + """The status of the Job Preparation and Job Release tasks on a compute node. + + :param pool_id: The ID of the pool containing the compute node to which + this entry refers. + :type pool_id: str + :param node_id: The ID of the compute node to which this entry refers. + :type node_id: str + :param node_url: The URL of the compute node to which this entry refers. + :type node_url: str + :param job_preparation_task_execution_info: Information about the + execution status of the Job Preparation task on this compute node. + :type job_preparation_task_execution_info: + ~azure.batch.models.JobPreparationTaskExecutionInformation + :param job_release_task_execution_info: Information about the execution + status of the Job Release task on this compute node. This property is set + only if the Job Release task has run on the node. + :type job_release_task_execution_info: + ~azure.batch.models.JobReleaseTaskExecutionInformation + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'job_preparation_task_execution_info': {'key': 'jobPreparationTaskExecutionInfo', 'type': 'JobPreparationTaskExecutionInformation'}, + 'job_release_task_execution_info': {'key': 'jobReleaseTaskExecutionInfo', 'type': 'JobReleaseTaskExecutionInformation'}, + } + + def __init__(self, *, pool_id: str=None, node_id: str=None, node_url: str=None, job_preparation_task_execution_info=None, job_release_task_execution_info=None, **kwargs) -> None: + super(JobPreparationAndReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.pool_id = pool_id + self.node_id = node_id + self.node_url = node_url + self.job_preparation_task_execution_info = job_preparation_task_execution_info + self.job_release_task_execution_info = job_release_task_execution_info diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task.py new file mode 100644 index 00000000..1987aed3 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task.py @@ -0,0 +1,146 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPreparationTask(Model): + """A Job Preparation task to run before any tasks of the job on any given + compute node. + + You can use Job Preparation to prepare a compute node to run tasks for the + job. Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the tasks in the job. The Job Preparation + task can download these common resource files to the shared location on the + compute node. (AZ_BATCH_NODE_ROOT_DIR\shared), or starting a local service + on the compute node so that all tasks of that job can communicate with it. + If the Job Preparation task fails (that is, exhausts its retry count before + exiting with exit code 0), Batch will not run tasks of this job on the + compute node. The node remains ineligible to run tasks of this job until it + is reimaged. The node remains active and can be used for other jobs. The + Job Preparation task can run multiple times on the same compute node. + Therefore, you should write the Job Preparation task to handle + re-execution. If the compute node is rebooted, the Job Preparation task is + run again on the node before scheduling any other task of the job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did + not previously complete. If the compute node is reimaged, the Job + Preparation task is run again before scheduling any task of the job. Batch + will retry tasks when a recovery operation is triggered on a compute node. + Examples of recovery operations include (but are not limited to) when an + unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Preparation task + within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other task in the job can + have the same ID as the Job Preparation task. If you try to submit a task + with the same id, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Preparation + task. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all task + environment variables are mapped into the container, and the task command + line is executed in the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. There is + a maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Preparation task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Preparation task. + :type constraints: ~azure.batch.models.TaskConstraints + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation task to complete successfully before scheduling any other + tasks of the job on the compute node. A Job Preparation task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + task fails on a compute node, the Batch service retries the Job + Preparation task up to its maximum retry count (as specified in the + constraints element). If the task has still not completed successfully + after all retries, then the Batch service will not schedule tasks of the + job to the compute node. The compute node remains active and eligible to + run tasks of other jobs. If false, the Batch service will not wait for the + Job Preparation task to complete. In this case, other tasks of the job can + start executing on the compute node while the Job Preparation task is + still running; and even if the Job Preparation task fails, new tasks will + continue to be scheduled on the node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + task runs. If omitted, the task runs as a non-administrative user unique + to the task on Windows nodes, or a a non-administrative user unique to the + pool on Linux nodes. + :type user_identity: ~azure.batch.models.UserIdentity + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation task after a compute node reboots. The + Job Preparation task is always rerun if a compute node is reimaged, or if + the Job Preparation task did not complete (e.g. because the reboot + occurred while the task was running). Therefore, you should always write a + Job Preparation task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobPreparationTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.wait_for_success = kwargs.get('wait_for_success', None) + self.user_identity = kwargs.get('user_identity', None) + self.rerun_on_node_reboot_after_success = kwargs.get('rerun_on_node_reboot_after_success', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information.py new file mode 100644 index 00000000..f51b95a1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information.py @@ -0,0 +1,111 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPreparationTaskExecutionInformation(Model): + """Contains information about the execution of a Job Preparation task on a + compute node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the task started running. + If the task has been restarted or retried, this is the most recent time at + which the task started running. + :type start_time: datetime + :param end_time: The time at which the Job Preparation task completed. + This property is set only if the task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Preparation task on + the compute node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobPreparationTaskState + :param task_root_directory: The root directory of the Job Preparation task + on the compute node. You can use this path to retrieve files created by + the task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Preparation task on the compute node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the task + command line. This parameter is returned only if the task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the compute node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the task could not be run) and + file upload errors are not retried. The Batch service will retry the task + up to the limit specified by the constraints. Task application failures + (non-zero exit code) are retried, pre-processing errors (the task could + not be run) and file upload errors are not retried. The Batch service will + retry the task up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Job + Preparation task started running. This property is set only if the task + was retried (i.e. retryCount is nonzero). If present, this is typically + the same as startTime, but may be different if the task has been restarted + for reasons other than retry; for example, if the compute node was + rebooted during a retry, then the startTime is updated but the + lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobPreparationTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(JobPreparationTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.state = kwargs.get('state', None) + self.task_root_directory = kwargs.get('task_root_directory', None) + self.task_root_directory_url = kwargs.get('task_root_directory_url', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.retry_count = kwargs.get('retry_count', None) + self.last_retry_time = kwargs.get('last_retry_time', None) + self.result = kwargs.get('result', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information_py3.py new file mode 100644 index 00000000..36bd33f7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_execution_information_py3.py @@ -0,0 +1,111 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPreparationTaskExecutionInformation(Model): + """Contains information about the execution of a Job Preparation task on a + compute node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the task started running. + If the task has been restarted or retried, this is the most recent time at + which the task started running. + :type start_time: datetime + :param end_time: The time at which the Job Preparation task completed. + This property is set only if the task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Preparation task on + the compute node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobPreparationTaskState + :param task_root_directory: The root directory of the Job Preparation task + on the compute node. You can use this path to retrieve files created by + the task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Preparation task on the compute node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the task + command line. This parameter is returned only if the task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the compute node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the task could not be run) and + file upload errors are not retried. The Batch service will retry the task + up to the limit specified by the constraints. Task application failures + (non-zero exit code) are retried, pre-processing errors (the task could + not be run) and file upload errors are not retried. The Batch service will + retry the task up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Job + Preparation task started running. This property is set only if the task + was retried (i.e. retryCount is nonzero). If present, this is typically + the same as startTime, but may be different if the task has been restarted + for reasons other than retry; for example, if the compute node was + rebooted during a retry, then the startTime is updated but the + lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobPreparationTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, start_time, state, retry_count: int, end_time=None, task_root_directory: str=None, task_root_directory_url: str=None, exit_code: int=None, container_info=None, failure_info=None, last_retry_time=None, result=None, **kwargs) -> None: + super(JobPreparationTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.state = state + self.task_root_directory = task_root_directory + self.task_root_directory_url = task_root_directory_url + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.retry_count = retry_count + self.last_retry_time = last_retry_time + self.result = result diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_py3.py new file mode 100644 index 00000000..d1bb21ed --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_preparation_task_py3.py @@ -0,0 +1,146 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobPreparationTask(Model): + """A Job Preparation task to run before any tasks of the job on any given + compute node. + + You can use Job Preparation to prepare a compute node to run tasks for the + job. Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the tasks in the job. The Job Preparation + task can download these common resource files to the shared location on the + compute node. (AZ_BATCH_NODE_ROOT_DIR\shared), or starting a local service + on the compute node so that all tasks of that job can communicate with it. + If the Job Preparation task fails (that is, exhausts its retry count before + exiting with exit code 0), Batch will not run tasks of this job on the + compute node. The node remains ineligible to run tasks of this job until it + is reimaged. The node remains active and can be used for other jobs. The + Job Preparation task can run multiple times on the same compute node. + Therefore, you should write the Job Preparation task to handle + re-execution. If the compute node is rebooted, the Job Preparation task is + run again on the node before scheduling any other task of the job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did + not previously complete. If the compute node is reimaged, the Job + Preparation task is run again before scheduling any task of the job. Batch + will retry tasks when a recovery operation is triggered on a compute node. + Examples of recovery operations include (but are not limited to) when an + unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Preparation task + within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other task in the job can + have the same ID as the Job Preparation task. If you try to submit a task + with the same id, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Preparation + task. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all task + environment variables are mapped into the container, and the task command + line is executed in the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. There is + a maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Preparation task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Preparation task. + :type constraints: ~azure.batch.models.TaskConstraints + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation task to complete successfully before scheduling any other + tasks of the job on the compute node. A Job Preparation task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + task fails on a compute node, the Batch service retries the Job + Preparation task up to its maximum retry count (as specified in the + constraints element). If the task has still not completed successfully + after all retries, then the Batch service will not schedule tasks of the + job to the compute node. The compute node remains active and eligible to + run tasks of other jobs. If false, the Batch service will not wait for the + Job Preparation task to complete. In this case, other tasks of the job can + start executing on the compute node while the Job Preparation task is + still running; and even if the Job Preparation task fails, new tasks will + continue to be scheduled on the node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + task runs. If omitted, the task runs as a non-administrative user unique + to the task on Windows nodes, or a a non-administrative user unique to the + pool on Linux nodes. + :type user_identity: ~azure.batch.models.UserIdentity + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation task after a compute node reboots. The + Job Preparation task is always rerun if a compute node is reimaged, or if + the Job Preparation task did not complete (e.g. because the reboot + occurred while the task was running). Therefore, you should always write a + Job Preparation task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool=None, user_identity=None, rerun_on_node_reboot_after_success: bool=None, **kwargs) -> None: + super(JobPreparationTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.constraints = constraints + self.wait_for_success = wait_for_success + self.user_identity = user_identity + self.rerun_on_node_reboot_after_success = rerun_on_node_reboot_after_success diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_release_task.py b/azext/batch/_vendor/v4/azure/batch/models/job_release_task.py new file mode 100644 index 00000000..cb91dd91 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_release_task.py @@ -0,0 +1,121 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobReleaseTask(Model): + """A Job Release task to run on job completion on any compute node where the + job has run. + + The Job Release task runs when the job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the job is still active, the job's maximum wall clock time constraint + is reached, and the job is still active, or the job's Job Manager task + completed, and the job is configured to terminate when the Job Manager + completes. The Job Release task runs on each compute node where tasks of + the job have run and the Job Preparation task ran and completed. If you + reimage a compute node after it has run the Job Preparation task, and the + job ends without any further tasks of the job running on that compute node + (and hence the Job Preparation task does not re-run), then the Job Release + task does not run on that node. If a compute node reboots while the Job + Release task is still running, the Job Release task runs again when the + compute node starts up. The job is not marked as complete until all Job + Release tasks have completed. The Job Release task runs in the background. + It does not occupy a scheduling slot; that is, it does not count towards + the maxTasksPerNode limit specified on the pool. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Release task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other task in the job can have the + same ID as the Job Release task. If you try to submit a task with the same + id, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Release task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all task environment variables + are mapped into the container, and the task command line is executed in + the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Release task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param max_wall_clock_time: The maximum elapsed time that the Job Release + task may run on a given compute node, measured from the time the task + starts. If the task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory for + the Job Release task on the compute node. After this time, the Batch + service may delete the task directory and all its contents. The default is + infinite, i.e. the task directory will be retained until the compute node + is removed or reimaged. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: ~azure.batch.models.UserIdentity + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, **kwargs): + super(JobReleaseTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.retention_time = kwargs.get('retention_time', None) + self.user_identity = kwargs.get('user_identity', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information.py new file mode 100644 index 00000000..0ccb4f64 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information.py @@ -0,0 +1,89 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobReleaseTaskExecutionInformation(Model): + """Contains information about the execution of a Job Release task on a compute + node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the task started running. + If the task has been restarted or retried, this is the most recent time at + which the task started running. + :type start_time: datetime + :param end_time: The time at which the Job Release task completed. This + property is set only if the task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Release task on the + compute node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobReleaseTaskState + :param task_root_directory: The root directory of the Job Release task on + the compute node. You can use this path to retrieve files created by the + task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Release task on the compute node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the task + command line. This parameter is returned only if the task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the compute node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobReleaseTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(JobReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.state = kwargs.get('state', None) + self.task_root_directory = kwargs.get('task_root_directory', None) + self.task_root_directory_url = kwargs.get('task_root_directory_url', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.result = kwargs.get('result', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information_py3.py new file mode 100644 index 00000000..ed08089b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_release_task_execution_information_py3.py @@ -0,0 +1,89 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobReleaseTaskExecutionInformation(Model): + """Contains information about the execution of a Job Release task on a compute + node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the task started running. + If the task has been restarted or retried, this is the most recent time at + which the task started running. + :type start_time: datetime + :param end_time: The time at which the Job Release task completed. This + property is set only if the task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Release task on the + compute node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobReleaseTaskState + :param task_root_directory: The root directory of the Job Release task on + the compute node. You can use this path to retrieve files created by the + task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Release task on the compute node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the task + command line. This parameter is returned only if the task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the compute node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobReleaseTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, start_time, state, end_time=None, task_root_directory: str=None, task_root_directory_url: str=None, exit_code: int=None, container_info=None, failure_info=None, result=None, **kwargs) -> None: + super(JobReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.state = state + self.task_root_directory = task_root_directory + self.task_root_directory_url = task_root_directory_url + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.result = result diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_release_task_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_release_task_py3.py new file mode 100644 index 00000000..e8febe4c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_release_task_py3.py @@ -0,0 +1,121 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobReleaseTask(Model): + """A Job Release task to run on job completion on any compute node where the + job has run. + + The Job Release task runs when the job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the job is still active, the job's maximum wall clock time constraint + is reached, and the job is still active, or the job's Job Manager task + completed, and the job is configured to terminate when the Job Manager + completes. The Job Release task runs on each compute node where tasks of + the job have run and the Job Preparation task ran and completed. If you + reimage a compute node after it has run the Job Preparation task, and the + job ends without any further tasks of the job running on that compute node + (and hence the Job Preparation task does not re-run), then the Job Release + task does not run on that node. If a compute node reboots while the Job + Release task is still running, the Job Release task runs again when the + compute node starts up. The job is not marked as complete until all Job + Release tasks have completed. The Job Release task runs in the background. + It does not occupy a scheduling slot; that is, it does not count towards + the maxTasksPerNode limit specified on the pool. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Release task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other task in the job can have the + same ID as the Job Release task. If you try to submit a task with the same + id, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Release task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all task environment variables + are mapped into the container, and the task command line is executed in + the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Release task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param max_wall_clock_time: The maximum elapsed time that the Job Release + task may run on a given compute node, measured from the time the task + starts. If the task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory for + the Job Release task on the compute node. After this time, the Batch + service may delete the task directory and all its contents. The default is + infinite, i.e. the task directory will be retained until the compute node + is removed or reimaged. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: ~azure.batch.models.UserIdentity + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, environment_settings=None, max_wall_clock_time=None, retention_time=None, user_identity=None, **kwargs) -> None: + super(JobReleaseTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.max_wall_clock_time = max_wall_clock_time + self.retention_time = retention_time + self.user_identity = user_identity diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options.py new file mode 100644 index 00000000..6c03aaff --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options_py3.py new file mode 100644 index 00000000..fe7b76cc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobScheduleAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter.py new file mode 100644 index 00000000..e0d8d724 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter.py @@ -0,0 +1,63 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleAddParameter(Model): + """A job schedule that allows recurring jobs by specifying when to run jobs + and a specification used to create each job. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the schedule within + the account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the schedule. The display name + need not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param schedule: Required. The schedule according to which jobs will be + created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. The details of the jobs to be created + on this schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobScheduleAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter_py3.py new file mode 100644 index 00000000..9281c765 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_add_parameter_py3.py @@ -0,0 +1,63 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleAddParameter(Model): + """A job schedule that allows recurring jobs by specifying when to run jobs + and a specification used to create each job. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the schedule within + the account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the schedule. The display name + need not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param schedule: Required. The schedule according to which jobs will be + created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. The details of the jobs to be created + on this schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, id: str, schedule, job_specification, display_name: str=None, metadata=None, **kwargs) -> None: + super(JobScheduleAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.schedule = schedule + self.job_specification = job_specification + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options.py new file mode 100644 index 00000000..a7e01118 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options_py3.py new file mode 100644 index 00000000..89ae9986 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_delete_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options.py new file mode 100644 index 00000000..9384c1fb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleDisableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options_py3.py new file mode 100644 index 00000000..83adbe53 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_disable_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleDisableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options.py new file mode 100644 index 00000000..a296d530 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleEnableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options_py3.py new file mode 100644 index 00000000..daa4d087 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_enable_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleEnableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information.py new file mode 100644 index 00000000..b79a4e81 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleExecutionInformation(Model): + """Contains information about jobs that have been and will be run under a job + schedule. + + :param next_run_time: The next time at which a job will be created under + this schedule. This property is meaningful only if the schedule is in the + active state when the time comes around. For example, if the schedule is + disabled, no job will be created at nextRunTime unless the job is enabled + before then. + :type next_run_time: datetime + :param recent_job: Information about the most recent job under the job + schedule. This property is present only if the at least one job has run + under the schedule. + :type recent_job: ~azure.batch.models.RecentJob + :param end_time: The time at which the schedule ended. This property is + set only if the job schedule is in the completed state. + :type end_time: datetime + """ + + _attribute_map = { + 'next_run_time': {'key': 'nextRunTime', 'type': 'iso-8601'}, + 'recent_job': {'key': 'recentJob', 'type': 'RecentJob'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(JobScheduleExecutionInformation, self).__init__(**kwargs) + self.next_run_time = kwargs.get('next_run_time', None) + self.recent_job = kwargs.get('recent_job', None) + self.end_time = kwargs.get('end_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information_py3.py new file mode 100644 index 00000000..6afcaa38 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_execution_information_py3.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleExecutionInformation(Model): + """Contains information about jobs that have been and will be run under a job + schedule. + + :param next_run_time: The next time at which a job will be created under + this schedule. This property is meaningful only if the schedule is in the + active state when the time comes around. For example, if the schedule is + disabled, no job will be created at nextRunTime unless the job is enabled + before then. + :type next_run_time: datetime + :param recent_job: Information about the most recent job under the job + schedule. This property is present only if the at least one job has run + under the schedule. + :type recent_job: ~azure.batch.models.RecentJob + :param end_time: The time at which the schedule ended. This property is + set only if the job schedule is in the completed state. + :type end_time: datetime + """ + + _attribute_map = { + 'next_run_time': {'key': 'nextRunTime', 'type': 'iso-8601'}, + 'recent_job': {'key': 'recentJob', 'type': 'RecentJob'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, *, next_run_time=None, recent_job=None, end_time=None, **kwargs) -> None: + super(JobScheduleExecutionInformation, self).__init__(**kwargs) + self.next_run_time = next_run_time + self.recent_job = recent_job + self.end_time = end_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options.py new file mode 100644 index 00000000..c4f228d7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleExistsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options_py3.py new file mode 100644 index 00000000..da8e15d2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_exists_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleExistsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options.py new file mode 100644 index 00000000..434b0ab1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options_py3.py new file mode 100644 index 00000000..11ee540f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_get_options_py3.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options.py new file mode 100644 index 00000000..28af3945 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 job schedules can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options_py3.py new file mode 100644 index 00000000..017cdb10 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_list_options_py3.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 job schedules can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobScheduleListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options.py new file mode 100644 index 00000000..841e56e9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSchedulePatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobSchedulePatchOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options_py3.py new file mode 100644 index 00000000..06e4f626 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSchedulePatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobSchedulePatchOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter.py new file mode 100644 index 00000000..24a074bf --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSchedulePatchParameter(Model): + """The set of changes to be made to a job schedule. + + :param schedule: The schedule according to which jobs will be created. If + you do not specify this element, the existing schedule is left unchanged. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the jobs to be created on this + schedule. Updates affect only jobs that are started after the update has + taken place. Any currently active job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the job + schedule as metadata. If you do not specify this element, existing + metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobSchedulePatchParameter, self).__init__(**kwargs) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter_py3.py new file mode 100644 index 00000000..4102022b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_patch_parameter_py3.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSchedulePatchParameter(Model): + """The set of changes to be made to a job schedule. + + :param schedule: The schedule according to which jobs will be created. If + you do not specify this element, the existing schedule is left unchanged. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the jobs to be created on this + schedule. Updates affect only jobs that are started after the update has + taken place. Any currently active job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the job + schedule as metadata. If you do not specify this element, existing + metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, schedule=None, job_specification=None, metadata=None, **kwargs) -> None: + super(JobSchedulePatchParameter, self).__init__(**kwargs) + self.schedule = schedule + self.job_specification = job_specification + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics.py new file mode 100644 index 00000000..ebf2e3e2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics.py @@ -0,0 +1,126 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleStatistics(Model): + """Resource usage statistics for a job schedule. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in all jobs + created under the schedule. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in all jobs + created under the schedule. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all the + tasks in all the jobs created under the schedule. The wall clock time is + the elapsed time from when the task started running on a compute node to + when it finished (or to the last time the statistics were updated, if the + task had not finished by then). If a task was retried, this includes the + wall clock time of all the task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all tasks in all jobs created under the schedule. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all tasks in all jobs created under the schedule. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by all + tasks in all jobs created under the schedule. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by all + tasks in all jobs created under the schedule. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of tasks + successfully completed during the given time range in jobs created under + the schedule. A task completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of tasks that failed + during the given time range in jobs created under the schedule. A task + fails if it exhausts its maximum retry count without returning exit code + 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries during the + given time range on all tasks in all jobs created under the schedule. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all tasks in all jobs + created under the schedule. The wait time for a task is defined as the + elapsed time between the creation of the task and the start of task + execution. (If the task is retried due to failures, the wait time is the + time to the most recent task execution.). This value is only reported in + the account lifetime statistics; it is not included in the job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(JobScheduleStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.kernel_cpu_time = kwargs.get('kernel_cpu_time', None) + self.wall_clock_time = kwargs.get('wall_clock_time', None) + self.read_iops = kwargs.get('read_iops', None) + self.write_iops = kwargs.get('write_iops', None) + self.read_io_gi_b = kwargs.get('read_io_gi_b', None) + self.write_io_gi_b = kwargs.get('write_io_gi_b', None) + self.num_succeeded_tasks = kwargs.get('num_succeeded_tasks', None) + self.num_failed_tasks = kwargs.get('num_failed_tasks', None) + self.num_task_retries = kwargs.get('num_task_retries', None) + self.wait_time = kwargs.get('wait_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics_py3.py new file mode 100644 index 00000000..d335aa94 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_statistics_py3.py @@ -0,0 +1,126 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleStatistics(Model): + """Resource usage statistics for a job schedule. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in all jobs + created under the schedule. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in all jobs + created under the schedule. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all the + tasks in all the jobs created under the schedule. The wall clock time is + the elapsed time from when the task started running on a compute node to + when it finished (or to the last time the statistics were updated, if the + task had not finished by then). If a task was retried, this includes the + wall clock time of all the task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all tasks in all jobs created under the schedule. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all tasks in all jobs created under the schedule. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by all + tasks in all jobs created under the schedule. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by all + tasks in all jobs created under the schedule. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of tasks + successfully completed during the given time range in jobs created under + the schedule. A task completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of tasks that failed + during the given time range in jobs created under the schedule. A task + fails if it exhausts its maximum retry count without returning exit code + 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries during the + given time range on all tasks in all jobs created under the schedule. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all tasks in all jobs + created under the schedule. The wait time for a task is defined as the + elapsed time between the creation of the task and the start of task + execution. (If the task is retried due to failures, the wait time is the + time to the most recent task execution.). This value is only reported in + the account lifetime statistics; it is not included in the job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, user_cpu_time, kernel_cpu_time, wall_clock_time, read_iops: int, write_iops: int, read_io_gi_b: float, write_io_gi_b: float, num_succeeded_tasks: int, num_failed_tasks: int, num_task_retries: int, wait_time, **kwargs) -> None: + super(JobScheduleStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.user_cpu_time = user_cpu_time + self.kernel_cpu_time = kernel_cpu_time + self.wall_clock_time = wall_clock_time + self.read_iops = read_iops + self.write_iops = write_iops + self.read_io_gi_b = read_io_gi_b + self.write_io_gi_b = write_io_gi_b + self.num_succeeded_tasks = num_succeeded_tasks + self.num_failed_tasks = num_failed_tasks + self.num_task_retries = num_task_retries + self.wait_time = wait_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options.py new file mode 100644 index 00000000..32a6f0d7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleTerminateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options_py3.py new file mode 100644 index 00000000..54789876 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_terminate_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleTerminateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options.py new file mode 100644 index 00000000..ca3de898 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleUpdateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options_py3.py new file mode 100644 index 00000000..aee92988 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleUpdateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter.py new file mode 100644 index 00000000..757ef299 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleUpdateParameter(Model): + """The set of changes to be made to a job schedule. + + All required parameters must be populated in order to send to Azure. + + :param schedule: Required. The schedule according to which jobs will be + created. If you do not specify this element, it is equivalent to passing + the default schedule: that is, a single job scheduled to run immediately. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. Details of the jobs to be created on + this schedule. Updates affect only jobs that are started after the update + has taken place. Any currently active job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the job + schedule as metadata. If you do not specify this element, it takes the + default value of an empty list; in effect, any existing metadata is + deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobScheduleUpdateParameter, self).__init__(**kwargs) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter_py3.py new file mode 100644 index 00000000..b3b216ee --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_schedule_update_parameter_py3.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobScheduleUpdateParameter(Model): + """The set of changes to be made to a job schedule. + + All required parameters must be populated in order to send to Azure. + + :param schedule: Required. The schedule according to which jobs will be + created. If you do not specify this element, it is equivalent to passing + the default schedule: that is, a single job scheduled to run immediately. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. Details of the jobs to be created on + this schedule. Updates affect only jobs that are started after the update + has taken place. Any currently active job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the job + schedule as metadata. If you do not specify this element, it takes the + default value of an empty list; in effect, any existing metadata is + deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, schedule, job_specification, metadata=None, **kwargs) -> None: + super(JobScheduleUpdateParameter, self).__init__(**kwargs) + self.schedule = schedule + self.job_specification = job_specification + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error.py b/azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error.py new file mode 100644 index 00000000..1869114d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSchedulingError(Model): + """An error encountered by the Batch service when scheduling a job. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the job scheduling error. + Possible values include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the job scheduling error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the job scheduling error, intended to + be suitable for display in a user interface. + :type message: str + :param details: A list of additional error details related to the + scheduling error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(JobSchedulingError, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.details = kwargs.get('details', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error_py3.py new file mode 100644 index 00000000..c12cb339 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_scheduling_error_py3.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSchedulingError(Model): + """An error encountered by the Batch service when scheduling a job. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the job scheduling error. + Possible values include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the job scheduling error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the job scheduling error, intended to + be suitable for display in a user interface. + :type message: str + :param details: A list of additional error details related to the + scheduling error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, category, code: str=None, message: str=None, details=None, **kwargs) -> None: + super(JobSchedulingError, self).__init__(**kwargs) + self.category = category + self.code = code + self.message = message + self.details = details diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_specification.py b/azext/batch/_vendor/v4/azure/batch/models/job_specification.py new file mode 100644 index 00000000..5ff5a6b0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_specification.py @@ -0,0 +1,125 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSpecification(Model): + """Specifies details of the jobs to be created on a schedule. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of jobs created under this schedule. + Priority values can range from -1000 to 1000, with -1000 being the lowest + priority and 1000 being the highest priority. The default value is 0. This + priority is used as the default for all jobs under the job schedule. You + can update a job's priority after it has been created using by using the + update job API. + :type priority: int + :param display_name: The display name for jobs created under this + schedule. The name need not be unique and can contain any Unicode + characters up to a maximum length of 1024. + :type display_name: str + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in a job created under this schedule are in the completed + state. Note that if a job contains no tasks, then all tasks are considered + complete. This option is therefore most commonly used with a Job Manager + task; if you want to use automatic job termination without a Job Manager, + you should initially set onAllTasksComplete to noaction and update the job + properties to set onAllTasksComplete to terminatejob once you have + finished adding tasks. The default is noaction. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + task fails in a job created under this schedule. A task is considered to + have failed if it have failed if has a failureInfo. A failureInfo is set + if the task completes with a non-zero exit code after exhausting its retry + count, or if there was an error starting the task, for example due to a + resource file download error. The default is noaction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param constraints: The execution constraints for jobs created under this + schedule. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: The details of a Job Manager task to be launched + when a job is started under this schedule. If the job does not specify a + Job Manager task, the user must explicitly add tasks to the job using the + Task API. If the job does specify a Job Manager task, the Batch service + creates the Job Manager task when the job is created, and will try to + schedule the Job Manager task before scheduling other tasks in the job. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation task for jobs created + under this schedule. If a job has a Job Preparation task, the Batch + service will run the Job Preparation task on a compute node before + starting any tasks of that job on that compute node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release task for jobs created under this + schedule. The primary purpose of the Job Release task is to undo changes + to compute nodes made by the Job Preparation task. Example activities + include deleting local files, or shutting down services that were started + as part of job preparation. A Job Release task cannot be specified without + also specifying a Job Preparation task for the job. The Batch service runs + the Job Release task on the compute nodes that have run the Job + Preparation task. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: A list of common environment variable + settings. These environment variables are set for all tasks in jobs + created under this schedule (including the Job Manager, Job Preparation + and Job Release tasks). Individual tasks can override an environment + setting specified here by specifying the same setting name with a + different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The pool on which the Batch service runs the + tasks of jobs created under this schedule. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with each job + created under this schedule as metadata. The Batch service does not assign + any meaning to metadata; it is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobSpecification, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.display_name = kwargs.get('display_name', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.constraints = kwargs.get('constraints', None) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.pool_info = kwargs.get('pool_info', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_specification_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_specification_py3.py new file mode 100644 index 00000000..09484bf8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_specification_py3.py @@ -0,0 +1,125 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobSpecification(Model): + """Specifies details of the jobs to be created on a schedule. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of jobs created under this schedule. + Priority values can range from -1000 to 1000, with -1000 being the lowest + priority and 1000 being the highest priority. The default value is 0. This + priority is used as the default for all jobs under the job schedule. You + can update a job's priority after it has been created using by using the + update job API. + :type priority: int + :param display_name: The display name for jobs created under this + schedule. The name need not be unique and can contain any Unicode + characters up to a maximum length of 1024. + :type display_name: str + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in a job created under this schedule are in the completed + state. Note that if a job contains no tasks, then all tasks are considered + complete. This option is therefore most commonly used with a Job Manager + task; if you want to use automatic job termination without a Job Manager, + you should initially set onAllTasksComplete to noaction and update the job + properties to set onAllTasksComplete to terminatejob once you have + finished adding tasks. The default is noaction. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + task fails in a job created under this schedule. A task is considered to + have failed if it have failed if has a failureInfo. A failureInfo is set + if the task completes with a non-zero exit code after exhausting its retry + count, or if there was an error starting the task, for example due to a + resource file download error. The default is noaction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param constraints: The execution constraints for jobs created under this + schedule. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: The details of a Job Manager task to be launched + when a job is started under this schedule. If the job does not specify a + Job Manager task, the user must explicitly add tasks to the job using the + Task API. If the job does specify a Job Manager task, the Batch service + creates the Job Manager task when the job is created, and will try to + schedule the Job Manager task before scheduling other tasks in the job. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation task for jobs created + under this schedule. If a job has a Job Preparation task, the Batch + service will run the Job Preparation task on a compute node before + starting any tasks of that job on that compute node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release task for jobs created under this + schedule. The primary purpose of the Job Release task is to undo changes + to compute nodes made by the Job Preparation task. Example activities + include deleting local files, or shutting down services that were started + as part of job preparation. A Job Release task cannot be specified without + also specifying a Job Preparation task for the job. The Batch service runs + the Job Release task on the compute nodes that have run the Job + Preparation task. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: A list of common environment variable + settings. These environment variables are set for all tasks in jobs + created under this schedule (including the Job Manager, Job Preparation + and Job Release tasks). Individual tasks can override an environment + setting specified here by specifying the same setting name with a + different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The pool on which the Batch service runs the + tasks of jobs created under this schedule. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with each job + created under this schedule as metadata. The Batch service does not assign + any meaning to metadata; it is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, pool_info, priority: int=None, display_name: str=None, uses_task_dependencies: bool=None, on_all_tasks_complete=None, on_task_failure=None, constraints=None, job_manager_task=None, job_preparation_task=None, job_release_task=None, common_environment_settings=None, metadata=None, **kwargs) -> None: + super(JobSpecification, self).__init__(**kwargs) + self.priority = priority + self.display_name = display_name + self.uses_task_dependencies = uses_task_dependencies + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.constraints = constraints + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.pool_info = pool_info + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_statistics.py b/azext/batch/_vendor/v4/azure/batch/models/job_statistics.py new file mode 100644 index 00000000..ca95a31d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_statistics.py @@ -0,0 +1,123 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobStatistics(Model): + """Resource usage statistics for a job. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in the job. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in the job. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all tasks + in the job. The wall clock time is the elapsed time from when the task + started running on a compute node to when it finished (or to the last time + the statistics were updated, if the task had not finished by then). If a + task was retried, this includes the wall clock time of all the task + retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all tasks in the job. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all tasks in the job. + :type write_iops: long + :param read_io_gi_b: Required. The total amount of data in GiB read from + disk by all tasks in the job. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total amount of data in GiB written to + disk by all tasks in the job. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of tasks + successfully completed in the job during the given time range. A task + completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of tasks in the job + that failed during the given time range. A task fails if it exhausts its + maximum retry count without returning exit code 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries on all the + tasks in the job during the given time range. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all tasks in the job. + The wait time for a task is defined as the elapsed time between the + creation of the task and the start of task execution. (If the task is + retried due to failures, the wait time is the time to the most recent task + execution.) This value is only reported in the account lifetime + statistics; it is not included in the job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(JobStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.kernel_cpu_time = kwargs.get('kernel_cpu_time', None) + self.wall_clock_time = kwargs.get('wall_clock_time', None) + self.read_iops = kwargs.get('read_iops', None) + self.write_iops = kwargs.get('write_iops', None) + self.read_io_gi_b = kwargs.get('read_io_gi_b', None) + self.write_io_gi_b = kwargs.get('write_io_gi_b', None) + self.num_succeeded_tasks = kwargs.get('num_succeeded_tasks', None) + self.num_failed_tasks = kwargs.get('num_failed_tasks', None) + self.num_task_retries = kwargs.get('num_task_retries', None) + self.wait_time = kwargs.get('wait_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_statistics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_statistics_py3.py new file mode 100644 index 00000000..2f55b15a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_statistics_py3.py @@ -0,0 +1,123 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobStatistics(Model): + """Resource usage statistics for a job. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in the job. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all compute nodes) consumed by all tasks in the job. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all tasks + in the job. The wall clock time is the elapsed time from when the task + started running on a compute node to when it finished (or to the last time + the statistics were updated, if the task had not finished by then). If a + task was retried, this includes the wall clock time of all the task + retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all tasks in the job. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all tasks in the job. + :type write_iops: long + :param read_io_gi_b: Required. The total amount of data in GiB read from + disk by all tasks in the job. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total amount of data in GiB written to + disk by all tasks in the job. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of tasks + successfully completed in the job during the given time range. A task + completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of tasks in the job + that failed during the given time range. A task fails if it exhausts its + maximum retry count without returning exit code 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries on all the + tasks in the job during the given time range. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all tasks in the job. + The wait time for a task is defined as the elapsed time between the + creation of the task and the start of task execution. (If the task is + retried due to failures, the wait time is the time to the most recent task + execution.) This value is only reported in the account lifetime + statistics; it is not included in the job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, user_cpu_time, kernel_cpu_time, wall_clock_time, read_iops: int, write_iops: int, read_io_gi_b: float, write_io_gi_b: float, num_succeeded_tasks: int, num_failed_tasks: int, num_task_retries: int, wait_time, **kwargs) -> None: + super(JobStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.user_cpu_time = user_cpu_time + self.kernel_cpu_time = kernel_cpu_time + self.wall_clock_time = wall_clock_time + self.read_iops = read_iops + self.write_iops = write_iops + self.read_io_gi_b = read_io_gi_b + self.write_io_gi_b = write_io_gi_b + self.num_succeeded_tasks = num_succeeded_tasks + self.num_failed_tasks = num_failed_tasks + self.num_task_retries = num_task_retries + self.wait_time = wait_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_terminate_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_options.py new file mode 100644 index 00000000..b858c404 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobTerminateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_terminate_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_options_py3.py new file mode 100644 index 00000000..77173bcc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobTerminateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter.py new file mode 100644 index 00000000..4be6eaac --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobTerminateParameter(Model): + """Options when terminating a job. + + :param terminate_reason: The text you want to appear as the job's + TerminateReason. The default is 'UserTerminate'. + :type terminate_reason: str + """ + + _attribute_map = { + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(JobTerminateParameter, self).__init__(**kwargs) + self.terminate_reason = kwargs.get('terminate_reason', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter_py3.py new file mode 100644 index 00000000..4a496555 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_terminate_parameter_py3.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobTerminateParameter(Model): + """Options when terminating a job. + + :param terminate_reason: The text you want to appear as the job's + TerminateReason. The default is 'UserTerminate'. + :type terminate_reason: str + """ + + _attribute_map = { + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, *, terminate_reason: str=None, **kwargs) -> None: + super(JobTerminateParameter, self).__init__(**kwargs) + self.terminate_reason = terminate_reason diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_update_options.py b/azext/batch/_vendor/v4/azure/batch/models/job_update_options.py new file mode 100644 index 00000000..a11f18ab --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_update_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobUpdateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_update_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_update_options_py3.py new file mode 100644 index 00000000..61a47c21 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_update_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobUpdateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_update_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/job_update_parameter.py new file mode 100644 index 00000000..35f83063 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_update_parameter.py @@ -0,0 +1,72 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobUpdateParameter(Model): + """The set of changes to be made to a job. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, it is set to the default value 0. + :type priority: int + :param constraints: The execution constraints for the job. If omitted, the + constraints are cleared. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: Required. The pool on which the Batch service runs the + job's tasks. You may change the pool for a job only when the job is + disabled. The Update Job call will fail if you include the poolInfo + element and the job is not disabled. If you specify an + autoPoolSpecification specification in the poolInfo, only the keepAlive + property can be updated, and then only if the auto pool has a + poolLifetimeOption of job. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the job as + metadata. If omitted, it takes the default value of an empty list; in + effect, any existing metadata is deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. If omitted, the + completion behavior is set to noaction. If the current value is + terminatejob, this is an error because a job's completion behavior may not + be changed from terminatejob to noaction. You may not change the value + from terminatejob to noaction - that is, once you have engaged automatic + job termination, you cannot turn it off again. If you try to do this, the + request fails and Batch returns status code 400 (Bad Request) and an + 'invalid property value' error response. If you do not specify this + element in a PUT request, it is equivalent to passing noaction. This is an + error if the current value is terminatejob. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + } + + def __init__(self, **kwargs): + super(JobUpdateParameter, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.constraints = kwargs.get('constraints', None) + self.pool_info = kwargs.get('pool_info', None) + self.metadata = kwargs.get('metadata', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/job_update_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/job_update_parameter_py3.py new file mode 100644 index 00000000..9dce5ea1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/job_update_parameter_py3.py @@ -0,0 +1,72 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class JobUpdateParameter(Model): + """The set of changes to be made to a job. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, it is set to the default value 0. + :type priority: int + :param constraints: The execution constraints for the job. If omitted, the + constraints are cleared. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: Required. The pool on which the Batch service runs the + job's tasks. You may change the pool for a job only when the job is + disabled. The Update Job call will fail if you include the poolInfo + element and the job is not disabled. If you specify an + autoPoolSpecification specification in the poolInfo, only the keepAlive + property can be updated, and then only if the auto pool has a + poolLifetimeOption of job. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the job as + metadata. If omitted, it takes the default value of an empty list; in + effect, any existing metadata is deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. If omitted, the + completion behavior is set to noaction. If the current value is + terminatejob, this is an error because a job's completion behavior may not + be changed from terminatejob to noaction. You may not change the value + from terminatejob to noaction - that is, once you have engaged automatic + job termination, you cannot turn it off again. If you try to do this, the + request fails and Batch returns status code 400 (Bad Request) and an + 'invalid property value' error response. If you do not specify this + element in a PUT request, it is equivalent to passing noaction. This is an + error if the current value is terminatejob. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + } + + def __init__(self, *, pool_info, priority: int=None, constraints=None, metadata=None, on_all_tasks_complete=None, **kwargs) -> None: + super(JobUpdateParameter, self).__init__(**kwargs) + self.priority = priority + self.constraints = constraints + self.pool_info = pool_info + self.metadata = metadata + self.on_all_tasks_complete = on_all_tasks_complete diff --git a/azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration.py new file mode 100644 index 00000000..6ba12182 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class LinuxUserConfiguration(Model): + """Properties used to create a user account on a Linux node. + + :param uid: The user ID of the user account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the uid. + :type uid: int + :param gid: The group ID for the user account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the gid. + :type gid: int + :param ssh_private_key: The SSH private key for the user account. The + private key must not be password protected. The private key is used to + automatically configure asymmetric-key based authentication for SSH + between nodes in a Linux pool when the pool's enableInterNodeCommunication + property is true (it is ignored if enableInterNodeCommunication is false). + It does this by placing the key pair into the user's .ssh directory. If + not specified, password-less SSH is not configured between nodes (no + modification of the user's .ssh directory is done). + :type ssh_private_key: str + """ + + _attribute_map = { + 'uid': {'key': 'uid', 'type': 'int'}, + 'gid': {'key': 'gid', 'type': 'int'}, + 'ssh_private_key': {'key': 'sshPrivateKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(LinuxUserConfiguration, self).__init__(**kwargs) + self.uid = kwargs.get('uid', None) + self.gid = kwargs.get('gid', None) + self.ssh_private_key = kwargs.get('ssh_private_key', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration_py3.py new file mode 100644 index 00000000..cb35b4c4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/linux_user_configuration_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class LinuxUserConfiguration(Model): + """Properties used to create a user account on a Linux node. + + :param uid: The user ID of the user account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the uid. + :type uid: int + :param gid: The group ID for the user account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the gid. + :type gid: int + :param ssh_private_key: The SSH private key for the user account. The + private key must not be password protected. The private key is used to + automatically configure asymmetric-key based authentication for SSH + between nodes in a Linux pool when the pool's enableInterNodeCommunication + property is true (it is ignored if enableInterNodeCommunication is false). + It does this by placing the key pair into the user's .ssh directory. If + not specified, password-less SSH is not configured between nodes (no + modification of the user's .ssh directory is done). + :type ssh_private_key: str + """ + + _attribute_map = { + 'uid': {'key': 'uid', 'type': 'int'}, + 'gid': {'key': 'gid', 'type': 'int'}, + 'ssh_private_key': {'key': 'sshPrivateKey', 'type': 'str'}, + } + + def __init__(self, *, uid: int=None, gid: int=None, ssh_private_key: str=None, **kwargs) -> None: + super(LinuxUserConfiguration, self).__init__(**kwargs) + self.uid = uid + self.gid = gid + self.ssh_private_key = ssh_private_key diff --git a/azext/batch/_vendor/v4/azure/batch/models/metadata_item.py b/azext/batch/_vendor/v4/azure/batch/models/metadata_item.py new file mode 100644 index 00000000..d1d203e8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/metadata_item.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class MetadataItem(Model): + """A name-value pair associated with a Batch service resource. + + The Batch service does not assign any meaning to this metadata; it is + solely for the use of user code. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the metadata item. + :type name: str + :param value: Required. The value of the metadata item. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(MetadataItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/metadata_item_py3.py b/azext/batch/_vendor/v4/azure/batch/models/metadata_item_py3.py new file mode 100644 index 00000000..3d127cd1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/metadata_item_py3.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class MetadataItem(Model): + """A name-value pair associated with a Batch service resource. + + The Batch service does not assign any meaning to this metadata; it is + solely for the use of user code. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the metadata item. + :type name: str + :param value: Required. The value of the metadata item. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, name: str, value: str, **kwargs) -> None: + super(MetadataItem, self).__init__(**kwargs) + self.name = name + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings.py b/azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings.py new file mode 100644 index 00000000..1fad0897 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance task. + + Multi-instance tasks are commonly used to support MPI tasks. + + All required parameters must be populated in order to send to Azure. + + :param number_of_instances: The number of compute nodes required by the + task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: Required. The command line to run on all + the compute nodes to enable them to coordinate when the primary runs the + main task command. A typical coordination command line launches a + background service and verifies that the service is ready to process + inter-node messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the task working + directory, but instead are downloaded to the task root directory (one + directory above the working directory). There is a maximum size for the + list of resource files. When the max size is exceeded, the request will + fail and the response error code will be RequestEntityTooLarge. If this + occurs, the collection of ResourceFiles must be reduced in size. This can + be achieved using .zip files, Application Packages, or Docker Containers. + :type common_resource_files: list[~azure.batch.models.ResourceFile] + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ResourceFile]'}, + } + + def __init__(self, **kwargs): + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = kwargs.get('number_of_instances', None) + self.coordination_command_line = kwargs.get('coordination_command_line', None) + self.common_resource_files = kwargs.get('common_resource_files', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings_py3.py b/azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings_py3.py new file mode 100644 index 00000000..0ea3de8e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/multi_instance_settings_py3.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance task. + + Multi-instance tasks are commonly used to support MPI tasks. + + All required parameters must be populated in order to send to Azure. + + :param number_of_instances: The number of compute nodes required by the + task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: Required. The command line to run on all + the compute nodes to enable them to coordinate when the primary runs the + main task command. A typical coordination command line launches a + background service and verifies that the service is ready to process + inter-node messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the task working + directory, but instead are downloaded to the task root directory (one + directory above the working directory). There is a maximum size for the + list of resource files. When the max size is exceeded, the request will + fail and the response error code will be RequestEntityTooLarge. If this + occurs, the collection of ResourceFiles must be reduced in size. This can + be achieved using .zip files, Application Packages, or Docker Containers. + :type common_resource_files: list[~azure.batch.models.ResourceFile] + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ResourceFile]'}, + } + + def __init__(self, *, coordination_command_line: str, number_of_instances: int=None, common_resource_files=None, **kwargs) -> None: + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = number_of_instances + self.coordination_command_line = coordination_command_line + self.common_resource_files = common_resource_files diff --git a/azext/batch/_vendor/v4/azure/batch/models/name_value_pair.py b/azext/batch/_vendor/v4/azure/batch/models/name_value_pair.py new file mode 100644 index 00000000..d2775a33 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/name_value_pair.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NameValuePair(Model): + """Represents a name-value pair. + + :param name: The name in the name-value pair. + :type name: str + :param value: The value in the name-value pair. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(NameValuePair, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/name_value_pair_py3.py b/azext/batch/_vendor/v4/azure/batch/models/name_value_pair_py3.py new file mode 100644 index 00000000..9e508e56 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/name_value_pair_py3.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NameValuePair(Model): + """Represents a name-value pair. + + :param name: The name in the name-value pair. + :type name: str + :param value: The value in the name-value pair. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, value: str=None, **kwargs) -> None: + super(NameValuePair, self).__init__(**kwargs) + self.name = name + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/network_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/network_configuration.py new file mode 100644 index 00000000..2bb54a8e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/network_configuration.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NetworkConfiguration(Model): + """The network configuration for a pool. + + :param subnet_id: The ARM resource identifier of the virtual network + subnet which the compute nodes of the pool will join. This is of the form + /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. + The virtual network must be in the same region and subscription as the + Azure Batch account. The specified subnet should have enough free IP + addresses to accommodate the number of nodes in the pool. If the subnet + doesn't have enough free IP addresses, the pool will partially allocate + compute nodes, and a resize error will occur. The 'MicrosoftAzureBatch' + service principal must have the 'Classic Virtual Machine Contributor' + Role-Based Access Control (RBAC) role for the specified VNet. The + specified subnet must allow communication from the Azure Batch service to + be able to schedule tasks on the compute nodes. This can be verified by + checking if the specified VNet has any associated Network Security Groups + (NSG). If communication to the compute nodes in the specified subnet is + denied by an NSG, then the Batch service will set the state of the compute + nodes to unusable. For pools created with virtualMachineConfiguration only + ARM virtual networks ('Microsoft.Network/virtualNetworks') are supported, + but for pools created with cloudServiceConfiguration both ARM and classic + virtual networks are supported. If the specified VNet has any associated + Network Security Groups (NSG), then a few reserved system ports must be + enabled for inbound communication. For pools created with a virtual + machine configuration, enable ports 29876 and 29877, as well as port 22 + for Linux and port 3389 for Windows. For pools created with a cloud + service configuration, enable ports 10100, 20100, and 30100. Also enable + outbound connections to Azure Storage on port 443. For more details see: + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + :type subnet_id: str + :param endpoint_configuration: The configuration for endpoints on compute + nodes in the Batch pool. Pool endpoint configuration is only supported on + pools with the virtualMachineConfiguration property. + :type endpoint_configuration: + ~azure.batch.models.PoolEndpointConfiguration + """ + + _attribute_map = { + 'subnet_id': {'key': 'subnetId', 'type': 'str'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'PoolEndpointConfiguration'}, + } + + def __init__(self, **kwargs): + super(NetworkConfiguration, self).__init__(**kwargs) + self.subnet_id = kwargs.get('subnet_id', None) + self.endpoint_configuration = kwargs.get('endpoint_configuration', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/network_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/network_configuration_py3.py new file mode 100644 index 00000000..475d1adc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/network_configuration_py3.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NetworkConfiguration(Model): + """The network configuration for a pool. + + :param subnet_id: The ARM resource identifier of the virtual network + subnet which the compute nodes of the pool will join. This is of the form + /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. + The virtual network must be in the same region and subscription as the + Azure Batch account. The specified subnet should have enough free IP + addresses to accommodate the number of nodes in the pool. If the subnet + doesn't have enough free IP addresses, the pool will partially allocate + compute nodes, and a resize error will occur. The 'MicrosoftAzureBatch' + service principal must have the 'Classic Virtual Machine Contributor' + Role-Based Access Control (RBAC) role for the specified VNet. The + specified subnet must allow communication from the Azure Batch service to + be able to schedule tasks on the compute nodes. This can be verified by + checking if the specified VNet has any associated Network Security Groups + (NSG). If communication to the compute nodes in the specified subnet is + denied by an NSG, then the Batch service will set the state of the compute + nodes to unusable. For pools created with virtualMachineConfiguration only + ARM virtual networks ('Microsoft.Network/virtualNetworks') are supported, + but for pools created with cloudServiceConfiguration both ARM and classic + virtual networks are supported. If the specified VNet has any associated + Network Security Groups (NSG), then a few reserved system ports must be + enabled for inbound communication. For pools created with a virtual + machine configuration, enable ports 29876 and 29877, as well as port 22 + for Linux and port 3389 for Windows. For pools created with a cloud + service configuration, enable ports 10100, 20100, and 30100. Also enable + outbound connections to Azure Storage on port 443. For more details see: + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + :type subnet_id: str + :param endpoint_configuration: The configuration for endpoints on compute + nodes in the Batch pool. Pool endpoint configuration is only supported on + pools with the virtualMachineConfiguration property. + :type endpoint_configuration: + ~azure.batch.models.PoolEndpointConfiguration + """ + + _attribute_map = { + 'subnet_id': {'key': 'subnetId', 'type': 'str'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'PoolEndpointConfiguration'}, + } + + def __init__(self, *, subnet_id: str=None, endpoint_configuration=None, **kwargs) -> None: + super(NetworkConfiguration, self).__init__(**kwargs) + self.subnet_id = subnet_id + self.endpoint_configuration = endpoint_configuration diff --git a/azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule.py b/azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule.py new file mode 100644 index 00000000..569693bf --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule.py @@ -0,0 +1,55 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NetworkSecurityGroupRule(Model): + """A network security group rule to apply to an inbound endpoint. + + All required parameters must be populated in order to send to Azure. + + :param priority: Required. The priority for this rule. Priorities within a + pool must be unique and are evaluated in order of priority. The lower the + number the higher the priority. For example, rules could be specified with + order numbers of 150, 250, and 350. The rule with the order number of 150 + takes precedence over the rule that has an order of 250. Allowed + priorities are 150 to 3500. If any reserved or duplicate values are + provided the request fails with HTTP status code 400. + :type priority: int + :param access: Required. The action that should be taken for a specified + IP address, subnet range or tag. Possible values include: 'allow', 'deny' + :type access: str or ~azure.batch.models.NetworkSecurityGroupRuleAccess + :param source_address_prefix: Required. The source address prefix or tag + to match for the rule. Valid values are a single IP address (i.e. + 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all + addresses). If any other values are provided the request fails with HTTP + status code 400. + :type source_address_prefix: str + """ + + _validation = { + 'priority': {'required': True}, + 'access': {'required': True}, + 'source_address_prefix': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'access': {'key': 'access', 'type': 'NetworkSecurityGroupRuleAccess'}, + 'source_address_prefix': {'key': 'sourceAddressPrefix', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(NetworkSecurityGroupRule, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.access = kwargs.get('access', None) + self.source_address_prefix = kwargs.get('source_address_prefix', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule_py3.py b/azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule_py3.py new file mode 100644 index 00000000..9fec92ba --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/network_security_group_rule_py3.py @@ -0,0 +1,55 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NetworkSecurityGroupRule(Model): + """A network security group rule to apply to an inbound endpoint. + + All required parameters must be populated in order to send to Azure. + + :param priority: Required. The priority for this rule. Priorities within a + pool must be unique and are evaluated in order of priority. The lower the + number the higher the priority. For example, rules could be specified with + order numbers of 150, 250, and 350. The rule with the order number of 150 + takes precedence over the rule that has an order of 250. Allowed + priorities are 150 to 3500. If any reserved or duplicate values are + provided the request fails with HTTP status code 400. + :type priority: int + :param access: Required. The action that should be taken for a specified + IP address, subnet range or tag. Possible values include: 'allow', 'deny' + :type access: str or ~azure.batch.models.NetworkSecurityGroupRuleAccess + :param source_address_prefix: Required. The source address prefix or tag + to match for the rule. Valid values are a single IP address (i.e. + 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all + addresses). If any other values are provided the request fails with HTTP + status code 400. + :type source_address_prefix: str + """ + + _validation = { + 'priority': {'required': True}, + 'access': {'required': True}, + 'source_address_prefix': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'access': {'key': 'access', 'type': 'NetworkSecurityGroupRuleAccess'}, + 'source_address_prefix': {'key': 'sourceAddressPrefix', 'type': 'str'}, + } + + def __init__(self, *, priority: int, access, source_address_prefix: str, **kwargs) -> None: + super(NetworkSecurityGroupRule, self).__init__(**kwargs) + self.priority = priority + self.access = access + self.source_address_prefix = source_address_prefix diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_agent_information.py b/azext/batch/_vendor/v4/azure/batch/models/node_agent_information.py new file mode 100644 index 00000000..0d61a707 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_agent_information.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeAgentInformation(Model): + """Information about the node agent. + + The Batch node agent is a program that runs on each node in the pool and + provides Batch capability on the compute node. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of the Batch node agent running on + the compute node. This version number can be checked against the node + agent release notes located at + https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md. + :type version: str + :param last_update_time: Required. The time when the node agent was + updated on the compute node. This is the most recent time that the node + agent was updated to a new version. + :type last_update_time: datetime + """ + + _validation = { + 'version': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'version', 'type': 'str'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(NodeAgentInformation, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.last_update_time = kwargs.get('last_update_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_agent_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_agent_information_py3.py new file mode 100644 index 00000000..770e3ca5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_agent_information_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeAgentInformation(Model): + """Information about the node agent. + + The Batch node agent is a program that runs on each node in the pool and + provides Batch capability on the compute node. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of the Batch node agent running on + the compute node. This version number can be checked against the node + agent release notes located at + https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md. + :type version: str + :param last_update_time: Required. The time when the node agent was + updated on the compute node. This is the most recent time that the node + agent was updated to a new version. + :type last_update_time: datetime + """ + + _validation = { + 'version': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'version', 'type': 'str'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + } + + def __init__(self, *, version: str, last_update_time, **kwargs) -> None: + super(NodeAgentInformation, self).__init__(**kwargs) + self.version = version + self.last_update_time = last_update_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku.py b/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku.py new file mode 100644 index 00000000..dac567dd --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeAgentSku(Model): + """A node agent SKU supported by the Batch service. + + The Batch node agent is a program that runs on each node in the pool, and + provides the command-and-control interface between the node and the Batch + service. There are different implementations of the node agent, known as + SKUs, for different operating systems. + + :param id: The ID of the node agent SKU. + :type id: str + :param verified_image_references: The list of Azure Marketplace images + verified to be compatible with this node agent SKU. This collection is not + exhaustive (the node agent may be compatible with other images). + :type verified_image_references: list[~azure.batch.models.ImageReference] + :param os_type: The type of operating system (e.g. Windows or Linux) + compatible with the node agent SKU. Possible values include: 'linux', + 'windows' + :type os_type: str or ~azure.batch.models.OSType + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'verified_image_references': {'key': 'verifiedImageReferences', 'type': '[ImageReference]'}, + 'os_type': {'key': 'osType', 'type': 'OSType'}, + } + + def __init__(self, **kwargs): + super(NodeAgentSku, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.verified_image_references = kwargs.get('verified_image_references', None) + self.os_type = kwargs.get('os_type', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_paged.py b/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_paged.py new file mode 100644 index 00000000..020e753c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class NodeAgentSkuPaged(Paged): + """ + A paging container for iterating over a list of :class:`NodeAgentSku ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[NodeAgentSku]'} + } + + def __init__(self, *args, **kwargs): + + super(NodeAgentSkuPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_py3.py new file mode 100644 index 00000000..29475f40 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_agent_sku_py3.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeAgentSku(Model): + """A node agent SKU supported by the Batch service. + + The Batch node agent is a program that runs on each node in the pool, and + provides the command-and-control interface between the node and the Batch + service. There are different implementations of the node agent, known as + SKUs, for different operating systems. + + :param id: The ID of the node agent SKU. + :type id: str + :param verified_image_references: The list of Azure Marketplace images + verified to be compatible with this node agent SKU. This collection is not + exhaustive (the node agent may be compatible with other images). + :type verified_image_references: list[~azure.batch.models.ImageReference] + :param os_type: The type of operating system (e.g. Windows or Linux) + compatible with the node agent SKU. Possible values include: 'linux', + 'windows' + :type os_type: str or ~azure.batch.models.OSType + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'verified_image_references': {'key': 'verifiedImageReferences', 'type': '[ImageReference]'}, + 'os_type': {'key': 'osType', 'type': 'OSType'}, + } + + def __init__(self, *, id: str=None, verified_image_references=None, os_type=None, **kwargs) -> None: + super(NodeAgentSku, self).__init__(**kwargs) + self.id = id + self.verified_image_references = verified_image_references + self.os_type = os_type diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_counts.py b/azext/batch/_vendor/v4/azure/batch/models/node_counts.py new file mode 100644 index 00000000..de54c0c0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_counts.py @@ -0,0 +1,102 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeCounts(Model): + """The number of nodes in each node state. + + All required parameters must be populated in order to send to Azure. + + :param creating: Required. The number of nodes in the creating state. + :type creating: int + :param idle: Required. The number of nodes in the idle state. + :type idle: int + :param offline: Required. The number of nodes in the offline state. + :type offline: int + :param preempted: Required. The number of nodes in the preempted state. + :type preempted: int + :param rebooting: Required. The count of nodes in the rebooting state. + :type rebooting: int + :param reimaging: Required. The number of nodes in the reimaging state. + :type reimaging: int + :param running: Required. The number of nodes in the running state. + :type running: int + :param starting: Required. The number of nodes in the starting state. + :type starting: int + :param start_task_failed: Required. The number of nodes in the + startTaskFailed state. + :type start_task_failed: int + :param leaving_pool: Required. The number of nodes in the leavingPool + state. + :type leaving_pool: int + :param unknown: Required. The number of nodes in the unknown state. + :type unknown: int + :param unusable: Required. The number of nodes in the unusable state. + :type unusable: int + :param waiting_for_start_task: Required. The number of nodes in the + waitingForStartTask state. + :type waiting_for_start_task: int + :param total: Required. The total number of nodes. + :type total: int + """ + + _validation = { + 'creating': {'required': True}, + 'idle': {'required': True}, + 'offline': {'required': True}, + 'preempted': {'required': True}, + 'rebooting': {'required': True}, + 'reimaging': {'required': True}, + 'running': {'required': True}, + 'starting': {'required': True}, + 'start_task_failed': {'required': True}, + 'leaving_pool': {'required': True}, + 'unknown': {'required': True}, + 'unusable': {'required': True}, + 'waiting_for_start_task': {'required': True}, + 'total': {'required': True}, + } + + _attribute_map = { + 'creating': {'key': 'creating', 'type': 'int'}, + 'idle': {'key': 'idle', 'type': 'int'}, + 'offline': {'key': 'offline', 'type': 'int'}, + 'preempted': {'key': 'preempted', 'type': 'int'}, + 'rebooting': {'key': 'rebooting', 'type': 'int'}, + 'reimaging': {'key': 'reimaging', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'starting': {'key': 'starting', 'type': 'int'}, + 'start_task_failed': {'key': 'startTaskFailed', 'type': 'int'}, + 'leaving_pool': {'key': 'leavingPool', 'type': 'int'}, + 'unknown': {'key': 'unknown', 'type': 'int'}, + 'unusable': {'key': 'unusable', 'type': 'int'}, + 'waiting_for_start_task': {'key': 'waitingForStartTask', 'type': 'int'}, + 'total': {'key': 'total', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(NodeCounts, self).__init__(**kwargs) + self.creating = kwargs.get('creating', None) + self.idle = kwargs.get('idle', None) + self.offline = kwargs.get('offline', None) + self.preempted = kwargs.get('preempted', None) + self.rebooting = kwargs.get('rebooting', None) + self.reimaging = kwargs.get('reimaging', None) + self.running = kwargs.get('running', None) + self.starting = kwargs.get('starting', None) + self.start_task_failed = kwargs.get('start_task_failed', None) + self.leaving_pool = kwargs.get('leaving_pool', None) + self.unknown = kwargs.get('unknown', None) + self.unusable = kwargs.get('unusable', None) + self.waiting_for_start_task = kwargs.get('waiting_for_start_task', None) + self.total = kwargs.get('total', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_counts_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_counts_py3.py new file mode 100644 index 00000000..bfeca712 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_counts_py3.py @@ -0,0 +1,102 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeCounts(Model): + """The number of nodes in each node state. + + All required parameters must be populated in order to send to Azure. + + :param creating: Required. The number of nodes in the creating state. + :type creating: int + :param idle: Required. The number of nodes in the idle state. + :type idle: int + :param offline: Required. The number of nodes in the offline state. + :type offline: int + :param preempted: Required. The number of nodes in the preempted state. + :type preempted: int + :param rebooting: Required. The count of nodes in the rebooting state. + :type rebooting: int + :param reimaging: Required. The number of nodes in the reimaging state. + :type reimaging: int + :param running: Required. The number of nodes in the running state. + :type running: int + :param starting: Required. The number of nodes in the starting state. + :type starting: int + :param start_task_failed: Required. The number of nodes in the + startTaskFailed state. + :type start_task_failed: int + :param leaving_pool: Required. The number of nodes in the leavingPool + state. + :type leaving_pool: int + :param unknown: Required. The number of nodes in the unknown state. + :type unknown: int + :param unusable: Required. The number of nodes in the unusable state. + :type unusable: int + :param waiting_for_start_task: Required. The number of nodes in the + waitingForStartTask state. + :type waiting_for_start_task: int + :param total: Required. The total number of nodes. + :type total: int + """ + + _validation = { + 'creating': {'required': True}, + 'idle': {'required': True}, + 'offline': {'required': True}, + 'preempted': {'required': True}, + 'rebooting': {'required': True}, + 'reimaging': {'required': True}, + 'running': {'required': True}, + 'starting': {'required': True}, + 'start_task_failed': {'required': True}, + 'leaving_pool': {'required': True}, + 'unknown': {'required': True}, + 'unusable': {'required': True}, + 'waiting_for_start_task': {'required': True}, + 'total': {'required': True}, + } + + _attribute_map = { + 'creating': {'key': 'creating', 'type': 'int'}, + 'idle': {'key': 'idle', 'type': 'int'}, + 'offline': {'key': 'offline', 'type': 'int'}, + 'preempted': {'key': 'preempted', 'type': 'int'}, + 'rebooting': {'key': 'rebooting', 'type': 'int'}, + 'reimaging': {'key': 'reimaging', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'starting': {'key': 'starting', 'type': 'int'}, + 'start_task_failed': {'key': 'startTaskFailed', 'type': 'int'}, + 'leaving_pool': {'key': 'leavingPool', 'type': 'int'}, + 'unknown': {'key': 'unknown', 'type': 'int'}, + 'unusable': {'key': 'unusable', 'type': 'int'}, + 'waiting_for_start_task': {'key': 'waitingForStartTask', 'type': 'int'}, + 'total': {'key': 'total', 'type': 'int'}, + } + + def __init__(self, *, creating: int, idle: int, offline: int, preempted: int, rebooting: int, reimaging: int, running: int, starting: int, start_task_failed: int, leaving_pool: int, unknown: int, unusable: int, waiting_for_start_task: int, total: int, **kwargs) -> None: + super(NodeCounts, self).__init__(**kwargs) + self.creating = creating + self.idle = idle + self.offline = offline + self.preempted = preempted + self.rebooting = rebooting + self.reimaging = reimaging + self.running = running + self.starting = starting + self.start_task_failed = start_task_failed + self.leaving_pool = leaving_pool + self.unknown = unknown + self.unusable = unusable + self.waiting_for_start_task = waiting_for_start_task + self.total = total diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter.py new file mode 100644 index 00000000..e92b0262 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeDisableSchedulingParameter(Model): + """Options for disabling scheduling on a compute node. + + :param node_disable_scheduling_option: What to do with currently running + tasks when disabling task scheduling on the compute node. The default + value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion' + :type node_disable_scheduling_option: str or + ~azure.batch.models.DisableComputeNodeSchedulingOption + """ + + _attribute_map = { + 'node_disable_scheduling_option': {'key': 'nodeDisableSchedulingOption', 'type': 'DisableComputeNodeSchedulingOption'}, + } + + def __init__(self, **kwargs): + super(NodeDisableSchedulingParameter, self).__init__(**kwargs) + self.node_disable_scheduling_option = kwargs.get('node_disable_scheduling_option', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter_py3.py new file mode 100644 index 00000000..d6de68c5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_disable_scheduling_parameter_py3.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeDisableSchedulingParameter(Model): + """Options for disabling scheduling on a compute node. + + :param node_disable_scheduling_option: What to do with currently running + tasks when disabling task scheduling on the compute node. The default + value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion' + :type node_disable_scheduling_option: str or + ~azure.batch.models.DisableComputeNodeSchedulingOption + """ + + _attribute_map = { + 'node_disable_scheduling_option': {'key': 'nodeDisableSchedulingOption', 'type': 'DisableComputeNodeSchedulingOption'}, + } + + def __init__(self, *, node_disable_scheduling_option=None, **kwargs) -> None: + super(NodeDisableSchedulingParameter, self).__init__(**kwargs) + self.node_disable_scheduling_option = node_disable_scheduling_option diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_file.py b/azext/batch/_vendor/v4/azure/batch/models/node_file.py new file mode 100644 index 00000000..93fa29d6 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_file.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeFile(Model): + """Information about a file or directory on a compute node. + + :param name: The file path. + :type name: str + :param url: The URL of the file. + :type url: str + :param is_directory: Whether the object represents a directory. + :type is_directory: bool + :param properties: The file properties. + :type properties: ~azure.batch.models.FileProperties + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'is_directory': {'key': 'isDirectory', 'type': 'bool'}, + 'properties': {'key': 'properties', 'type': 'FileProperties'}, + } + + def __init__(self, **kwargs): + super(NodeFile, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.url = kwargs.get('url', None) + self.is_directory = kwargs.get('is_directory', None) + self.properties = kwargs.get('properties', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_file_paged.py b/azext/batch/_vendor/v4/azure/batch/models/node_file_paged.py new file mode 100644 index 00000000..4463c944 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_file_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class NodeFilePaged(Paged): + """ + A paging container for iterating over a list of :class:`NodeFile ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[NodeFile]'} + } + + def __init__(self, *args, **kwargs): + + super(NodeFilePaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_file_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_file_py3.py new file mode 100644 index 00000000..410f310d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_file_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeFile(Model): + """Information about a file or directory on a compute node. + + :param name: The file path. + :type name: str + :param url: The URL of the file. + :type url: str + :param is_directory: Whether the object represents a directory. + :type is_directory: bool + :param properties: The file properties. + :type properties: ~azure.batch.models.FileProperties + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'is_directory': {'key': 'isDirectory', 'type': 'bool'}, + 'properties': {'key': 'properties', 'type': 'FileProperties'}, + } + + def __init__(self, *, name: str=None, url: str=None, is_directory: bool=None, properties=None, **kwargs) -> None: + super(NodeFile, self).__init__(**kwargs) + self.name = name + self.url = url + self.is_directory = is_directory + self.properties = properties diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter.py new file mode 100644 index 00000000..10e13ad7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter.py @@ -0,0 +1,31 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeRebootParameter(Model): + """Options for rebooting a compute node. + + :param node_reboot_option: When to reboot the compute node and what to do + with currently running tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reboot_option: str or + ~azure.batch.models.ComputeNodeRebootOption + """ + + _attribute_map = { + 'node_reboot_option': {'key': 'nodeRebootOption', 'type': 'ComputeNodeRebootOption'}, + } + + def __init__(self, **kwargs): + super(NodeRebootParameter, self).__init__(**kwargs) + self.node_reboot_option = kwargs.get('node_reboot_option', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter_py3.py new file mode 100644 index 00000000..0c21c6d1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_reboot_parameter_py3.py @@ -0,0 +1,31 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeRebootParameter(Model): + """Options for rebooting a compute node. + + :param node_reboot_option: When to reboot the compute node and what to do + with currently running tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reboot_option: str or + ~azure.batch.models.ComputeNodeRebootOption + """ + + _attribute_map = { + 'node_reboot_option': {'key': 'nodeRebootOption', 'type': 'ComputeNodeRebootOption'}, + } + + def __init__(self, *, node_reboot_option=None, **kwargs) -> None: + super(NodeRebootParameter, self).__init__(**kwargs) + self.node_reboot_option = node_reboot_option diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter.py new file mode 100644 index 00000000..aa51f141 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter.py @@ -0,0 +1,31 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeReimageParameter(Model): + """Options for reimaging a compute node. + + :param node_reimage_option: When to reimage the compute node and what to + do with currently running tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reimage_option: str or + ~azure.batch.models.ComputeNodeReimageOption + """ + + _attribute_map = { + 'node_reimage_option': {'key': 'nodeReimageOption', 'type': 'ComputeNodeReimageOption'}, + } + + def __init__(self, **kwargs): + super(NodeReimageParameter, self).__init__(**kwargs) + self.node_reimage_option = kwargs.get('node_reimage_option', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter_py3.py new file mode 100644 index 00000000..7af39305 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_reimage_parameter_py3.py @@ -0,0 +1,31 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeReimageParameter(Model): + """Options for reimaging a compute node. + + :param node_reimage_option: When to reimage the compute node and what to + do with currently running tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reimage_option: str or + ~azure.batch.models.ComputeNodeReimageOption + """ + + _attribute_map = { + 'node_reimage_option': {'key': 'nodeReimageOption', 'type': 'ComputeNodeReimageOption'}, + } + + def __init__(self, *, node_reimage_option=None, **kwargs) -> None: + super(NodeReimageParameter, self).__init__(**kwargs) + self.node_reimage_option = node_reimage_option diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter.py new file mode 100644 index 00000000..f997671b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeRemoveParameter(Model): + """Options for removing compute nodes from a pool. + + All required parameters must be populated in order to send to Azure. + + :param node_list: Required. A list containing the IDs of the compute nodes + to be removed from the specified pool. + :type node_list: list[str] + :param resize_timeout: The timeout for removal of compute nodes to the + pool. The default value is 15 minutes. The minimum value is 5 minutes. If + you specify a value less than 5 minutes, the Batch service returns an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a node and its + running task(s) after it has been selected for deallocation. The default + value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _validation = { + 'node_list': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'node_list': {'key': 'nodeList', 'type': '[str]'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, **kwargs): + super(NodeRemoveParameter, self).__init__(**kwargs) + self.node_list = kwargs.get('node_list', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.node_deallocation_option = kwargs.get('node_deallocation_option', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter_py3.py new file mode 100644 index 00000000..b9dbbc4e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_remove_parameter_py3.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeRemoveParameter(Model): + """Options for removing compute nodes from a pool. + + All required parameters must be populated in order to send to Azure. + + :param node_list: Required. A list containing the IDs of the compute nodes + to be removed from the specified pool. + :type node_list: list[str] + :param resize_timeout: The timeout for removal of compute nodes to the + pool. The default value is 15 minutes. The minimum value is 5 minutes. If + you specify a value less than 5 minutes, the Batch service returns an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a node and its + running task(s) after it has been selected for deallocation. The default + value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _validation = { + 'node_list': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'node_list': {'key': 'nodeList', 'type': '[str]'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, *, node_list, resize_timeout=None, node_deallocation_option=None, **kwargs) -> None: + super(NodeRemoveParameter, self).__init__(**kwargs) + self.node_list = node_list + self.resize_timeout = resize_timeout + self.node_deallocation_option = node_deallocation_option diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter.py new file mode 100644 index 00000000..02df471c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeUpdateUserParameter(Model): + """The set of changes to be made to a user account on a node. + + :param password: The password of the account. The password is required for + Windows nodes (those created with 'cloudServiceConfiguration', or created + with 'virtualMachineConfiguration' using a Windows image reference). For + Linux compute nodes, the password can optionally be specified along with + the sshPublicKey property. If omitted, any existing password is removed. + :type password: str + :param expiry_time: The time at which the account should expire. If + omitted, the default is 1 day from the current time. For Linux compute + nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param ssh_public_key: The SSH public key that can be used for remote + login to the compute node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux nodes. If this is specified for a Windows node, + then the Batch service rejects the request; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). If omitted, any + existing SSH public key is removed. + :type ssh_public_key: str + """ + + _attribute_map = { + 'password': {'key': 'password', 'type': 'str'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(NodeUpdateUserParameter, self).__init__(**kwargs) + self.password = kwargs.get('password', None) + self.expiry_time = kwargs.get('expiry_time', None) + self.ssh_public_key = kwargs.get('ssh_public_key', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter_py3.py new file mode 100644 index 00000000..3ff93927 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/node_update_user_parameter_py3.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class NodeUpdateUserParameter(Model): + """The set of changes to be made to a user account on a node. + + :param password: The password of the account. The password is required for + Windows nodes (those created with 'cloudServiceConfiguration', or created + with 'virtualMachineConfiguration' using a Windows image reference). For + Linux compute nodes, the password can optionally be specified along with + the sshPublicKey property. If omitted, any existing password is removed. + :type password: str + :param expiry_time: The time at which the account should expire. If + omitted, the default is 1 day from the current time. For Linux compute + nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param ssh_public_key: The SSH public key that can be used for remote + login to the compute node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux nodes. If this is specified for a Windows node, + then the Batch service rejects the request; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). If omitted, any + existing SSH public key is removed. + :type ssh_public_key: str + """ + + _attribute_map = { + 'password': {'key': 'password', 'type': 'str'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, *, password: str=None, expiry_time=None, ssh_public_key: str=None, **kwargs) -> None: + super(NodeUpdateUserParameter, self).__init__(**kwargs) + self.password = password + self.expiry_time = expiry_time + self.ssh_public_key = ssh_public_key diff --git a/azext/batch/_vendor/v4/azure/batch/models/os_disk.py b/azext/batch/_vendor/v4/azure/batch/models/os_disk.py new file mode 100644 index 00000000..08916fa2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/os_disk.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OSDisk(Model): + """Settings for the operating system disk of the virtual machine. + + :param caching: The type of caching to enable for the OS disk. The default + value for caching is readwrite. For information about the caching options + see: + https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + Possible values include: 'none', 'readOnly', 'readWrite' + :type caching: str or ~azure.batch.models.CachingType + """ + + _attribute_map = { + 'caching': {'key': 'caching', 'type': 'CachingType'}, + } + + def __init__(self, **kwargs): + super(OSDisk, self).__init__(**kwargs) + self.caching = kwargs.get('caching', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/os_disk_py3.py b/azext/batch/_vendor/v4/azure/batch/models/os_disk_py3.py new file mode 100644 index 00000000..4780c4fa --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/os_disk_py3.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OSDisk(Model): + """Settings for the operating system disk of the virtual machine. + + :param caching: The type of caching to enable for the OS disk. The default + value for caching is readwrite. For information about the caching options + see: + https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + Possible values include: 'none', 'readOnly', 'readWrite' + :type caching: str or ~azure.batch.models.CachingType + """ + + _attribute_map = { + 'caching': {'key': 'caching', 'type': 'CachingType'}, + } + + def __init__(self, *, caching=None, **kwargs) -> None: + super(OSDisk, self).__init__(**kwargs) + self.caching = caching diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file.py b/azext/batch/_vendor/v4/azure/batch/models/output_file.py new file mode 100644 index 00000000..b16fa592 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file.py @@ -0,0 +1,63 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch node to another + location after the Batch service has finished executing the task process. + + All required parameters must be populated in order to send to Azure. + + :param file_pattern: Required. A pattern indicating which file(s) to + upload. Both relative and absolute paths are supported. Relative paths are + relative to the task working directory. The following wildcards are + supported: * matches 0 or more characters (for example pattern abc* would + match abc or abcdef), ** matches any directory, ? matches any single + character, [abc] matches one character in the brackets, and [a-c] matches + one character in the range. Brackets can include a negation to match any + character not specified (for example [!abc] matches any character but a, + b, or c). If a file name starts with "." it is ignored by default but may + be matched by specifying it explicitly (for example *.gif will not match + .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file + that does not start in '.' and ends with .txt in the task working + directory or any subdirectory. If the filename contains a wildcard + character it can be escaped using brackets (for example abc[*] would match + a file named abc*). Note that both \\ and / are treated as directory + separators on Windows, but only / is on Linux. Environment variables + (%var% on Windows or $var on Linux) are expanded prior to the pattern + being applied. + :type file_pattern: str + :param destination: Required. The destination for the output file(s). + :type destination: ~azure.batch.models.OutputFileDestination + :param upload_options: Required. Additional options for the upload + operation, including under what conditions to perform the upload. + :type upload_options: ~azure.batch.models.OutputFileUploadOptions + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'OutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, **kwargs): + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = kwargs.get('file_pattern', None) + self.destination = kwargs.get('destination', None) + self.upload_options = kwargs.get('upload_options', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination.py new file mode 100644 index 00000000..ee86a589 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileBlobContainerDestination(Model): + """Specifies a file upload destination within an Azure blob storage container. + + All required parameters must be populated in order to send to Azure. + + :param path: The destination blob or virtual directory within the Azure + Storage container. If filePattern refers to a specific file (i.e. contains + no wildcards), then path is the name of the blob to which to upload that + file. If filePattern contains one or more wildcards (and therefore may + match multiple files), then path is the name of the blob virtual directory + (which is prepended to each blob name) to which to upload the file(s). If + omitted, file(s) are uploaded to the root of the container with a blob + name matching their file name. + :type path: str + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the file(s). The URL must include a Shared + Access Signature (SAS) granting write permissions to the container. + :type container_url: str + """ + + _validation = { + 'container_url': {'required': True}, + } + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(OutputFileBlobContainerDestination, self).__init__(**kwargs) + self.path = kwargs.get('path', None) + self.container_url = kwargs.get('container_url', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination_py3.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination_py3.py new file mode 100644 index 00000000..3f0c9ce0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_blob_container_destination_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileBlobContainerDestination(Model): + """Specifies a file upload destination within an Azure blob storage container. + + All required parameters must be populated in order to send to Azure. + + :param path: The destination blob or virtual directory within the Azure + Storage container. If filePattern refers to a specific file (i.e. contains + no wildcards), then path is the name of the blob to which to upload that + file. If filePattern contains one or more wildcards (and therefore may + match multiple files), then path is the name of the blob virtual directory + (which is prepended to each blob name) to which to upload the file(s). If + omitted, file(s) are uploaded to the root of the container with a blob + name matching their file name. + :type path: str + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the file(s). The URL must include a Shared + Access Signature (SAS) granting write permissions to the container. + :type container_url: str + """ + + _validation = { + 'container_url': {'required': True}, + } + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + } + + def __init__(self, *, container_url: str, path: str=None, **kwargs) -> None: + super(OutputFileBlobContainerDestination, self).__init__(**kwargs) + self.path = path + self.container_url = container_url diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_destination.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_destination.py new file mode 100644 index 00000000..1033743c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_destination.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileDestination(Model): + """The destination to which a file should be uploaded. + + :param container: A location in Azure blob storage to which files are + uploaded. + :type container: ~azure.batch.models.OutputFileBlobContainerDestination + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + } + + def __init__(self, **kwargs): + super(OutputFileDestination, self).__init__(**kwargs) + self.container = kwargs.get('container', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_destination_py3.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_destination_py3.py new file mode 100644 index 00000000..e7c652b6 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_destination_py3.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileDestination(Model): + """The destination to which a file should be uploaded. + + :param container: A location in Azure blob storage to which files are + uploaded. + :type container: ~azure.batch.models.OutputFileBlobContainerDestination + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + } + + def __init__(self, *, container=None, **kwargs) -> None: + super(OutputFileDestination, self).__init__(**kwargs) + self.container = container diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_py3.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_py3.py new file mode 100644 index 00000000..fee0d502 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_py3.py @@ -0,0 +1,63 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch node to another + location after the Batch service has finished executing the task process. + + All required parameters must be populated in order to send to Azure. + + :param file_pattern: Required. A pattern indicating which file(s) to + upload. Both relative and absolute paths are supported. Relative paths are + relative to the task working directory. The following wildcards are + supported: * matches 0 or more characters (for example pattern abc* would + match abc or abcdef), ** matches any directory, ? matches any single + character, [abc] matches one character in the brackets, and [a-c] matches + one character in the range. Brackets can include a negation to match any + character not specified (for example [!abc] matches any character but a, + b, or c). If a file name starts with "." it is ignored by default but may + be matched by specifying it explicitly (for example *.gif will not match + .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file + that does not start in '.' and ends with .txt in the task working + directory or any subdirectory. If the filename contains a wildcard + character it can be escaped using brackets (for example abc[*] would match + a file named abc*). Note that both \\ and / are treated as directory + separators on Windows, but only / is on Linux. Environment variables + (%var% on Windows or $var on Linux) are expanded prior to the pattern + being applied. + :type file_pattern: str + :param destination: Required. The destination for the output file(s). + :type destination: ~azure.batch.models.OutputFileDestination + :param upload_options: Required. Additional options for the upload + operation, including under what conditions to perform the upload. + :type upload_options: ~azure.batch.models.OutputFileUploadOptions + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'OutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, *, file_pattern: str, destination, upload_options, **kwargs) -> None: + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = file_pattern + self.destination = destination + self.upload_options = upload_options diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options.py new file mode 100644 index 00000000..c626a355 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileUploadOptions(Model): + """Details about an output file upload operation, including under what + conditions to perform the upload. + + All required parameters must be populated in order to send to Azure. + + :param upload_condition: Required. The conditions under which the task + output file or set of files should be uploaded. The default is + taskcompletion. Possible values include: 'taskSuccess', 'taskFailure', + 'taskCompletion' + :type upload_condition: str or + ~azure.batch.models.OutputFileUploadCondition + """ + + _validation = { + 'upload_condition': {'required': True}, + } + + _attribute_map = { + 'upload_condition': {'key': 'uploadCondition', 'type': 'OutputFileUploadCondition'}, + } + + def __init__(self, **kwargs): + super(OutputFileUploadOptions, self).__init__(**kwargs) + self.upload_condition = kwargs.get('upload_condition', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options_py3.py new file mode 100644 index 00000000..628d8794 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/output_file_upload_options_py3.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OutputFileUploadOptions(Model): + """Details about an output file upload operation, including under what + conditions to perform the upload. + + All required parameters must be populated in order to send to Azure. + + :param upload_condition: Required. The conditions under which the task + output file or set of files should be uploaded. The default is + taskcompletion. Possible values include: 'taskSuccess', 'taskFailure', + 'taskCompletion' + :type upload_condition: str or + ~azure.batch.models.OutputFileUploadCondition + """ + + _validation = { + 'upload_condition': {'required': True}, + } + + _attribute_map = { + 'upload_condition': {'key': 'uploadCondition', 'type': 'OutputFileUploadCondition'}, + } + + def __init__(self, *, upload_condition, **kwargs) -> None: + super(OutputFileUploadOptions, self).__init__(**kwargs) + self.upload_condition = upload_condition diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_add_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_add_options.py new file mode 100644 index 00000000..04d968a8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_add_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_add_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_add_options_py3.py new file mode 100644 index 00000000..62b3e62b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_add_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter.py new file mode 100644 index 00000000..7d21c67b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter.py @@ -0,0 +1,197 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolAddParameter(Model): + """A pool in the Azure Batch service to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the pool within the + account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two pool IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of virtual machines in the pool. All + virtual machines in a pool are the same size. For information about + available sizes of virtual machines for Cloud Services pools (pools + created with cloudServiceConfiguration), see Sizes for Cloud Services + (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale compute nodes in an Azure Batch pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A task specified to run on each compute node as it + joins the pool. The task runs when the node is added to the pool or when + the node is restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.vm_size = kwargs.get('vm_size', None) + self.cloud_service_configuration = kwargs.get('cloud_service_configuration', None) + self.virtual_machine_configuration = kwargs.get('virtual_machine_configuration', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.enable_auto_scale = kwargs.get('enable_auto_scale', None) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + self.enable_inter_node_communication = kwargs.get('enable_inter_node_communication', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.application_licenses = kwargs.get('application_licenses', None) + self.max_tasks_per_node = kwargs.get('max_tasks_per_node', None) + self.task_scheduling_policy = kwargs.get('task_scheduling_policy', None) + self.user_accounts = kwargs.get('user_accounts', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter_py3.py new file mode 100644 index 00000000..170963fa --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_add_parameter_py3.py @@ -0,0 +1,197 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolAddParameter(Model): + """A pool in the Azure Batch service to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the pool within the + account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two pool IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of virtual machines in the pool. All + virtual machines in a pool are the same size. For information about + available sizes of virtual machines for Cloud Services pools (pools + created with cloudServiceConfiguration), see Sizes for Cloud Services + (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale compute nodes in an Azure Batch pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A task specified to run on each compute node as it + joins the pool. The task runs when the node is added to the pool or when + the node is restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, id: str, vm_size: str, display_name: str=None, cloud_service_configuration=None, virtual_machine_configuration=None, resize_timeout=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, certificate_references=None, application_package_references=None, application_licenses=None, max_tasks_per_node: int=None, task_scheduling_policy=None, user_accounts=None, metadata=None, **kwargs) -> None: + super(PoolAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.vm_size = vm_size + self.cloud_service_configuration = cloud_service_configuration + self.virtual_machine_configuration = virtual_machine_configuration + self.resize_timeout = resize_timeout + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.enable_auto_scale = enable_auto_scale + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + self.enable_inter_node_communication = enable_inter_node_communication + self.network_configuration = network_configuration + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.application_licenses = application_licenses + self.max_tasks_per_node = max_tasks_per_node + self.task_scheduling_policy = task_scheduling_policy + self.user_accounts = user_accounts + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_delete_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_delete_options.py new file mode 100644 index 00000000..622241dc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_delete_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_delete_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_delete_options_py3.py new file mode 100644 index 00000000..7ca41443 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_delete_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options.py new file mode 100644 index 00000000..96b0bc7c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolDisableAutoScaleOptions(Model): + """Additional parameters for disable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolDisableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options_py3.py new file mode 100644 index 00000000..4a069bd0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_disable_auto_scale_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolDisableAutoScaleOptions(Model): + """Additional parameters for disable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolDisableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options.py new file mode 100644 index 00000000..dd77582f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEnableAutoScaleOptions(Model): + """Additional parameters for enable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolEnableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options_py3.py new file mode 100644 index 00000000..507bd702 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEnableAutoScaleOptions(Model): + """Additional parameters for enable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolEnableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter.py new file mode 100644 index 00000000..793c71c5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEnableAutoScaleParameter(Model): + """Options for enabling automatic scaling on a pool. + + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. The formula is checked for validity before it is + applied to the pool. If the formula is not valid, the Batch service + rejects the request with detailed error information. For more information + about specifying this formula, see Automatically scale compute nodes in an + Azure Batch pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). If you specify a new interval, + then the existing autoscale evaluation schedule will be stopped and a new + autoscale evaluation schedule will be started, with its starting time + being the time when this request was issued. + :type auto_scale_evaluation_interval: timedelta + """ + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(PoolEnableAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter_py3.py new file mode 100644 index 00000000..1c0019e4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_enable_auto_scale_parameter_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEnableAutoScaleParameter(Model): + """Options for enabling automatic scaling on a pool. + + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. The formula is checked for validity before it is + applied to the pool. If the formula is not valid, the Batch service + rejects the request with detailed error information. For more information + about specifying this formula, see Automatically scale compute nodes in an + Azure Batch pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). If you specify a new interval, + then the existing autoscale evaluation schedule will be stopped and a new + autoscale evaluation schedule will be started, with its starting time + being the time when this request was issued. + :type auto_scale_evaluation_interval: timedelta + """ + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + } + + def __init__(self, *, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, **kwargs) -> None: + super(PoolEnableAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration.py new file mode 100644 index 00000000..97859ff2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration.py @@ -0,0 +1,38 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEndpointConfiguration(Model): + """The endpoint configuration for a pool. + + All required parameters must be populated in order to send to Azure. + + :param inbound_nat_pools: Required. A list of inbound NAT pools that can + be used to address specific ports on an individual compute node + externally. The maximum number of inbound NAT pools per Batch pool is 5. + If the maximum number of inbound NAT pools is exceeded the request fails + with HTTP status code 400. + :type inbound_nat_pools: list[~azure.batch.models.InboundNATPool] + """ + + _validation = { + 'inbound_nat_pools': {'required': True}, + } + + _attribute_map = { + 'inbound_nat_pools': {'key': 'inboundNATPools', 'type': '[InboundNATPool]'}, + } + + def __init__(self, **kwargs): + super(PoolEndpointConfiguration, self).__init__(**kwargs) + self.inbound_nat_pools = kwargs.get('inbound_nat_pools', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration_py3.py new file mode 100644 index 00000000..95788b53 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_endpoint_configuration_py3.py @@ -0,0 +1,38 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEndpointConfiguration(Model): + """The endpoint configuration for a pool. + + All required parameters must be populated in order to send to Azure. + + :param inbound_nat_pools: Required. A list of inbound NAT pools that can + be used to address specific ports on an individual compute node + externally. The maximum number of inbound NAT pools per Batch pool is 5. + If the maximum number of inbound NAT pools is exceeded the request fails + with HTTP status code 400. + :type inbound_nat_pools: list[~azure.batch.models.InboundNATPool] + """ + + _validation = { + 'inbound_nat_pools': {'required': True}, + } + + _attribute_map = { + 'inbound_nat_pools': {'key': 'inboundNATPools', 'type': '[InboundNATPool]'}, + } + + def __init__(self, *, inbound_nat_pools, **kwargs) -> None: + super(PoolEndpointConfiguration, self).__init__(**kwargs) + self.inbound_nat_pools = inbound_nat_pools diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options.py new file mode 100644 index 00000000..5fbb7ad3 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEvaluateAutoScaleOptions(Model): + """Additional parameters for evaluate_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolEvaluateAutoScaleOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options_py3.py new file mode 100644 index 00000000..a2f09b9d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEvaluateAutoScaleOptions(Model): + """Additional parameters for evaluate_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolEvaluateAutoScaleOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter.py new file mode 100644 index 00000000..c74cfac2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEvaluateAutoScaleParameter(Model): + """Options for evaluating an automatic scaling formula on a pool. + + All required parameters must be populated in order to send to Azure. + + :param auto_scale_formula: Required. The formula for the desired number of + compute nodes in the pool. The formula is validated and its results + calculated, but it is not applied to the pool. To apply the formula to the + pool, 'Enable automatic scaling on a pool'. For more information about + specifying this formula, see Automatically scale compute nodes in an Azure + Batch pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + """ + + _validation = { + 'auto_scale_formula': {'required': True}, + } + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PoolEvaluateAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter_py3.py new file mode 100644 index 00000000..5102b28e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_evaluate_auto_scale_parameter_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolEvaluateAutoScaleParameter(Model): + """Options for evaluating an automatic scaling formula on a pool. + + All required parameters must be populated in order to send to Azure. + + :param auto_scale_formula: Required. The formula for the desired number of + compute nodes in the pool. The formula is validated and its results + calculated, but it is not applied to the pool. To apply the formula to the + pool, 'Enable automatic scaling on a pool'. For more information about + specifying this formula, see Automatically scale compute nodes in an Azure + Batch pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + """ + + _validation = { + 'auto_scale_formula': {'required': True}, + } + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + } + + def __init__(self, *, auto_scale_formula: str, **kwargs) -> None: + super(PoolEvaluateAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = auto_scale_formula diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_exists_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_exists_options.py new file mode 100644 index 00000000..feffd1c9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_exists_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolExistsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_exists_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_exists_options_py3.py new file mode 100644 index 00000000..de152edb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_exists_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolExistsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options.py new file mode 100644 index 00000000..dbbbcf45 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options_py3.py new file mode 100644 index 00000000..0fc18020 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_get_all_lifetime_statistics_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_get_options.py new file mode 100644 index 00000000..a629c21e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_get_options.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_get_options_py3.py new file mode 100644 index 00000000..c0b04bd5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_get_options_py3.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_information.py b/azext/batch/_vendor/v4/azure/batch/models/pool_information.py new file mode 100644 index 00000000..132e32bb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_information.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolInformation(Model): + """Specifies how a job should be assigned to a pool. + + :param pool_id: The ID of an existing pool. All the tasks of the job will + run on the specified pool. You must ensure that the pool referenced by + this property exists. If the pool does not exist at the time the Batch + service tries to schedule a job, no tasks for the job will run until you + create a pool with that id. Note that the Batch service will not reject + the job request; it will simply not run tasks until the pool exists. You + must specify either the pool ID or the auto pool specification, but not + both. + :type pool_id: str + :param auto_pool_specification: Characteristics for a temporary 'auto + pool'. The Batch service will create this auto pool when the job is + submitted. If auto pool creation fails, the Batch service moves the job to + a completed state, and the pool creation error is set in the job's + scheduling error property. The Batch service manages the lifetime (both + creation and, unless keepAlive is specified, deletion) of the auto pool. + Any user actions that affect the lifetime of the auto pool while the job + is active will result in unexpected behavior. You must specify either the + pool ID or the auto pool specification, but not both. + :type auto_pool_specification: ~azure.batch.models.AutoPoolSpecification + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'auto_pool_specification': {'key': 'autoPoolSpecification', 'type': 'AutoPoolSpecification'}, + } + + def __init__(self, **kwargs): + super(PoolInformation, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.auto_pool_specification = kwargs.get('auto_pool_specification', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_information_py3.py new file mode 100644 index 00000000..6fc8d2ce --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_information_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolInformation(Model): + """Specifies how a job should be assigned to a pool. + + :param pool_id: The ID of an existing pool. All the tasks of the job will + run on the specified pool. You must ensure that the pool referenced by + this property exists. If the pool does not exist at the time the Batch + service tries to schedule a job, no tasks for the job will run until you + create a pool with that id. Note that the Batch service will not reject + the job request; it will simply not run tasks until the pool exists. You + must specify either the pool ID or the auto pool specification, but not + both. + :type pool_id: str + :param auto_pool_specification: Characteristics for a temporary 'auto + pool'. The Batch service will create this auto pool when the job is + submitted. If auto pool creation fails, the Batch service moves the job to + a completed state, and the pool creation error is set in the job's + scheduling error property. The Batch service manages the lifetime (both + creation and, unless keepAlive is specified, deletion) of the auto pool. + Any user actions that affect the lifetime of the auto pool while the job + is active will result in unexpected behavior. You must specify either the + pool ID or the auto pool specification, but not both. + :type auto_pool_specification: ~azure.batch.models.AutoPoolSpecification + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'auto_pool_specification': {'key': 'autoPoolSpecification', 'type': 'AutoPoolSpecification'}, + } + + def __init__(self, *, pool_id: str=None, auto_pool_specification=None, **kwargs) -> None: + super(PoolInformation, self).__init__(**kwargs) + self.pool_id = pool_id + self.auto_pool_specification = auto_pool_specification diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_list_options.py new file mode 100644 index 00000000..1b37afe6 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_list_options.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 pools can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_list_options_py3.py new file mode 100644 index 00000000..5cc33a41 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_list_options_py3.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 pools can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options.py new file mode 100644 index 00000000..5b52f71a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolListUsageMetricsOptions(Model): + """Additional parameters for list_usage_metrics operation. + + :param start_time: The earliest time from which to include metrics. This + must be at least two and a half hours before the current time. If not + specified this defaults to the start time of the last aggregation interval + currently available. + :type start_time: datetime + :param end_time: The latest time from which to include metrics. This must + be at least two hours before the current time. If not specified this + defaults to the end time of the last aggregation interval currently + available. + :type end_time: datetime + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'start_time': {'key': '', 'type': 'iso-8601'}, + 'end_time': {'key': '', 'type': 'iso-8601'}, + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolListUsageMetricsOptions, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options_py3.py new file mode 100644 index 00000000..2141cfa5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_list_usage_metrics_options_py3.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolListUsageMetricsOptions(Model): + """Additional parameters for list_usage_metrics operation. + + :param start_time: The earliest time from which to include metrics. This + must be at least two and a half hours before the current time. If not + specified this defaults to the start time of the last aggregation interval + currently available. + :type start_time: datetime + :param end_time: The latest time from which to include metrics. This must + be at least two hours before the current time. If not specified this + defaults to the end time of the last aggregation interval currently + available. + :type end_time: datetime + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'start_time': {'key': '', 'type': 'iso-8601'}, + 'end_time': {'key': '', 'type': 'iso-8601'}, + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, start_time=None, end_time=None, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolListUsageMetricsOptions, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts.py b/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts.py new file mode 100644 index 00000000..0430b0af --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolNodeCounts(Model): + """The number of nodes in each state for a pool. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the pool. + :type pool_id: str + :param dedicated: The number of dedicated nodes in each state. + :type dedicated: ~azure.batch.models.NodeCounts + :param low_priority: The number of low priority nodes in each state. + :type low_priority: ~azure.batch.models.NodeCounts + """ + + _validation = { + 'pool_id': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'dedicated': {'key': 'dedicated', 'type': 'NodeCounts'}, + 'low_priority': {'key': 'lowPriority', 'type': 'NodeCounts'}, + } + + def __init__(self, **kwargs): + super(PoolNodeCounts, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.dedicated = kwargs.get('dedicated', None) + self.low_priority = kwargs.get('low_priority', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_paged.py b/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_paged.py new file mode 100644 index 00000000..67159e5d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class PoolNodeCountsPaged(Paged): + """ + A paging container for iterating over a list of :class:`PoolNodeCounts ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PoolNodeCounts]'} + } + + def __init__(self, *args, **kwargs): + + super(PoolNodeCountsPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_py3.py new file mode 100644 index 00000000..63ef0824 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_node_counts_py3.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolNodeCounts(Model): + """The number of nodes in each state for a pool. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the pool. + :type pool_id: str + :param dedicated: The number of dedicated nodes in each state. + :type dedicated: ~azure.batch.models.NodeCounts + :param low_priority: The number of low priority nodes in each state. + :type low_priority: ~azure.batch.models.NodeCounts + """ + + _validation = { + 'pool_id': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'dedicated': {'key': 'dedicated', 'type': 'NodeCounts'}, + 'low_priority': {'key': 'lowPriority', 'type': 'NodeCounts'}, + } + + def __init__(self, *, pool_id: str, dedicated=None, low_priority=None, **kwargs) -> None: + super(PoolNodeCounts, self).__init__(**kwargs) + self.pool_id = pool_id + self.dedicated = dedicated + self.low_priority = low_priority diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_patch_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_options.py new file mode 100644 index 00000000..82b54aef --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolPatchOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_patch_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_options_py3.py new file mode 100644 index 00000000..ff9f10f0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolPatchOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter.py new file mode 100644 index 00000000..b78ca496 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter.py @@ -0,0 +1,66 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolPatchParameter(Model): + """The set of changes to be made to a pool. + + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. If this element is present, it overwrites any existing start + task. If omitted, any existing start task is left unchanged. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. If this element is present, it replaces any + existing certificate references configured on the pool. If omitted, any + existing certificate references are left unchanged. For Windows compute + nodes, the Batch service installs the certificates to the specified + certificate store and location. For Linux compute nodes, the certificates + are stored in a directory inside the task working directory and an + environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to + query for this location. For certificates with visibility of 'remoteUser', + a 'certs' directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: A list of application packages to + be installed on each compute node in the pool. Changes to application + package references affect all new compute nodes joining the pool, but do + not affect compute nodes that are already in the pool until they are + rebooted or reimaged. If this element is present, it replaces any existing + application package references. If you specify an empty collection, then + all application package references are removed from the pool. If omitted, + any existing application package references are left unchanged. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: A list of name-value pairs associated with the pool as + metadata. If this element is present, it replaces any existing metadata + configured on the pool. If you specify an empty collection, any metadata + is removed from the pool. If omitted, any existing metadata is left + unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolPatchParameter, self).__init__(**kwargs) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter_py3.py new file mode 100644 index 00000000..6fb389e8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_patch_parameter_py3.py @@ -0,0 +1,66 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolPatchParameter(Model): + """The set of changes to be made to a pool. + + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. If this element is present, it overwrites any existing start + task. If omitted, any existing start task is left unchanged. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. If this element is present, it replaces any + existing certificate references configured on the pool. If omitted, any + existing certificate references are left unchanged. For Windows compute + nodes, the Batch service installs the certificates to the specified + certificate store and location. For Linux compute nodes, the certificates + are stored in a directory inside the task working directory and an + environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to + query for this location. For certificates with visibility of 'remoteUser', + a 'certs' directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: A list of application packages to + be installed on each compute node in the pool. Changes to application + package references affect all new compute nodes joining the pool, but do + not affect compute nodes that are already in the pool until they are + rebooted or reimaged. If this element is present, it replaces any existing + application package references. If you specify an empty collection, then + all application package references are removed from the pool. If omitted, + any existing application package references are left unchanged. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: A list of name-value pairs associated with the pool as + metadata. If this element is present, it replaces any existing metadata + configured on the pool. If you specify an empty collection, any metadata + is removed from the pool. If omitted, any existing metadata is left + unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, start_task=None, certificate_references=None, application_package_references=None, metadata=None, **kwargs) -> None: + super(PoolPatchParameter, self).__init__(**kwargs) + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options.py new file mode 100644 index 00000000..14be8ddd --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolRemoveNodesOptions(Model): + """Additional parameters for remove_nodes operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolRemoveNodesOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options_py3.py new file mode 100644 index 00000000..1fe5eb97 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_remove_nodes_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolRemoveNodesOptions(Model): + """Additional parameters for remove_nodes operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolRemoveNodesOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_resize_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_options.py new file mode 100644 index 00000000..e83a7ccc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolResizeOptions(Model): + """Additional parameters for resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolResizeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_resize_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_options_py3.py new file mode 100644 index 00000000..ef457e81 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolResizeOptions(Model): + """Additional parameters for resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolResizeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter.py new file mode 100644 index 00000000..e37a88c8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolResizeParameter(Model): + """Options for changing the size of a pool. + + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. + :type target_low_priority_nodes: int + :param resize_timeout: The timeout for allocation of compute nodes to the + pool or removal of compute nodes from the pool. The default value is 15 + minutes. The minimum value is 5 minutes. If you specify a value less than + 5 minutes, the Batch service returns an error; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a node and its + running task(s) if the pool size is decreasing. The default value is + requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _attribute_map = { + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, **kwargs): + super(PoolResizeParameter, self).__init__(**kwargs) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.node_deallocation_option = kwargs.get('node_deallocation_option', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter_py3.py new file mode 100644 index 00000000..6aff469f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_resize_parameter_py3.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolResizeParameter(Model): + """Options for changing the size of a pool. + + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. + :type target_low_priority_nodes: int + :param resize_timeout: The timeout for allocation of compute nodes to the + pool or removal of compute nodes from the pool. The default value is 15 + minutes. The minimum value is 5 minutes. If you specify a value less than + 5 minutes, the Batch service returns an error; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a node and its + running task(s) if the pool size is decreasing. The default value is + requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _attribute_map = { + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, *, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, resize_timeout=None, node_deallocation_option=None, **kwargs) -> None: + super(PoolResizeParameter, self).__init__(**kwargs) + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.resize_timeout = resize_timeout + self.node_deallocation_option = node_deallocation_option diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_specification.py b/azext/batch/_vendor/v4/azure/batch/models/pool_specification.py new file mode 100644 index 00000000..465157cb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_specification.py @@ -0,0 +1,186 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolSpecification(Model): + """Specification for creating a new pool. + + All required parameters must be populated in order to send to Azure. + + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of the virtual machines in the pool. + All virtual machines in a pool are the same size. For information about + available sizes of virtual machines in pools, see Choose a VM size for + compute nodes in an Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property must be specified if the pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property must be specified if the pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + element is required. The pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. The permitted licenses available on the pool are + 'maya', 'vray', '3dsmax', 'arnold'. An additional charge applies for each + application license added to the pool. + :type application_licenses: list[str] + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolSpecification, self).__init__(**kwargs) + self.display_name = kwargs.get('display_name', None) + self.vm_size = kwargs.get('vm_size', None) + self.cloud_service_configuration = kwargs.get('cloud_service_configuration', None) + self.virtual_machine_configuration = kwargs.get('virtual_machine_configuration', None) + self.max_tasks_per_node = kwargs.get('max_tasks_per_node', None) + self.task_scheduling_policy = kwargs.get('task_scheduling_policy', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.enable_auto_scale = kwargs.get('enable_auto_scale', None) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + self.enable_inter_node_communication = kwargs.get('enable_inter_node_communication', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.application_licenses = kwargs.get('application_licenses', None) + self.user_accounts = kwargs.get('user_accounts', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_specification_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_specification_py3.py new file mode 100644 index 00000000..7f758752 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_specification_py3.py @@ -0,0 +1,186 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolSpecification(Model): + """Specification for creating a new pool. + + All required parameters must be populated in order to send to Azure. + + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of the virtual machines in the pool. + All virtual machines in a pool are the same size. For information about + available sizes of virtual machines in pools, see Choose a VM size for + compute nodes in an Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property must be specified if the pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property must be specified if the pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + element is required. The pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. The permitted licenses available on the pool are + 'maya', 'vray', '3dsmax', 'arnold'. An additional charge applies for each + application license added to the pool. + :type application_licenses: list[str] + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, vm_size: str, display_name: str=None, cloud_service_configuration=None, virtual_machine_configuration=None, max_tasks_per_node: int=None, task_scheduling_policy=None, resize_timeout=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, certificate_references=None, application_package_references=None, application_licenses=None, user_accounts=None, metadata=None, **kwargs) -> None: + super(PoolSpecification, self).__init__(**kwargs) + self.display_name = display_name + self.vm_size = vm_size + self.cloud_service_configuration = cloud_service_configuration + self.virtual_machine_configuration = virtual_machine_configuration + self.max_tasks_per_node = max_tasks_per_node + self.task_scheduling_policy = task_scheduling_policy + self.resize_timeout = resize_timeout + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.enable_auto_scale = enable_auto_scale + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + self.enable_inter_node_communication = enable_inter_node_communication + self.network_configuration = network_configuration + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.application_licenses = application_licenses + self.user_accounts = user_accounts + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_statistics.py b/azext/batch/_vendor/v4/azure/batch/models/pool_statistics.py new file mode 100644 index 00000000..297e40d5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_statistics.py @@ -0,0 +1,58 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolStatistics(Model): + """Contains utilization and resource usage statistics for the lifetime of a + pool. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL for the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param usage_stats: Statistics related to pool usage, such as the amount + of core-time used. + :type usage_stats: ~azure.batch.models.UsageStatistics + :param resource_stats: Statistics related to resource consumption by + compute nodes in the pool. + :type resource_stats: ~azure.batch.models.ResourceStatistics + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'usage_stats': {'key': 'usageStats', 'type': 'UsageStatistics'}, + 'resource_stats': {'key': 'resourceStats', 'type': 'ResourceStatistics'}, + } + + def __init__(self, **kwargs): + super(PoolStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.usage_stats = kwargs.get('usage_stats', None) + self.resource_stats = kwargs.get('resource_stats', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_statistics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_statistics_py3.py new file mode 100644 index 00000000..f79e93b8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_statistics_py3.py @@ -0,0 +1,58 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolStatistics(Model): + """Contains utilization and resource usage statistics for the lifetime of a + pool. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL for the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param usage_stats: Statistics related to pool usage, such as the amount + of core-time used. + :type usage_stats: ~azure.batch.models.UsageStatistics + :param resource_stats: Statistics related to resource consumption by + compute nodes in the pool. + :type resource_stats: ~azure.batch.models.ResourceStatistics + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'usage_stats': {'key': 'usageStats', 'type': 'UsageStatistics'}, + 'resource_stats': {'key': 'resourceStats', 'type': 'ResourceStatistics'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, usage_stats=None, resource_stats=None, **kwargs) -> None: + super(PoolStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.usage_stats = usage_stats + self.resource_stats = resource_stats diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options.py new file mode 100644 index 00000000..ab8fec73 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolStopResizeOptions(Model): + """Additional parameters for stop_resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolStopResizeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options_py3.py new file mode 100644 index 00000000..d5cc404e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_stop_resize_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolStopResizeOptions(Model): + """Additional parameters for stop_resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolStopResizeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options.py new file mode 100644 index 00000000..ca7f97cb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpdatePropertiesOptions(Model): + """Additional parameters for update_properties operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolUpdatePropertiesOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options_py3.py new file mode 100644 index 00000000..edf5065c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpdatePropertiesOptions(Model): + """Additional parameters for update_properties operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolUpdatePropertiesOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter.py new file mode 100644 index 00000000..bbc35acc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpdatePropertiesParameter(Model): + """The set of changes to be made to a pool. + + All required parameters must be populated in order to send to Azure. + + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. If this element is present, it overwrites any existing start + task. If omitted, any existing start task is removed from the pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: Required. A list of certificates to be + installed on each compute node in the pool. This list replaces any + existing certificate references configured on the pool. If you specify an + empty collection, any existing certificate references are removed from the + pool. For Windows compute nodes, the Batch service installs the + certificates to the specified certificate store and location. For Linux + compute nodes, the certificates are stored in a directory inside the task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the task to query for this location. For certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and certificates are placed + in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: Required. A list of application + packages to be installed on each compute node in the pool. The list + replaces any existing application package references on the pool. Changes + to application package references affect all new compute nodes joining the + pool, but do not affect compute nodes that are already in the pool until + they are rebooted or reimaged. If omitted, or if you specify an empty + collection, any existing application packages references are removed from + the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: Required. A list of name-value pairs associated with the + pool as metadata. This list replaces any existing metadata configured on + the pool. If omitted, or if you specify an empty collection, any existing + metadata is removed from the pool. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'certificate_references': {'required': True}, + 'application_package_references': {'required': True}, + 'metadata': {'required': True}, + } + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolUpdatePropertiesParameter, self).__init__(**kwargs) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.metadata = kwargs.get('metadata', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter_py3.py new file mode 100644 index 00000000..20457439 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_update_properties_parameter_py3.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpdatePropertiesParameter(Model): + """The set of changes to be made to a pool. + + All required parameters must be populated in order to send to Azure. + + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. If this element is present, it overwrites any existing start + task. If omitted, any existing start task is removed from the pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: Required. A list of certificates to be + installed on each compute node in the pool. This list replaces any + existing certificate references configured on the pool. If you specify an + empty collection, any existing certificate references are removed from the + pool. For Windows compute nodes, the Batch service installs the + certificates to the specified certificate store and location. For Linux + compute nodes, the certificates are stored in a directory inside the task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the task to query for this location. For certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and certificates are placed + in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: Required. A list of application + packages to be installed on each compute node in the pool. The list + replaces any existing application package references on the pool. Changes + to application package references affect all new compute nodes joining the + pool, but do not affect compute nodes that are already in the pool until + they are rebooted or reimaged. If omitted, or if you specify an empty + collection, any existing application packages references are removed from + the pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: Required. A list of name-value pairs associated with the + pool as metadata. This list replaces any existing metadata configured on + the pool. If omitted, or if you specify an empty collection, any existing + metadata is removed from the pool. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'certificate_references': {'required': True}, + 'application_package_references': {'required': True}, + 'metadata': {'required': True}, + } + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, certificate_references, application_package_references, metadata, start_task=None, **kwargs) -> None: + super(PoolUpdatePropertiesParameter, self).__init__(**kwargs) + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.metadata = metadata diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options.py b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options.py new file mode 100644 index 00000000..fbdfdf91 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpgradeOsOptions(Model): + """Additional parameters for upgrade_os operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolUpgradeOsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options_py3.py new file mode 100644 index 00000000..67884745 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpgradeOsOptions(Model): + """Additional parameters for upgrade_os operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolUpgradeOsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter.py new file mode 100644 index 00000000..17141ac0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpgradeOSParameter(Model): + """Options for upgrading the operating system of compute nodes in a pool. + + All required parameters must be populated in order to send to Azure. + + :param target_os_version: Required. The Azure Guest OS version to be + installed on the virtual machines in the pool. + :type target_os_version: str + """ + + _validation = { + 'target_os_version': {'required': True}, + } + + _attribute_map = { + 'target_os_version': {'key': 'targetOSVersion', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PoolUpgradeOSParameter, self).__init__(**kwargs) + self.target_os_version = kwargs.get('target_os_version', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter_py3.py new file mode 100644 index 00000000..de2169d0 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_upgrade_os_parameter_py3.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUpgradeOSParameter(Model): + """Options for upgrading the operating system of compute nodes in a pool. + + All required parameters must be populated in order to send to Azure. + + :param target_os_version: Required. The Azure Guest OS version to be + installed on the virtual machines in the pool. + :type target_os_version: str + """ + + _validation = { + 'target_os_version': {'required': True}, + } + + _attribute_map = { + 'target_os_version': {'key': 'targetOSVersion', 'type': 'str'}, + } + + def __init__(self, *, target_os_version: str, **kwargs) -> None: + super(PoolUpgradeOSParameter, self).__init__(**kwargs) + self.target_os_version = target_os_version diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics.py b/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics.py new file mode 100644 index 00000000..93cfa03f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUsageMetrics(Model): + """Usage metrics for a pool across an aggregation interval. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the pool whose metrics are aggregated + in this entry. + :type pool_id: str + :param start_time: Required. The start time of the aggregation interval + covered by this entry. + :type start_time: datetime + :param end_time: Required. The end time of the aggregation interval + covered by this entry. + :type end_time: datetime + :param vm_size: Required. The size of virtual machines in the pool. All + VMs in a pool are the same size. For information about available sizes of + virtual machines in pools, see Choose a VM size for compute nodes in an + Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_core_hours: Required. The total core hours used in the pool + during this aggregation interval. + :type total_core_hours: float + :param data_ingress_gi_b: Required. The cross data center network ingress + to the pool during this interval, in GiB. + :type data_ingress_gi_b: float + :param data_egress_gi_b: Required. The cross data center network egress + from the pool during this interval, in GiB. + :type data_egress_gi_b: float + """ + + _validation = { + 'pool_id': {'required': True}, + 'start_time': {'required': True}, + 'end_time': {'required': True}, + 'vm_size': {'required': True}, + 'total_core_hours': {'required': True}, + 'data_ingress_gi_b': {'required': True}, + 'data_egress_gi_b': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_core_hours': {'key': 'totalCoreHours', 'type': 'float'}, + 'data_ingress_gi_b': {'key': 'dataIngressGiB', 'type': 'float'}, + 'data_egress_gi_b': {'key': 'dataEgressGiB', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(PoolUsageMetrics, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.vm_size = kwargs.get('vm_size', None) + self.total_core_hours = kwargs.get('total_core_hours', None) + self.data_ingress_gi_b = kwargs.get('data_ingress_gi_b', None) + self.data_egress_gi_b = kwargs.get('data_egress_gi_b', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_paged.py b/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_paged.py new file mode 100644 index 00000000..891554f1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class PoolUsageMetricsPaged(Paged): + """ + A paging container for iterating over a list of :class:`PoolUsageMetrics ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PoolUsageMetrics]'} + } + + def __init__(self, *args, **kwargs): + + super(PoolUsageMetricsPaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_py3.py new file mode 100644 index 00000000..5c7ea9eb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/pool_usage_metrics_py3.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class PoolUsageMetrics(Model): + """Usage metrics for a pool across an aggregation interval. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the pool whose metrics are aggregated + in this entry. + :type pool_id: str + :param start_time: Required. The start time of the aggregation interval + covered by this entry. + :type start_time: datetime + :param end_time: Required. The end time of the aggregation interval + covered by this entry. + :type end_time: datetime + :param vm_size: Required. The size of virtual machines in the pool. All + VMs in a pool are the same size. For information about available sizes of + virtual machines in pools, see Choose a VM size for compute nodes in an + Azure Batch pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_core_hours: Required. The total core hours used in the pool + during this aggregation interval. + :type total_core_hours: float + :param data_ingress_gi_b: Required. The cross data center network ingress + to the pool during this interval, in GiB. + :type data_ingress_gi_b: float + :param data_egress_gi_b: Required. The cross data center network egress + from the pool during this interval, in GiB. + :type data_egress_gi_b: float + """ + + _validation = { + 'pool_id': {'required': True}, + 'start_time': {'required': True}, + 'end_time': {'required': True}, + 'vm_size': {'required': True}, + 'total_core_hours': {'required': True}, + 'data_ingress_gi_b': {'required': True}, + 'data_egress_gi_b': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_core_hours': {'key': 'totalCoreHours', 'type': 'float'}, + 'data_ingress_gi_b': {'key': 'dataIngressGiB', 'type': 'float'}, + 'data_egress_gi_b': {'key': 'dataEgressGiB', 'type': 'float'}, + } + + def __init__(self, *, pool_id: str, start_time, end_time, vm_size: str, total_core_hours: float, data_ingress_gi_b: float, data_egress_gi_b: float, **kwargs) -> None: + super(PoolUsageMetrics, self).__init__(**kwargs) + self.pool_id = pool_id + self.start_time = start_time + self.end_time = end_time + self.vm_size = vm_size + self.total_core_hours = total_core_hours + self.data_ingress_gi_b = data_ingress_gi_b + self.data_egress_gi_b = data_egress_gi_b diff --git a/azext/batch/_vendor/v4/azure/batch/models/recent_job.py b/azext/batch/_vendor/v4/azure/batch/models/recent_job.py new file mode 100644 index 00000000..11d430a5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/recent_job.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RecentJob(Model): + """Information about the most recent job to run under the job schedule. + + :param id: The ID of the job. + :type id: str + :param url: The URL of the job. + :type url: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(RecentJob, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.url = kwargs.get('url', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/recent_job_py3.py b/azext/batch/_vendor/v4/azure/batch/models/recent_job_py3.py new file mode 100644 index 00000000..94b133ae --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/recent_job_py3.py @@ -0,0 +1,32 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class RecentJob(Model): + """Information about the most recent job to run under the job schedule. + + :param id: The ID of the job. + :type id: str + :param url: The URL of the job. + :type url: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, url: str=None, **kwargs) -> None: + super(RecentJob, self).__init__(**kwargs) + self.id = id + self.url = url diff --git a/azext/batch/_vendor/v4/azure/batch/models/resize_error.py b/azext/batch/_vendor/v4/azure/batch/models/resize_error.py new file mode 100644 index 00000000..8d166d81 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/resize_error.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ResizeError(Model): + """An error that occurred when resizing a pool. + + :param code: An identifier for the pool resize error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the pool resize error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the pool + resize error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(ResizeError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/resize_error_py3.py b/azext/batch/_vendor/v4/azure/batch/models/resize_error_py3.py new file mode 100644 index 00000000..9e400e60 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/resize_error_py3.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ResizeError(Model): + """An error that occurred when resizing a pool. + + :param code: An identifier for the pool resize error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the pool resize error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the pool + resize error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, values=None, **kwargs) -> None: + super(ResizeError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values diff --git a/azext/batch/_vendor/v4/azure/batch/models/resource_file.py b/azext/batch/_vendor/v4/azure/batch/models/resource_file.py new file mode 100644 index 00000000..f7a04764 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/resource_file.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ResourceFile(Model): + """A file to be downloaded from Azure blob storage to a compute node. + + All required parameters must be populated in order to send to Azure. + + :param blob_source: Required. The URL of the file within Azure Blob + Storage. This URL must be readable using anonymous access; that is, the + Batch service does not present any credentials when downloading the blob. + There are two ways to get such a URL for a blob in Azure storage: include + a Shared Access Signature (SAS) granting read permissions on the blob, or + set the ACL for the blob or its container to allow public access. + :type blob_source: str + :param file_path: Required. The location on the compute node to which to + download the file, relative to the task's working directory. + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux compute nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows node. If this property is not specified for a + Linux node, then a default value of 0770 is applied to the file. + :type file_mode: str + """ + + _validation = { + 'blob_source': {'required': True}, + 'file_path': {'required': True}, + } + + _attribute_map = { + 'blob_source': {'key': 'blobSource', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ResourceFile, self).__init__(**kwargs) + self.blob_source = kwargs.get('blob_source', None) + self.file_path = kwargs.get('file_path', None) + self.file_mode = kwargs.get('file_mode', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/resource_file_py3.py b/azext/batch/_vendor/v4/azure/batch/models/resource_file_py3.py new file mode 100644 index 00000000..b7c792e7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/resource_file_py3.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ResourceFile(Model): + """A file to be downloaded from Azure blob storage to a compute node. + + All required parameters must be populated in order to send to Azure. + + :param blob_source: Required. The URL of the file within Azure Blob + Storage. This URL must be readable using anonymous access; that is, the + Batch service does not present any credentials when downloading the blob. + There are two ways to get such a URL for a blob in Azure storage: include + a Shared Access Signature (SAS) granting read permissions on the blob, or + set the ACL for the blob or its container to allow public access. + :type blob_source: str + :param file_path: Required. The location on the compute node to which to + download the file, relative to the task's working directory. + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux compute nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows node. If this property is not specified for a + Linux node, then a default value of 0770 is applied to the file. + :type file_mode: str + """ + + _validation = { + 'blob_source': {'required': True}, + 'file_path': {'required': True}, + } + + _attribute_map = { + 'blob_source': {'key': 'blobSource', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, *, blob_source: str, file_path: str, file_mode: str=None, **kwargs) -> None: + super(ResourceFile, self).__init__(**kwargs) + self.blob_source = blob_source + self.file_path = file_path + self.file_mode = file_mode diff --git a/azext/batch/_vendor/v4/azure/batch/models/resource_statistics.py b/azext/batch/_vendor/v4/azure/batch/models/resource_statistics.py new file mode 100644 index 00000000..5e861d9e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/resource_statistics.py @@ -0,0 +1,108 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ResourceStatistics(Model): + """Statistics related to resource consumption by compute nodes in a pool. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param avg_cpu_percentage: Required. The average CPU usage across all + nodes in the pool (percentage per node). + :type avg_cpu_percentage: float + :param avg_memory_gi_b: Required. The average memory usage in GiB across + all nodes in the pool. + :type avg_memory_gi_b: float + :param peak_memory_gi_b: Required. The peak memory usage in GiB across all + nodes in the pool. + :type peak_memory_gi_b: float + :param avg_disk_gi_b: Required. The average used disk space in GiB across + all nodes in the pool. + :type avg_disk_gi_b: float + :param peak_disk_gi_b: Required. The peak used disk space in GiB across + all nodes in the pool. + :type peak_disk_gi_b: float + :param disk_read_iops: Required. The total number of disk read operations + across all nodes in the pool. + :type disk_read_iops: long + :param disk_write_iops: Required. The total number of disk write + operations across all nodes in the pool. + :type disk_write_iops: long + :param disk_read_gi_b: Required. The total amount of data in GiB of disk + reads across all nodes in the pool. + :type disk_read_gi_b: float + :param disk_write_gi_b: Required. The total amount of data in GiB of disk + writes across all nodes in the pool. + :type disk_write_gi_b: float + :param network_read_gi_b: Required. The total amount of data in GiB of + network reads across all nodes in the pool. + :type network_read_gi_b: float + :param network_write_gi_b: Required. The total amount of data in GiB of + network writes across all nodes in the pool. + :type network_write_gi_b: float + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'avg_cpu_percentage': {'required': True}, + 'avg_memory_gi_b': {'required': True}, + 'peak_memory_gi_b': {'required': True}, + 'avg_disk_gi_b': {'required': True}, + 'peak_disk_gi_b': {'required': True}, + 'disk_read_iops': {'required': True}, + 'disk_write_iops': {'required': True}, + 'disk_read_gi_b': {'required': True}, + 'disk_write_gi_b': {'required': True}, + 'network_read_gi_b': {'required': True}, + 'network_write_gi_b': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'avg_cpu_percentage': {'key': 'avgCPUPercentage', 'type': 'float'}, + 'avg_memory_gi_b': {'key': 'avgMemoryGiB', 'type': 'float'}, + 'peak_memory_gi_b': {'key': 'peakMemoryGiB', 'type': 'float'}, + 'avg_disk_gi_b': {'key': 'avgDiskGiB', 'type': 'float'}, + 'peak_disk_gi_b': {'key': 'peakDiskGiB', 'type': 'float'}, + 'disk_read_iops': {'key': 'diskReadIOps', 'type': 'long'}, + 'disk_write_iops': {'key': 'diskWriteIOps', 'type': 'long'}, + 'disk_read_gi_b': {'key': 'diskReadGiB', 'type': 'float'}, + 'disk_write_gi_b': {'key': 'diskWriteGiB', 'type': 'float'}, + 'network_read_gi_b': {'key': 'networkReadGiB', 'type': 'float'}, + 'network_write_gi_b': {'key': 'networkWriteGiB', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(ResourceStatistics, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.avg_cpu_percentage = kwargs.get('avg_cpu_percentage', None) + self.avg_memory_gi_b = kwargs.get('avg_memory_gi_b', None) + self.peak_memory_gi_b = kwargs.get('peak_memory_gi_b', None) + self.avg_disk_gi_b = kwargs.get('avg_disk_gi_b', None) + self.peak_disk_gi_b = kwargs.get('peak_disk_gi_b', None) + self.disk_read_iops = kwargs.get('disk_read_iops', None) + self.disk_write_iops = kwargs.get('disk_write_iops', None) + self.disk_read_gi_b = kwargs.get('disk_read_gi_b', None) + self.disk_write_gi_b = kwargs.get('disk_write_gi_b', None) + self.network_read_gi_b = kwargs.get('network_read_gi_b', None) + self.network_write_gi_b = kwargs.get('network_write_gi_b', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/resource_statistics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/resource_statistics_py3.py new file mode 100644 index 00000000..bcf0830f --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/resource_statistics_py3.py @@ -0,0 +1,108 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class ResourceStatistics(Model): + """Statistics related to resource consumption by compute nodes in a pool. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param avg_cpu_percentage: Required. The average CPU usage across all + nodes in the pool (percentage per node). + :type avg_cpu_percentage: float + :param avg_memory_gi_b: Required. The average memory usage in GiB across + all nodes in the pool. + :type avg_memory_gi_b: float + :param peak_memory_gi_b: Required. The peak memory usage in GiB across all + nodes in the pool. + :type peak_memory_gi_b: float + :param avg_disk_gi_b: Required. The average used disk space in GiB across + all nodes in the pool. + :type avg_disk_gi_b: float + :param peak_disk_gi_b: Required. The peak used disk space in GiB across + all nodes in the pool. + :type peak_disk_gi_b: float + :param disk_read_iops: Required. The total number of disk read operations + across all nodes in the pool. + :type disk_read_iops: long + :param disk_write_iops: Required. The total number of disk write + operations across all nodes in the pool. + :type disk_write_iops: long + :param disk_read_gi_b: Required. The total amount of data in GiB of disk + reads across all nodes in the pool. + :type disk_read_gi_b: float + :param disk_write_gi_b: Required. The total amount of data in GiB of disk + writes across all nodes in the pool. + :type disk_write_gi_b: float + :param network_read_gi_b: Required. The total amount of data in GiB of + network reads across all nodes in the pool. + :type network_read_gi_b: float + :param network_write_gi_b: Required. The total amount of data in GiB of + network writes across all nodes in the pool. + :type network_write_gi_b: float + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'avg_cpu_percentage': {'required': True}, + 'avg_memory_gi_b': {'required': True}, + 'peak_memory_gi_b': {'required': True}, + 'avg_disk_gi_b': {'required': True}, + 'peak_disk_gi_b': {'required': True}, + 'disk_read_iops': {'required': True}, + 'disk_write_iops': {'required': True}, + 'disk_read_gi_b': {'required': True}, + 'disk_write_gi_b': {'required': True}, + 'network_read_gi_b': {'required': True}, + 'network_write_gi_b': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'avg_cpu_percentage': {'key': 'avgCPUPercentage', 'type': 'float'}, + 'avg_memory_gi_b': {'key': 'avgMemoryGiB', 'type': 'float'}, + 'peak_memory_gi_b': {'key': 'peakMemoryGiB', 'type': 'float'}, + 'avg_disk_gi_b': {'key': 'avgDiskGiB', 'type': 'float'}, + 'peak_disk_gi_b': {'key': 'peakDiskGiB', 'type': 'float'}, + 'disk_read_iops': {'key': 'diskReadIOps', 'type': 'long'}, + 'disk_write_iops': {'key': 'diskWriteIOps', 'type': 'long'}, + 'disk_read_gi_b': {'key': 'diskReadGiB', 'type': 'float'}, + 'disk_write_gi_b': {'key': 'diskWriteGiB', 'type': 'float'}, + 'network_read_gi_b': {'key': 'networkReadGiB', 'type': 'float'}, + 'network_write_gi_b': {'key': 'networkWriteGiB', 'type': 'float'}, + } + + def __init__(self, *, start_time, last_update_time, avg_cpu_percentage: float, avg_memory_gi_b: float, peak_memory_gi_b: float, avg_disk_gi_b: float, peak_disk_gi_b: float, disk_read_iops: int, disk_write_iops: int, disk_read_gi_b: float, disk_write_gi_b: float, network_read_gi_b: float, network_write_gi_b: float, **kwargs) -> None: + super(ResourceStatistics, self).__init__(**kwargs) + self.start_time = start_time + self.last_update_time = last_update_time + self.avg_cpu_percentage = avg_cpu_percentage + self.avg_memory_gi_b = avg_memory_gi_b + self.peak_memory_gi_b = peak_memory_gi_b + self.avg_disk_gi_b = avg_disk_gi_b + self.peak_disk_gi_b = peak_disk_gi_b + self.disk_read_iops = disk_read_iops + self.disk_write_iops = disk_write_iops + self.disk_read_gi_b = disk_read_gi_b + self.disk_write_gi_b = disk_write_gi_b + self.network_read_gi_b = network_read_gi_b + self.network_write_gi_b = network_write_gi_b diff --git a/azext/batch/_vendor/v4/azure/batch/models/schedule.py b/azext/batch/_vendor/v4/azure/batch/models/schedule.py new file mode 100644 index 00000000..e6339eb9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/schedule.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class Schedule(Model): + """The schedule according to which jobs will be created. + + :param do_not_run_until: The earliest time at which any job may be created + under this job schedule. If you do not specify a doNotRunUntil time, the + schedule becomes ready to create jobs immediately. + :type do_not_run_until: datetime + :param do_not_run_after: A time after which no job will be created under + this job schedule. The schedule will move to the completed state as soon + as this deadline is past and there is no active job under this job + schedule. If you do not specify a doNotRunAfter time, and you are creating + a recurring job schedule, the job schedule will remain active until you + explicitly terminate it. + :type do_not_run_after: datetime + :param start_window: The time interval, starting from the time at which + the schedule indicates a job should be created, within which a job must be + created. If a job is not created within the startWindow interval, then the + 'opportunity' is lost; no job will be created until the next recurrence of + the schedule. If the schedule is recurring, and the startWindow is longer + than the recurrence interval, then this is equivalent to an infinite + startWindow, because the job that is 'due' in one recurrenceInterval is + not carried forward into the next recurrence interval. The default is + infinite. The minimum value is 1 minute. If you specify a lower value, the + Batch service rejects the schedule with an error; if you are calling the + REST API directly, the HTTP status code is 400 (Bad Request). + :type start_window: timedelta + :param recurrence_interval: The time interval between the start times of + two successive jobs under the job schedule. A job schedule can have at + most one active job under it at any given time. Because a job schedule can + have at most one active job under it at any given time, if it is time to + create a new job under a job schedule, but the previous job is still + running, the Batch service will not create the new job until the previous + job finishes. If the previous job does not finish within the startWindow + period of the new recurrenceInterval, then no new job will be scheduled + for that interval. For recurring jobs, you should normally specify a + jobManagerTask in the jobSpecification. If you do not use jobManagerTask, + you will need an external process to monitor when jobs are created, add + tasks to the jobs and terminate the jobs ready for the next recurrence. + The default is that the schedule does not recur: one job is created, + within the startWindow after the doNotRunUntil time, and the schedule is + complete as soon as that job finishes. The minimum value is 1 minute. If + you specify a lower value, the Batch service rejects the schedule with an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type recurrence_interval: timedelta + """ + + _attribute_map = { + 'do_not_run_until': {'key': 'doNotRunUntil', 'type': 'iso-8601'}, + 'do_not_run_after': {'key': 'doNotRunAfter', 'type': 'iso-8601'}, + 'start_window': {'key': 'startWindow', 'type': 'duration'}, + 'recurrence_interval': {'key': 'recurrenceInterval', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(Schedule, self).__init__(**kwargs) + self.do_not_run_until = kwargs.get('do_not_run_until', None) + self.do_not_run_after = kwargs.get('do_not_run_after', None) + self.start_window = kwargs.get('start_window', None) + self.recurrence_interval = kwargs.get('recurrence_interval', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/schedule_py3.py b/azext/batch/_vendor/v4/azure/batch/models/schedule_py3.py new file mode 100644 index 00000000..66ab18a4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/schedule_py3.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class Schedule(Model): + """The schedule according to which jobs will be created. + + :param do_not_run_until: The earliest time at which any job may be created + under this job schedule. If you do not specify a doNotRunUntil time, the + schedule becomes ready to create jobs immediately. + :type do_not_run_until: datetime + :param do_not_run_after: A time after which no job will be created under + this job schedule. The schedule will move to the completed state as soon + as this deadline is past and there is no active job under this job + schedule. If you do not specify a doNotRunAfter time, and you are creating + a recurring job schedule, the job schedule will remain active until you + explicitly terminate it. + :type do_not_run_after: datetime + :param start_window: The time interval, starting from the time at which + the schedule indicates a job should be created, within which a job must be + created. If a job is not created within the startWindow interval, then the + 'opportunity' is lost; no job will be created until the next recurrence of + the schedule. If the schedule is recurring, and the startWindow is longer + than the recurrence interval, then this is equivalent to an infinite + startWindow, because the job that is 'due' in one recurrenceInterval is + not carried forward into the next recurrence interval. The default is + infinite. The minimum value is 1 minute. If you specify a lower value, the + Batch service rejects the schedule with an error; if you are calling the + REST API directly, the HTTP status code is 400 (Bad Request). + :type start_window: timedelta + :param recurrence_interval: The time interval between the start times of + two successive jobs under the job schedule. A job schedule can have at + most one active job under it at any given time. Because a job schedule can + have at most one active job under it at any given time, if it is time to + create a new job under a job schedule, but the previous job is still + running, the Batch service will not create the new job until the previous + job finishes. If the previous job does not finish within the startWindow + period of the new recurrenceInterval, then no new job will be scheduled + for that interval. For recurring jobs, you should normally specify a + jobManagerTask in the jobSpecification. If you do not use jobManagerTask, + you will need an external process to monitor when jobs are created, add + tasks to the jobs and terminate the jobs ready for the next recurrence. + The default is that the schedule does not recur: one job is created, + within the startWindow after the doNotRunUntil time, and the schedule is + complete as soon as that job finishes. The minimum value is 1 minute. If + you specify a lower value, the Batch service rejects the schedule with an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type recurrence_interval: timedelta + """ + + _attribute_map = { + 'do_not_run_until': {'key': 'doNotRunUntil', 'type': 'iso-8601'}, + 'do_not_run_after': {'key': 'doNotRunAfter', 'type': 'iso-8601'}, + 'start_window': {'key': 'startWindow', 'type': 'duration'}, + 'recurrence_interval': {'key': 'recurrenceInterval', 'type': 'duration'}, + } + + def __init__(self, *, do_not_run_until=None, do_not_run_after=None, start_window=None, recurrence_interval=None, **kwargs) -> None: + super(Schedule, self).__init__(**kwargs) + self.do_not_run_until = do_not_run_until + self.do_not_run_after = do_not_run_after + self.start_window = start_window + self.recurrence_interval = recurrence_interval diff --git a/azext/batch/_vendor/v4/azure/batch/models/start_task.py b/azext/batch/_vendor/v4/azure/batch/models/start_task.py new file mode 100644 index 00000000..9f0ad707 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/start_task.py @@ -0,0 +1,110 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class StartTask(Model): + """A task which is run when a compute node joins a pool in the Azure Batch + service, or when the compute node is rebooted or reimaged. + + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param command_line: Required. The command line of the start task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + start task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all task environment variables are + mapped into the container, and the task command line is executed in the + container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the start task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param user_identity: The user identity under which the start task runs. + If omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: ~azure.batch.models.UserIdentity + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the task. If the maximum retry count is + -1, the Batch service retries the task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start task to complete successfully (that is, to exit with exit code 0) + before scheduling any tasks on the compute node. If true and the start + task fails on a compute node, the Batch service retries the start task up + to its maximum retry count (maxTaskRetryCount). If the task has still not + completed successfully after all retries, then the Batch service marks the + compute node unusable, and will not schedule tasks to it. This condition + can be detected via the node state and failure info details. If false, the + Batch service will not wait for the start task to complete. In this case, + other tasks can start executing on the compute node while the start task + is still running; and even if the start task fails, new tasks will + continue to be scheduled on the node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(StartTask, self).__init__(**kwargs) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.user_identity = kwargs.get('user_identity', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) + self.wait_for_success = kwargs.get('wait_for_success', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/start_task_information.py b/azext/batch/_vendor/v4/azure/batch/models/start_task_information.py new file mode 100644 index 00000000..e8b68b08 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/start_task_information.py @@ -0,0 +1,99 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class StartTaskInformation(Model): + """Information about a start task running on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param state: Required. The state of the start task on the compute node. + Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.StartTaskState + :param start_time: Required. The time at which the start task started + running. This value is reset every time the task is restarted or retried + (that is, this is the most recent time at which the start task started + running). + :type start_time: datetime + :param end_time: The time at which the start task stopped running. This is + the end time of the most recent run of the start task, if that run has + completed (even if that run failed and a retry is pending). This element + is not present if the start task is currently running. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the start task + command line. This property is set only if the start task is in the + completed state. In general, the exit code for a process reflects the + specific convention implemented by the application developer for that + process. If you use the exit code value to make decisions in your code, be + sure that you know the exit code convention used by the application + process. However, if the Batch service terminates the start task (due to + timeout, or user termination via the API) you may see an operating + system-defined exit code. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the task could not be run) and + file upload errors are not retried. The Batch service will retry the task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the task + started running. This element is present only if the task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the task has been restarted for reasons + other than retry; for example, if the compute node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'state': {'required': True}, + 'start_time': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'state': {'key': 'state', 'type': 'StartTaskState'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(StartTaskInformation, self).__init__(**kwargs) + self.state = kwargs.get('state', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.retry_count = kwargs.get('retry_count', None) + self.last_retry_time = kwargs.get('last_retry_time', None) + self.result = kwargs.get('result', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/start_task_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/start_task_information_py3.py new file mode 100644 index 00000000..cb434ab2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/start_task_information_py3.py @@ -0,0 +1,99 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class StartTaskInformation(Model): + """Information about a start task running on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param state: Required. The state of the start task on the compute node. + Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.StartTaskState + :param start_time: Required. The time at which the start task started + running. This value is reset every time the task is restarted or retried + (that is, this is the most recent time at which the start task started + running). + :type start_time: datetime + :param end_time: The time at which the start task stopped running. This is + the end time of the most recent run of the start task, if that run has + completed (even if that run failed and a retry is pending). This element + is not present if the start task is currently running. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the start task + command line. This property is set only if the start task is in the + completed state. In general, the exit code for a process reflects the + specific convention implemented by the application developer for that + process. If you use the exit code value to make decisions in your code, be + sure that you know the exit code convention used by the application + process. However, if the Batch service terminates the start task (due to + timeout, or user termination via the API) you may see an operating + system-defined exit code. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the task could not be run) and + file upload errors are not retried. The Batch service will retry the task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the task + started running. This element is present only if the task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the task has been restarted for reasons + other than retry; for example, if the compute node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'state': {'required': True}, + 'start_time': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'state': {'key': 'state', 'type': 'StartTaskState'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, state, start_time, retry_count: int, end_time=None, exit_code: int=None, container_info=None, failure_info=None, last_retry_time=None, result=None, **kwargs) -> None: + super(StartTaskInformation, self).__init__(**kwargs) + self.state = state + self.start_time = start_time + self.end_time = end_time + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.retry_count = retry_count + self.last_retry_time = last_retry_time + self.result = result diff --git a/azext/batch/_vendor/v4/azure/batch/models/start_task_py3.py b/azext/batch/_vendor/v4/azure/batch/models/start_task_py3.py new file mode 100644 index 00000000..7fb95815 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/start_task_py3.py @@ -0,0 +1,110 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class StartTask(Model): + """A task which is run when a compute node joins a pool in the Azure Batch + service, or when the compute node is rebooted or reimaged. + + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param command_line: Required. The command line of the start task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + start task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all task environment variables are + mapped into the container, and the task command line is executed in the + container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the start task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param user_identity: The user identity under which the start task runs. + If omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: ~azure.batch.models.UserIdentity + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the task. If the maximum retry count is + -1, the Batch service retries the task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start task to complete successfully (that is, to exit with exit code 0) + before scheduling any tasks on the compute node. If true and the start + task fails on a compute node, the Batch service retries the start task up + to its maximum retry count (maxTaskRetryCount). If the task has still not + completed successfully after all retries, then the Batch service marks the + compute node unusable, and will not schedule tasks to it. This condition + can be detected via the node state and failure info details. If false, the + Batch service will not wait for the start task to complete. In this case, + other tasks can start executing on the compute node while the start task + is still running; and even if the start task fails, new tasks will + continue to be scheduled on the node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int=None, wait_for_success: bool=None, **kwargs) -> None: + super(StartTask, self).__init__(**kwargs) + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.user_identity = user_identity + self.max_task_retry_count = max_task_retry_count + self.wait_for_success = wait_for_success diff --git a/azext/batch/_vendor/v4/azure/batch/models/subtask_information.py b/azext/batch/_vendor/v4/azure/batch/models/subtask_information.py new file mode 100644 index 00000000..dbbff704 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/subtask_information.py @@ -0,0 +1,97 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class SubtaskInformation(Model): + """Information about an Azure Batch subtask. + + :param id: The ID of the subtask. + :type id: int + :param node_info: Information about the compute node on which the subtask + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param start_time: The time at which the subtask started running. If the + subtask has been restarted or retried, this is the most recent time at + which the subtask started running. + :type start_time: datetime + :param end_time: The time at which the subtask completed. This property is + set only if the subtask is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the subtask + command line. This property is set only if the subtask is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the subtask (due to timeout, or + user termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param state: The current state of the subtask. Possible values include: + 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.SubtaskState + :param state_transition_time: The time at which the subtask entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the subtask. This property is + not set if the subtask is in its initial running state. Possible values + include: 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.SubtaskState + :param previous_state_transition_time: The time at which the subtask + entered its previous state. This property is not set if the subtask is in + its initial running state. + :type previous_state_transition_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'int'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'state': {'key': 'state', 'type': 'SubtaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'SubtaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(SubtaskInformation, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.node_info = kwargs.get('node_info', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.result = kwargs.get('result', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/subtask_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/subtask_information_py3.py new file mode 100644 index 00000000..1399c866 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/subtask_information_py3.py @@ -0,0 +1,97 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class SubtaskInformation(Model): + """Information about an Azure Batch subtask. + + :param id: The ID of the subtask. + :type id: int + :param node_info: Information about the compute node on which the subtask + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param start_time: The time at which the subtask started running. If the + subtask has been restarted or retried, this is the most recent time at + which the subtask started running. + :type start_time: datetime + :param end_time: The time at which the subtask completed. This property is + set only if the subtask is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the subtask + command line. This property is set only if the subtask is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the subtask (due to timeout, or + user termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param state: The current state of the subtask. Possible values include: + 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.SubtaskState + :param state_transition_time: The time at which the subtask entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the subtask. This property is + not set if the subtask is in its initial running state. Possible values + include: 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.SubtaskState + :param previous_state_transition_time: The time at which the subtask + entered its previous state. This property is not set if the subtask is in + its initial running state. + :type previous_state_transition_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'int'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'state': {'key': 'state', 'type': 'SubtaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'SubtaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, id: int=None, node_info=None, start_time=None, end_time=None, exit_code: int=None, container_info=None, failure_info=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, result=None, **kwargs) -> None: + super(SubtaskInformation, self).__init__(**kwargs) + self.id = id + self.node_info = node_info + self.start_time = start_time + self.end_time = end_time + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.result = result diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options.py new file mode 100644 index 00000000..f0622c9c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddCollectionOptions(Model): + """Additional parameters for add_collection operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskAddCollectionOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options_py3.py new file mode 100644 index 00000000..634f522c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddCollectionOptions(Model): + """Additional parameters for add_collection operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskAddCollectionOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter.py new file mode 100644 index 00000000..56b615c4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter.py @@ -0,0 +1,38 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddCollectionParameter(Model): + """A collection of Azure Batch tasks to add. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. The collection of tasks to add. The maximum count + of tasks is 100. The total serialized size of this collection must be less + than 1MB. If it is greater than 1MB (for example if each task has 100's of + resource files or environment variables), the request will fail with code + 'RequestBodyTooLarge' and should be retried again with fewer tasks. + :type value: list[~azure.batch.models.TaskAddParameter] + """ + + _validation = { + 'value': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddParameter]'}, + } + + def __init__(self, **kwargs): + super(TaskAddCollectionParameter, self).__init__(**kwargs) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter_py3.py new file mode 100644 index 00000000..bfeaf536 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_parameter_py3.py @@ -0,0 +1,38 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddCollectionParameter(Model): + """A collection of Azure Batch tasks to add. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. The collection of tasks to add. The maximum count + of tasks is 100. The total serialized size of this collection must be less + than 1MB. If it is greater than 1MB (for example if each task has 100's of + resource files or environment variables), the request will fail with code + 'RequestBodyTooLarge' and should be retried again with fewer tasks. + :type value: list[~azure.batch.models.TaskAddParameter] + """ + + _validation = { + 'value': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddParameter]'}, + } + + def __init__(self, *, value, **kwargs) -> None: + super(TaskAddCollectionParameter, self).__init__(**kwargs) + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result.py new file mode 100644 index 00000000..0dbc1420 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddCollectionResult(Model): + """The result of adding a collection of tasks to a job. + + :param value: The results of the add task collection operation. + :type value: list[~azure.batch.models.TaskAddResult] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddResult]'}, + } + + def __init__(self, **kwargs): + super(TaskAddCollectionResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result_py3.py new file mode 100644 index 00000000..06cde63a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_collection_result_py3.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddCollectionResult(Model): + """The result of adding a collection of tasks to a job. + + :param value: The results of the add task collection operation. + :type value: list[~azure.batch.models.TaskAddResult] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddResult]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(TaskAddCollectionResult, self).__init__(**kwargs) + self.value = value diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_options.py new file mode 100644 index 00000000..667cc19d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_options.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_options_py3.py new file mode 100644 index 00000000..da9c6a8c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_options_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_parameter.py new file mode 100644 index 00000000..c0ac6987 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_parameter.py @@ -0,0 +1,167 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddParameter(Model): + """An Azure Batch task to add. + + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the task within the + job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within a job that differ only by case). + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: Required. The command line of the task. For + multi-instance tasks, the command line is executed as the primary task, + after the primary task and all subtasks have finished executing the + coordination command line. The command line does not run under a shell, + and therefore cannot take advantage of shell features such as environment + variable expansion. If you want to take advantage of such features, you + should invoke the shell in the command line, for example using "cmd /c + MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. If the command + line refers to file paths, it should use a relative path (relative to the + task working directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: ~azure.batch.models.UserIdentity + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, **kwargs): + super(TaskAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.exit_conditions = kwargs.get('exit_conditions', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.multi_instance_settings = kwargs.get('multi_instance_settings', None) + self.depends_on = kwargs.get('depends_on', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_parameter_py3.py new file mode 100644 index 00000000..31f571e7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_parameter_py3.py @@ -0,0 +1,167 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddParameter(Model): + """An Azure Batch task to add. + + Batch will retry tasks when a recovery operation is triggered on a compute + node. Examples of recovery operations include (but are not limited to) when + an unhealthy compute node is rebooted or a compute node disappeared due to + host failure. Retries due to recovery operations are independent of and are + not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is + 0, an internal retry due to a recovery operation may occur. Because of + this, all tasks should be idempotent. This means tasks need to tolerate + being interrupted and restarted without causing any corruption or duplicate + data. The best practice for long running tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the task within the + job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within a job that differ only by case). + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: Required. The command line of the task. For + multi-instance tasks, the command line is executed as the primary task, + after the primary task and all subtasks have finished executing the + coordination command line. The command line does not run under a shell, + and therefore cannot take advantage of shell features such as environment + variable expansion. If you want to take advantage of such features, you + should invoke the shell in the command line, for example using "cmd /c + MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. If the command + line refers to file paths, it should use a relative path (relative to the + task working directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: ~azure.batch.models.UserIdentity + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, exit_conditions=None, resource_files=None, output_files=None, environment_settings=None, affinity_info=None, constraints=None, user_identity=None, multi_instance_settings=None, depends_on=None, application_package_references=None, authentication_token_settings=None, **kwargs) -> None: + super(TaskAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.exit_conditions = exit_conditions + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.multi_instance_settings = multi_instance_settings + self.depends_on = depends_on + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_result.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_result.py new file mode 100644 index 00000000..7528e30d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_result.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddResult(Model): + """Result for a single task added as part of an add task collection operation. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the add task request. Possible + values include: 'success', 'clientError', 'serverError' + :type status: str or ~azure.batch.models.TaskAddStatus + :param task_id: Required. The ID of the task for which this is the result. + :type task_id: str + :param e_tag: The ETag of the task, if the task was successfully added. + You can use this to detect whether the task has changed between requests. + In particular, you can be pass the ETag with an Update Task request to + specify that your changes should take effect only if nobody else has + modified the job in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the task. + :type last_modified: datetime + :param location: The URL of the task, if the task was successfully added. + :type location: str + :param error: The error encountered while attempting to add the task. + :type error: ~azure.batch.models.BatchError + """ + + _validation = { + 'status': {'required': True}, + 'task_id': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'TaskAddStatus'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'location': {'key': 'location', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'BatchError'}, + } + + def __init__(self, **kwargs): + super(TaskAddResult, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.task_id = kwargs.get('task_id', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.location = kwargs.get('location', None) + self.error = kwargs.get('error', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_add_result_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_add_result_py3.py new file mode 100644 index 00000000..7add806b --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_add_result_py3.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskAddResult(Model): + """Result for a single task added as part of an add task collection operation. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the add task request. Possible + values include: 'success', 'clientError', 'serverError' + :type status: str or ~azure.batch.models.TaskAddStatus + :param task_id: Required. The ID of the task for which this is the result. + :type task_id: str + :param e_tag: The ETag of the task, if the task was successfully added. + You can use this to detect whether the task has changed between requests. + In particular, you can be pass the ETag with an Update Task request to + specify that your changes should take effect only if nobody else has + modified the job in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the task. + :type last_modified: datetime + :param location: The URL of the task, if the task was successfully added. + :type location: str + :param error: The error encountered while attempting to add the task. + :type error: ~azure.batch.models.BatchError + """ + + _validation = { + 'status': {'required': True}, + 'task_id': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'TaskAddStatus'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'location': {'key': 'location', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'BatchError'}, + } + + def __init__(self, *, status, task_id: str, e_tag: str=None, last_modified=None, location: str=None, error=None, **kwargs) -> None: + super(TaskAddResult, self).__init__(**kwargs) + self.status = status + self.task_id = task_id + self.e_tag = e_tag + self.last_modified = last_modified + self.location = location + self.error = error diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_constraints.py b/azext/batch/_vendor/v4/azure/batch/models/task_constraints.py new file mode 100644 index 00000000..22898fad --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_constraints.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskConstraints(Model): + """Execution constraints to apply to a task. + + :param max_wall_clock_time: The maximum elapsed time that the task may + run, measured from the time the task starts. If the task does not complete + within the time limit, the Batch service terminates it. If this is not + specified, there is no time limit on how long the task may run. + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory on + the compute node where it ran, from the time it completes execution. After + this time, the Batch service may delete the task directory and all its + contents. The default is infinite, i.e. the task directory will be + retained until the compute node is removed or reimaged. + :type retention_time: timedelta + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries for the + task executable due to a nonzero exit code. The Batch service will try the + task once, and may then retry up to this limit. For example, if the + maximum retry count is 3, Batch tries the task up to 4 times (one initial + try and 3 retries). If the maximum retry count is 0, the Batch service + does not retry the task after the first attempt. If the maximum retry + count is -1, the Batch service retries the task without limit. Resource + files and application packages are only downloaded again if the task is + retried on a new compute node. + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(TaskConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.retention_time = kwargs.get('retention_time', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_constraints_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_constraints_py3.py new file mode 100644 index 00000000..2070d096 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_constraints_py3.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskConstraints(Model): + """Execution constraints to apply to a task. + + :param max_wall_clock_time: The maximum elapsed time that the task may + run, measured from the time the task starts. If the task does not complete + within the time limit, the Batch service terminates it. If this is not + specified, there is no time limit on how long the task may run. + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory on + the compute node where it ran, from the time it completes execution. After + this time, the Batch service may delete the task directory and all its + contents. The default is infinite, i.e. the task directory will be + retained until the compute node is removed or reimaged. + :type retention_time: timedelta + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries for the + task executable due to a nonzero exit code. The Batch service will try the + task once, and may then retry up to this limit. For example, if the + maximum retry count is 3, Batch tries the task up to 4 times (one initial + try and 3 retries). If the maximum retry count is 0, the Batch service + does not retry the task after the first attempt. If the maximum retry + count is -1, the Batch service retries the task without limit. Resource + files and application packages are only downloaded again if the task is + retried on a new compute node. + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, *, max_wall_clock_time=None, retention_time=None, max_task_retry_count: int=None, **kwargs) -> None: + super(TaskConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = max_wall_clock_time + self.retention_time = retention_time + self.max_task_retry_count = max_task_retry_count diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information.py new file mode 100644 index 00000000..6ade9177 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskContainerExecutionInformation(Model): + """Contains information about the container which a task is executing. + + :param container_id: The ID of the container. + :type container_id: str + :param state: The state of the container. This is the state of the + container according to the Docker service. It is equivalent to the status + field returned by "docker inspect". + :type state: str + :param error: Detailed error information about the container. This is the + detailed error string from the Docker service, if available. It is + equivalent to the error field returned by "docker inspect". + :type error: str + """ + + _attribute_map = { + 'container_id': {'key': 'containerId', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(TaskContainerExecutionInformation, self).__init__(**kwargs) + self.container_id = kwargs.get('container_id', None) + self.state = kwargs.get('state', None) + self.error = kwargs.get('error', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information_py3.py new file mode 100644 index 00000000..44f9e7e6 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_container_execution_information_py3.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskContainerExecutionInformation(Model): + """Contains information about the container which a task is executing. + + :param container_id: The ID of the container. + :type container_id: str + :param state: The state of the container. This is the state of the + container according to the Docker service. It is equivalent to the status + field returned by "docker inspect". + :type state: str + :param error: Detailed error information about the container. This is the + detailed error string from the Docker service, if available. It is + equivalent to the error field returned by "docker inspect". + :type error: str + """ + + _attribute_map = { + 'container_id': {'key': 'containerId', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'str'}, + } + + def __init__(self, *, container_id: str=None, state: str=None, error: str=None, **kwargs) -> None: + super(TaskContainerExecutionInformation, self).__init__(**kwargs) + self.container_id = container_id + self.state = state + self.error = error diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_container_settings.py b/azext/batch/_vendor/v4/azure/batch/models/task_container_settings.py new file mode 100644 index 00000000..ac1a56f8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_container_settings.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskContainerSettings(Model): + """The container settings for a task. + + All required parameters must be populated in order to send to Azure. + + :param container_run_options: Additional options to the container create + command. These additional options are supplied as arguments to the "docker + create" command, in addition to those controlled by the Batch Service. + :type container_run_options: str + :param image_name: Required. The image to use to create the container in + which the task will run. This is the full image reference, as would be + specified to "docker pull". If no tag is provided as part of the image + name, the tag ":latest" is used as a default. + :type image_name: str + :param registry: The private registry which contains the container image. + This setting can be omitted if was already provided at pool creation. + :type registry: ~azure.batch.models.ContainerRegistry + """ + + _validation = { + 'image_name': {'required': True}, + } + + _attribute_map = { + 'container_run_options': {'key': 'containerRunOptions', 'type': 'str'}, + 'image_name': {'key': 'imageName', 'type': 'str'}, + 'registry': {'key': 'registry', 'type': 'ContainerRegistry'}, + } + + def __init__(self, **kwargs): + super(TaskContainerSettings, self).__init__(**kwargs) + self.container_run_options = kwargs.get('container_run_options', None) + self.image_name = kwargs.get('image_name', None) + self.registry = kwargs.get('registry', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_container_settings_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_container_settings_py3.py new file mode 100644 index 00000000..dabd7b99 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_container_settings_py3.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskContainerSettings(Model): + """The container settings for a task. + + All required parameters must be populated in order to send to Azure. + + :param container_run_options: Additional options to the container create + command. These additional options are supplied as arguments to the "docker + create" command, in addition to those controlled by the Batch Service. + :type container_run_options: str + :param image_name: Required. The image to use to create the container in + which the task will run. This is the full image reference, as would be + specified to "docker pull". If no tag is provided as part of the image + name, the tag ":latest" is used as a default. + :type image_name: str + :param registry: The private registry which contains the container image. + This setting can be omitted if was already provided at pool creation. + :type registry: ~azure.batch.models.ContainerRegistry + """ + + _validation = { + 'image_name': {'required': True}, + } + + _attribute_map = { + 'container_run_options': {'key': 'containerRunOptions', 'type': 'str'}, + 'image_name': {'key': 'imageName', 'type': 'str'}, + 'registry': {'key': 'registry', 'type': 'ContainerRegistry'}, + } + + def __init__(self, *, image_name: str, container_run_options: str=None, registry=None, **kwargs) -> None: + super(TaskContainerSettings, self).__init__(**kwargs) + self.container_run_options = container_run_options + self.image_name = image_name + self.registry = registry diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_counts.py b/azext/batch/_vendor/v4/azure/batch/models/task_counts.py new file mode 100644 index 00000000..057f2d7a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_counts.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskCounts(Model): + """The task counts for a job. + + All required parameters must be populated in order to send to Azure. + + :param active: Required. The number of tasks in the active state. + :type active: int + :param running: Required. The number of tasks in the running or preparing + state. + :type running: int + :param completed: Required. The number of tasks in the completed state. + :type completed: int + :param succeeded: Required. The number of tasks which succeeded. A task + succeeds if its result (found in the executionInfo property) is 'success'. + :type succeeded: int + :param failed: Required. The number of tasks which failed. A task fails if + its result (found in the executionInfo property) is 'failure'. + :type failed: int + """ + + _validation = { + 'active': {'required': True}, + 'running': {'required': True}, + 'completed': {'required': True}, + 'succeeded': {'required': True}, + 'failed': {'required': True}, + } + + _attribute_map = { + 'active': {'key': 'active', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'completed': {'key': 'completed', 'type': 'int'}, + 'succeeded': {'key': 'succeeded', 'type': 'int'}, + 'failed': {'key': 'failed', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(TaskCounts, self).__init__(**kwargs) + self.active = kwargs.get('active', None) + self.running = kwargs.get('running', None) + self.completed = kwargs.get('completed', None) + self.succeeded = kwargs.get('succeeded', None) + self.failed = kwargs.get('failed', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_counts_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_counts_py3.py new file mode 100644 index 00000000..623c7dd8 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_counts_py3.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskCounts(Model): + """The task counts for a job. + + All required parameters must be populated in order to send to Azure. + + :param active: Required. The number of tasks in the active state. + :type active: int + :param running: Required. The number of tasks in the running or preparing + state. + :type running: int + :param completed: Required. The number of tasks in the completed state. + :type completed: int + :param succeeded: Required. The number of tasks which succeeded. A task + succeeds if its result (found in the executionInfo property) is 'success'. + :type succeeded: int + :param failed: Required. The number of tasks which failed. A task fails if + its result (found in the executionInfo property) is 'failure'. + :type failed: int + """ + + _validation = { + 'active': {'required': True}, + 'running': {'required': True}, + 'completed': {'required': True}, + 'succeeded': {'required': True}, + 'failed': {'required': True}, + } + + _attribute_map = { + 'active': {'key': 'active', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'completed': {'key': 'completed', 'type': 'int'}, + 'succeeded': {'key': 'succeeded', 'type': 'int'}, + 'failed': {'key': 'failed', 'type': 'int'}, + } + + def __init__(self, *, active: int, running: int, completed: int, succeeded: int, failed: int, **kwargs) -> None: + super(TaskCounts, self).__init__(**kwargs) + self.active = active + self.running = running + self.completed = completed + self.succeeded = succeeded + self.failed = failed diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_delete_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_delete_options.py new file mode 100644 index 00000000..2daf7608 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_delete_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_delete_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_delete_options_py3.py new file mode 100644 index 00000000..4b836c65 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_delete_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_dependencies.py b/azext/batch/_vendor/v4/azure/batch/models/task_dependencies.py new file mode 100644 index 00000000..f5bfb8c4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_dependencies.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskDependencies(Model): + """Specifies any dependencies of a task. Any task that is explicitly specified + or within a dependency range must complete before the dependant task will + be scheduled. + + :param task_ids: The list of task IDs that this task depends on. All tasks + in this list must complete successfully before the dependent task can be + scheduled. The taskIds collection is limited to 64000 characters total + (i.e. the combined length of all task IDs). If the taskIds collection + exceeds the maximum length, the Add Task request fails with error code + TaskDependencyListTooLong. In this case consider using task ID ranges + instead. + :type task_ids: list[str] + :param task_id_ranges: The list of task ID ranges that this task depends + on. All tasks in all ranges must complete successfully before the + dependent task can be scheduled. + :type task_id_ranges: list[~azure.batch.models.TaskIdRange] + """ + + _attribute_map = { + 'task_ids': {'key': 'taskIds', 'type': '[str]'}, + 'task_id_ranges': {'key': 'taskIdRanges', 'type': '[TaskIdRange]'}, + } + + def __init__(self, **kwargs): + super(TaskDependencies, self).__init__(**kwargs) + self.task_ids = kwargs.get('task_ids', None) + self.task_id_ranges = kwargs.get('task_id_ranges', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_dependencies_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_dependencies_py3.py new file mode 100644 index 00000000..133f3268 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_dependencies_py3.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskDependencies(Model): + """Specifies any dependencies of a task. Any task that is explicitly specified + or within a dependency range must complete before the dependant task will + be scheduled. + + :param task_ids: The list of task IDs that this task depends on. All tasks + in this list must complete successfully before the dependent task can be + scheduled. The taskIds collection is limited to 64000 characters total + (i.e. the combined length of all task IDs). If the taskIds collection + exceeds the maximum length, the Add Task request fails with error code + TaskDependencyListTooLong. In this case consider using task ID ranges + instead. + :type task_ids: list[str] + :param task_id_ranges: The list of task ID ranges that this task depends + on. All tasks in all ranges must complete successfully before the + dependent task can be scheduled. + :type task_id_ranges: list[~azure.batch.models.TaskIdRange] + """ + + _attribute_map = { + 'task_ids': {'key': 'taskIds', 'type': '[str]'}, + 'task_id_ranges': {'key': 'taskIdRanges', 'type': '[TaskIdRange]'}, + } + + def __init__(self, *, task_ids=None, task_id_ranges=None, **kwargs) -> None: + super(TaskDependencies, self).__init__(**kwargs) + self.task_ids = task_ids + self.task_id_ranges = task_id_ranges diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_execution_information.py b/azext/batch/_vendor/v4/azure/batch/models/task_execution_information.py new file mode 100644 index 00000000..97e313dd --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_execution_information.py @@ -0,0 +1,109 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskExecutionInformation(Model): + """Information about the execution of a task. + + All required parameters must be populated in order to send to Azure. + + :param start_time: The time at which the task started running. 'Running' + corresponds to the running state, so if the task specifies resource files + or application packages, then the start time reflects the time at which + the task started downloading or deploying these. If the task has been + restarted or retried, this is the most recent time at which the task + started running. This property is present only for tasks that are in the + running or completed state. + :type start_time: datetime + :param end_time: The time at which the task completed. This property is + set only if the task is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the task + command line. This property is set only if the task is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the task (due to timeout, or user + termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the task could not be run) and + file upload errors are not retried. The Batch service will retry the task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the task + started running. This element is present only if the task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the task has been restarted for reasons + other than retry; for example, if the compute node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param requeue_count: Required. The number of times the task has been + requeued by the Batch service as the result of a user request. When the + user removes nodes from a pool (by resizing/shrinking the pool) or when + the job is being disabled, the user can specify that running tasks on the + nodes be requeued for execution. This count tracks how many times the task + has been requeued for these reasons. + :type requeue_count: int + :param last_requeue_time: The most recent time at which the task has been + requeued by the Batch service as the result of a user request. This + property is set only if the requeueCount is nonzero. + :type last_requeue_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'retry_count': {'required': True}, + 'requeue_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'requeue_count': {'key': 'requeueCount', 'type': 'int'}, + 'last_requeue_time': {'key': 'lastRequeueTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(TaskExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.retry_count = kwargs.get('retry_count', None) + self.last_retry_time = kwargs.get('last_retry_time', None) + self.requeue_count = kwargs.get('requeue_count', None) + self.last_requeue_time = kwargs.get('last_requeue_time', None) + self.result = kwargs.get('result', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_execution_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_execution_information_py3.py new file mode 100644 index 00000000..330bb6f4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_execution_information_py3.py @@ -0,0 +1,109 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskExecutionInformation(Model): + """Information about the execution of a task. + + All required parameters must be populated in order to send to Azure. + + :param start_time: The time at which the task started running. 'Running' + corresponds to the running state, so if the task specifies resource files + or application packages, then the start time reflects the time at which + the task started downloading or deploying these. If the task has been + restarted or retried, this is the most recent time at which the task + started running. This property is present only for tasks that are in the + running or completed state. + :type start_time: datetime + :param end_time: The time at which the task completed. This property is + set only if the task is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the task + command line. This property is set only if the task is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the task (due to timeout, or user + termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + task is executing. This property is set only if the task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the task failure, if any. This + property is set only if the task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the task could not be run) and + file upload errors are not retried. The Batch service will retry the task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the task + started running. This element is present only if the task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the task has been restarted for reasons + other than retry; for example, if the compute node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param requeue_count: Required. The number of times the task has been + requeued by the Batch service as the result of a user request. When the + user removes nodes from a pool (by resizing/shrinking the pool) or when + the job is being disabled, the user can specify that running tasks on the + nodes be requeued for execution. This count tracks how many times the task + has been requeued for these reasons. + :type requeue_count: int + :param last_requeue_time: The most recent time at which the task has been + requeued by the Batch service as the result of a user request. This + property is set only if the requeueCount is nonzero. + :type last_requeue_time: datetime + :param result: The result of the task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'retry_count': {'required': True}, + 'requeue_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'requeue_count': {'key': 'requeueCount', 'type': 'int'}, + 'last_requeue_time': {'key': 'lastRequeueTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, retry_count: int, requeue_count: int, start_time=None, end_time=None, exit_code: int=None, container_info=None, failure_info=None, last_retry_time=None, last_requeue_time=None, result=None, **kwargs) -> None: + super(TaskExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.retry_count = retry_count + self.last_retry_time = last_retry_time + self.requeue_count = requeue_count + self.last_requeue_time = last_requeue_time + self.result = result diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_failure_information.py b/azext/batch/_vendor/v4/azure/batch/models/task_failure_information.py new file mode 100644 index 00000000..fc6a45fc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_failure_information.py @@ -0,0 +1,49 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskFailureInformation(Model): + """Information about a task failure. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the task error. Possible values + include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the task error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the task error, intended to be + suitable for display in a user interface. + :type message: str + :param details: A list of additional details related to the error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(TaskFailureInformation, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.details = kwargs.get('details', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_failure_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_failure_information_py3.py new file mode 100644 index 00000000..b5eece45 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_failure_information_py3.py @@ -0,0 +1,49 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskFailureInformation(Model): + """Information about a task failure. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the task error. Possible values + include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the task error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the task error, intended to be + suitable for display in a user interface. + :type message: str + :param details: A list of additional details related to the error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, category, code: str=None, message: str=None, details=None, **kwargs) -> None: + super(TaskFailureInformation, self).__init__(**kwargs) + self.category = category + self.code = code + self.message = message + self.details = details diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_get_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_get_options.py new file mode 100644 index 00000000..08c1fd8a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_get_options.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_get_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_get_options_py3.py new file mode 100644 index 00000000..68699028 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_get_options_py3.py @@ -0,0 +1,81 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_id_range.py b/azext/batch/_vendor/v4/azure/batch/models/task_id_range.py new file mode 100644 index 00000000..db30d858 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_id_range.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskIdRange(Model): + """A range of task IDs that a task can depend on. All tasks with IDs in the + range must complete successfully before the dependent task can be + scheduled. + + The start and end of the range are inclusive. For example, if a range has + start 9 and end 12, then it represents tasks '9', '10', '11' and '12'. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first task ID in the range. + :type start: int + :param end: Required. The last task ID in the range. + :type end: int + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(TaskIdRange, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_id_range_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_id_range_py3.py new file mode 100644 index 00000000..446ed8ee --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_id_range_py3.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskIdRange(Model): + """A range of task IDs that a task can depend on. All tasks with IDs in the + range must complete successfully before the dependent task can be + scheduled. + + The start and end of the range are inclusive. For example, if a range has + start 9 and end 12, then it represents tasks '9', '10', '11' and '12'. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first task ID in the range. + :type start: int + :param end: Required. The last task ID in the range. + :type end: int + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + } + + def __init__(self, *, start: int, end: int, **kwargs) -> None: + super(TaskIdRange, self).__init__(**kwargs) + self.start = start + self.end = end diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_information.py b/azext/batch/_vendor/v4/azure/batch/models/task_information.py new file mode 100644 index 00000000..6e8ec0d1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_information.py @@ -0,0 +1,56 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskInformation(Model): + """Information about a task running on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param task_url: The URL of the task. + :type task_url: str + :param job_id: The ID of the job to which the task belongs. + :type job_id: str + :param task_id: The ID of the task. + :type task_id: str + :param subtask_id: The ID of the subtask if the task is a multi-instance + task. + :type subtask_id: int + :param task_state: Required. The current state of the task. Possible + values include: 'active', 'preparing', 'running', 'completed' + :type task_state: str or ~azure.batch.models.TaskState + :param execution_info: Information about the execution of the task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + """ + + _validation = { + 'task_state': {'required': True}, + } + + _attribute_map = { + 'task_url': {'key': 'taskUrl', 'type': 'str'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'subtask_id': {'key': 'subtaskId', 'type': 'int'}, + 'task_state': {'key': 'taskState', 'type': 'TaskState'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + } + + def __init__(self, **kwargs): + super(TaskInformation, self).__init__(**kwargs) + self.task_url = kwargs.get('task_url', None) + self.job_id = kwargs.get('job_id', None) + self.task_id = kwargs.get('task_id', None) + self.subtask_id = kwargs.get('subtask_id', None) + self.task_state = kwargs.get('task_state', None) + self.execution_info = kwargs.get('execution_info', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_information_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_information_py3.py new file mode 100644 index 00000000..9406cba4 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_information_py3.py @@ -0,0 +1,56 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskInformation(Model): + """Information about a task running on a compute node. + + All required parameters must be populated in order to send to Azure. + + :param task_url: The URL of the task. + :type task_url: str + :param job_id: The ID of the job to which the task belongs. + :type job_id: str + :param task_id: The ID of the task. + :type task_id: str + :param subtask_id: The ID of the subtask if the task is a multi-instance + task. + :type subtask_id: int + :param task_state: Required. The current state of the task. Possible + values include: 'active', 'preparing', 'running', 'completed' + :type task_state: str or ~azure.batch.models.TaskState + :param execution_info: Information about the execution of the task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + """ + + _validation = { + 'task_state': {'required': True}, + } + + _attribute_map = { + 'task_url': {'key': 'taskUrl', 'type': 'str'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'subtask_id': {'key': 'subtaskId', 'type': 'int'}, + 'task_state': {'key': 'taskState', 'type': 'TaskState'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + } + + def __init__(self, *, task_state, task_url: str=None, job_id: str=None, task_id: str=None, subtask_id: int=None, execution_info=None, **kwargs) -> None: + super(TaskInformation, self).__init__(**kwargs) + self.task_url = task_url + self.job_id = job_id + self.task_id = task_id + self.subtask_id = subtask_id + self.task_state = task_state + self.execution_info = execution_info diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_list_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_list_options.py new file mode 100644 index 00000000..08c9cb00 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_list_options.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_list_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_list_options_py3.py new file mode 100644 index 00000000..bb02726e --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_list_options_py3.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options.py new file mode 100644 index 00000000..8157cee2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskListSubtasksOptions(Model): + """Additional parameters for list_subtasks operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskListSubtasksOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options_py3.py new file mode 100644 index 00000000..b8810800 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_list_subtasks_options_py3.py @@ -0,0 +1,50 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskListSubtasksOptions(Model): + """Additional parameters for list_subtasks operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskListSubtasksOptions, self).__init__(**kwargs) + self.select = select + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options.py new file mode 100644 index 00000000..fe074611 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskReactivateOptions(Model): + """Additional parameters for reactivate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskReactivateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options_py3.py new file mode 100644 index 00000000..bd39d6c9 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_reactivate_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskReactivateOptions(Model): + """Additional parameters for reactivate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskReactivateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy.py b/azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy.py new file mode 100644 index 00000000..2f121acb --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskSchedulingPolicy(Model): + """Specifies how tasks should be distributed across compute nodes. + + All required parameters must be populated in order to send to Azure. + + :param node_fill_type: Required. How tasks are distributed across compute + nodes in a pool. Possible values include: 'spread', 'pack' + :type node_fill_type: str or ~azure.batch.models.ComputeNodeFillType + """ + + _validation = { + 'node_fill_type': {'required': True}, + } + + _attribute_map = { + 'node_fill_type': {'key': 'nodeFillType', 'type': 'ComputeNodeFillType'}, + } + + def __init__(self, **kwargs): + super(TaskSchedulingPolicy, self).__init__(**kwargs) + self.node_fill_type = kwargs.get('node_fill_type', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy_py3.py new file mode 100644 index 00000000..f3ff79a1 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_scheduling_policy_py3.py @@ -0,0 +1,35 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskSchedulingPolicy(Model): + """Specifies how tasks should be distributed across compute nodes. + + All required parameters must be populated in order to send to Azure. + + :param node_fill_type: Required. How tasks are distributed across compute + nodes in a pool. Possible values include: 'spread', 'pack' + :type node_fill_type: str or ~azure.batch.models.ComputeNodeFillType + """ + + _validation = { + 'node_fill_type': {'required': True}, + } + + _attribute_map = { + 'node_fill_type': {'key': 'nodeFillType', 'type': 'ComputeNodeFillType'}, + } + + def __init__(self, *, node_fill_type, **kwargs) -> None: + super(TaskSchedulingPolicy, self).__init__(**kwargs) + self.node_fill_type = node_fill_type diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_statistics.py b/azext/batch/_vendor/v4/azure/batch/models/task_statistics.py new file mode 100644 index 00000000..b5f877fc --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_statistics.py @@ -0,0 +1,100 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskStatistics(Model): + """Resource usage statistics for a task. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all compute nodes) consumed by the task. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all compute nodes) consumed by the task. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of the task. + The wall clock time is the elapsed time from when the task started running + on a compute node to when it finished (or to the last time the statistics + were updated, if the task had not finished by then). If the task was + retried, this includes the wall clock time of all the task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by the task. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by the task. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by the + task. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by the + task. + :type write_io_gi_b: float + :param wait_time: Required. The total wait time of the task. The wait time + for a task is defined as the elapsed time between the creation of the task + and the start of task execution. (If the task is retried due to failures, + the wait time is the time to the most recent task execution.). + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(TaskStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.kernel_cpu_time = kwargs.get('kernel_cpu_time', None) + self.wall_clock_time = kwargs.get('wall_clock_time', None) + self.read_iops = kwargs.get('read_iops', None) + self.write_iops = kwargs.get('write_iops', None) + self.read_io_gi_b = kwargs.get('read_io_gi_b', None) + self.write_io_gi_b = kwargs.get('write_io_gi_b', None) + self.wait_time = kwargs.get('wait_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_statistics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_statistics_py3.py new file mode 100644 index 00000000..42de1dba --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_statistics_py3.py @@ -0,0 +1,100 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskStatistics(Model): + """Resource usage statistics for a task. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all compute nodes) consumed by the task. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all compute nodes) consumed by the task. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of the task. + The wall clock time is the elapsed time from when the task started running + on a compute node to when it finished (or to the last time the statistics + were updated, if the task had not finished by then). If the task was + retried, this includes the wall clock time of all the task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by the task. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by the task. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by the + task. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by the + task. + :type write_io_gi_b: float + :param wait_time: Required. The total wait time of the task. The wait time + for a task is defined as the elapsed time between the creation of the task + and the start of task execution. (If the task is retried due to failures, + the wait time is the time to the most recent task execution.). + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, user_cpu_time, kernel_cpu_time, wall_clock_time, read_iops: int, write_iops: int, read_io_gi_b: float, write_io_gi_b: float, wait_time, **kwargs) -> None: + super(TaskStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.user_cpu_time = user_cpu_time + self.kernel_cpu_time = kernel_cpu_time + self.wall_clock_time = wall_clock_time + self.read_iops = read_iops + self.write_iops = write_iops + self.read_io_gi_b = read_io_gi_b + self.write_io_gi_b = write_io_gi_b + self.wait_time = wait_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_terminate_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_terminate_options.py new file mode 100644 index 00000000..1908a9da --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_terminate_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskTerminateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_terminate_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_terminate_options_py3.py new file mode 100644 index 00000000..d967db3a --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_terminate_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskTerminateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_update_options.py b/azext/batch/_vendor/v4/azure/batch/models/task_update_options.py new file mode 100644 index 00000000..32e1ad82 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_update_options.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskUpdateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_update_options_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_update_options_py3.py new file mode 100644 index 00000000..2a20ddf5 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_update_options_py3.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskUpdateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_update_parameter.py b/azext/batch/_vendor/v4/azure/batch/models/task_update_parameter.py new file mode 100644 index 00000000..84246a43 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_update_parameter.py @@ -0,0 +1,30 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskUpdateParameter(Model): + """The set of changes to be made to a task. + + :param constraints: Constraints that apply to this task. If omitted, the + task is given the default constraints. For multi-instance tasks, updating + the retention time applies only to the primary task and not subtasks. + :type constraints: ~azure.batch.models.TaskConstraints + """ + + _attribute_map = { + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + } + + def __init__(self, **kwargs): + super(TaskUpdateParameter, self).__init__(**kwargs) + self.constraints = kwargs.get('constraints', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/task_update_parameter_py3.py b/azext/batch/_vendor/v4/azure/batch/models/task_update_parameter_py3.py new file mode 100644 index 00000000..71594e62 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/task_update_parameter_py3.py @@ -0,0 +1,30 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class TaskUpdateParameter(Model): + """The set of changes to be made to a task. + + :param constraints: Constraints that apply to this task. If omitted, the + task is given the default constraints. For multi-instance tasks, updating + the retention time applies only to the primary task and not subtasks. + :type constraints: ~azure.batch.models.TaskConstraints + """ + + _attribute_map = { + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + } + + def __init__(self, *, constraints=None, **kwargs) -> None: + super(TaskUpdateParameter, self).__init__(**kwargs) + self.constraints = constraints diff --git a/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration.py new file mode 100644 index 00000000..1f96d326 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UploadBatchServiceLogsConfiguration(Model): + """The Azure Batch service log files upload configuration for a compute node. + + All required parameters must be populated in order to send to Azure. + + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the Batch Service log file(s). The URL must + include a Shared Access Signature (SAS) granting write permissions to the + container. The SAS duration must allow enough time for the upload to + finish. The start time for SAS is optional and recommended to not be + specified. + :type container_url: str + :param start_time: Required. The start of the time range from which to + upload Batch Service log file(s). Any log file containing a log message in + the time range will be uploaded. This means that the operation might + retrieve more logs than have been requested since the entire log file is + always uploaded, but the operation should not retrieve fewer logs than + have been requested. + :type start_time: datetime + :param end_time: The end of the time range from which to upload Batch + Service log file(s). Any log file containing a log message in the time + range will be uploaded. This means that the operation might retrieve more + logs than have been requested since the entire log file is always + uploaded, but the operation should not retrieve fewer logs than have been + requested. If omitted, the default is to upload all logs available after + the startTime. + :type end_time: datetime + """ + + _validation = { + 'container_url': {'required': True}, + 'start_time': {'required': True}, + } + + _attribute_map = { + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(UploadBatchServiceLogsConfiguration, self).__init__(**kwargs) + self.container_url = kwargs.get('container_url', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration_py3.py new file mode 100644 index 00000000..875beb60 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_configuration_py3.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UploadBatchServiceLogsConfiguration(Model): + """The Azure Batch service log files upload configuration for a compute node. + + All required parameters must be populated in order to send to Azure. + + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the Batch Service log file(s). The URL must + include a Shared Access Signature (SAS) granting write permissions to the + container. The SAS duration must allow enough time for the upload to + finish. The start time for SAS is optional and recommended to not be + specified. + :type container_url: str + :param start_time: Required. The start of the time range from which to + upload Batch Service log file(s). Any log file containing a log message in + the time range will be uploaded. This means that the operation might + retrieve more logs than have been requested since the entire log file is + always uploaded, but the operation should not retrieve fewer logs than + have been requested. + :type start_time: datetime + :param end_time: The end of the time range from which to upload Batch + Service log file(s). Any log file containing a log message in the time + range will be uploaded. This means that the operation might retrieve more + logs than have been requested since the entire log file is always + uploaded, but the operation should not retrieve fewer logs than have been + requested. If omitted, the default is to upload all logs available after + the startTime. + :type end_time: datetime + """ + + _validation = { + 'container_url': {'required': True}, + 'start_time': {'required': True}, + } + + _attribute_map = { + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, *, container_url: str, start_time, end_time=None, **kwargs) -> None: + super(UploadBatchServiceLogsConfiguration, self).__init__(**kwargs) + self.container_url = container_url + self.start_time = start_time + self.end_time = end_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result.py b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result.py new file mode 100644 index 00000000..a2d5a0fe --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UploadBatchServiceLogsResult(Model): + """The result of uploading Batch service log files from a specific compute + node. + + All required parameters must be populated in order to send to Azure. + + :param virtual_directory_name: Required. The virtual directory within + Azure Blob Storage container to which the Batch Service log file(s) will + be uploaded. The virtual directory name is part of the blob name for each + log file uploaded, and it is built based poolId, nodeId and a unique + identifier. + :type virtual_directory_name: str + :param number_of_files_uploaded: Required. The number of log files which + will be uploaded. + :type number_of_files_uploaded: int + """ + + _validation = { + 'virtual_directory_name': {'required': True}, + 'number_of_files_uploaded': {'required': True}, + } + + _attribute_map = { + 'virtual_directory_name': {'key': 'virtualDirectoryName', 'type': 'str'}, + 'number_of_files_uploaded': {'key': 'numberOfFilesUploaded', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(UploadBatchServiceLogsResult, self).__init__(**kwargs) + self.virtual_directory_name = kwargs.get('virtual_directory_name', None) + self.number_of_files_uploaded = kwargs.get('number_of_files_uploaded', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result_py3.py b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result_py3.py new file mode 100644 index 00000000..f9547bc2 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/upload_batch_service_logs_result_py3.py @@ -0,0 +1,45 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UploadBatchServiceLogsResult(Model): + """The result of uploading Batch service log files from a specific compute + node. + + All required parameters must be populated in order to send to Azure. + + :param virtual_directory_name: Required. The virtual directory within + Azure Blob Storage container to which the Batch Service log file(s) will + be uploaded. The virtual directory name is part of the blob name for each + log file uploaded, and it is built based poolId, nodeId and a unique + identifier. + :type virtual_directory_name: str + :param number_of_files_uploaded: Required. The number of log files which + will be uploaded. + :type number_of_files_uploaded: int + """ + + _validation = { + 'virtual_directory_name': {'required': True}, + 'number_of_files_uploaded': {'required': True}, + } + + _attribute_map = { + 'virtual_directory_name': {'key': 'virtualDirectoryName', 'type': 'str'}, + 'number_of_files_uploaded': {'key': 'numberOfFilesUploaded', 'type': 'int'}, + } + + def __init__(self, *, virtual_directory_name: str, number_of_files_uploaded: int, **kwargs) -> None: + super(UploadBatchServiceLogsResult, self).__init__(**kwargs) + self.virtual_directory_name = virtual_directory_name + self.number_of_files_uploaded = number_of_files_uploaded diff --git a/azext/batch/_vendor/v4/azure/batch/models/usage_statistics.py b/azext/batch/_vendor/v4/azure/batch/models/usage_statistics.py new file mode 100644 index 00000000..08d709ad --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/usage_statistics.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UsageStatistics(Model): + """Statistics related to pool usage information. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param dedicated_core_time: Required. The aggregated wall-clock time of + the dedicated compute node cores being part of the pool. + :type dedicated_core_time: timedelta + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'dedicated_core_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'dedicated_core_time': {'key': 'dedicatedCoreTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(UsageStatistics, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.dedicated_core_time = kwargs.get('dedicated_core_time', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/usage_statistics_py3.py b/azext/batch/_vendor/v4/azure/batch/models/usage_statistics_py3.py new file mode 100644 index 00000000..9fafd25d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/usage_statistics_py3.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UsageStatistics(Model): + """Statistics related to pool usage information. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param dedicated_core_time: Required. The aggregated wall-clock time of + the dedicated compute node cores being part of the pool. + :type dedicated_core_time: timedelta + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'dedicated_core_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'dedicated_core_time': {'key': 'dedicatedCoreTime', 'type': 'duration'}, + } + + def __init__(self, *, start_time, last_update_time, dedicated_core_time, **kwargs) -> None: + super(UsageStatistics, self).__init__(**kwargs) + self.start_time = start_time + self.last_update_time = last_update_time + self.dedicated_core_time = dedicated_core_time diff --git a/azext/batch/_vendor/v4/azure/batch/models/user_account.py b/azext/batch/_vendor/v4/azure/batch/models/user_account.py new file mode 100644 index 00000000..e630e5ec --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/user_account.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UserAccount(Model): + """Properties used to create a user used to execute tasks on an Azure Batch + node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the user account. + :type name: str + :param password: Required. The password for the user account. + :type password: str + :param elevation_level: The elevation level of the user account. The + default value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + :param linux_user_configuration: The Linux-specific user configuration for + the user account. This property is ignored if specified on a Windows pool. + If not specified, the user is created with the default options. + :type linux_user_configuration: ~azure.batch.models.LinuxUserConfiguration + """ + + _validation = { + 'name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + 'linux_user_configuration': {'key': 'linuxUserConfiguration', 'type': 'LinuxUserConfiguration'}, + } + + def __init__(self, **kwargs): + super(UserAccount, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.password = kwargs.get('password', None) + self.elevation_level = kwargs.get('elevation_level', None) + self.linux_user_configuration = kwargs.get('linux_user_configuration', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/user_account_py3.py b/azext/batch/_vendor/v4/azure/batch/models/user_account_py3.py new file mode 100644 index 00000000..33a2d369 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/user_account_py3.py @@ -0,0 +1,51 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UserAccount(Model): + """Properties used to create a user used to execute tasks on an Azure Batch + node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the user account. + :type name: str + :param password: Required. The password for the user account. + :type password: str + :param elevation_level: The elevation level of the user account. The + default value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + :param linux_user_configuration: The Linux-specific user configuration for + the user account. This property is ignored if specified on a Windows pool. + If not specified, the user is created with the default options. + :type linux_user_configuration: ~azure.batch.models.LinuxUserConfiguration + """ + + _validation = { + 'name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + 'linux_user_configuration': {'key': 'linuxUserConfiguration', 'type': 'LinuxUserConfiguration'}, + } + + def __init__(self, *, name: str, password: str, elevation_level=None, linux_user_configuration=None, **kwargs) -> None: + super(UserAccount, self).__init__(**kwargs) + self.name = name + self.password = password + self.elevation_level = elevation_level + self.linux_user_configuration = linux_user_configuration diff --git a/azext/batch/_vendor/v4/azure/batch/models/user_identity.py b/azext/batch/_vendor/v4/azure/batch/models/user_identity.py new file mode 100644 index 00000000..b75dfd73 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/user_identity.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UserIdentity(Model): + """The definition of the user identity under which the task is run. + + Specify either the userName or autoUser property, but not both. On + CloudServiceConfiguration pools, this user is logged in with the + INTERACTIVE flag. On Windows VirtualMachineConfiguration pools, this user + is logged in with the BATCH flag. + + :param user_name: The name of the user identity under which the task is + run. The userName and autoUser properties are mutually exclusive; you must + specify one but not both. + :type user_name: str + :param auto_user: The auto user under which the task is run. The userName + and autoUser properties are mutually exclusive; you must specify one but + not both. + :type auto_user: ~azure.batch.models.AutoUserSpecification + """ + + _attribute_map = { + 'user_name': {'key': 'username', 'type': 'str'}, + 'auto_user': {'key': 'autoUser', 'type': 'AutoUserSpecification'}, + } + + def __init__(self, **kwargs): + super(UserIdentity, self).__init__(**kwargs) + self.user_name = kwargs.get('user_name', None) + self.auto_user = kwargs.get('auto_user', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/user_identity_py3.py b/azext/batch/_vendor/v4/azure/batch/models/user_identity_py3.py new file mode 100644 index 00000000..e566f58c --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/user_identity_py3.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class UserIdentity(Model): + """The definition of the user identity under which the task is run. + + Specify either the userName or autoUser property, but not both. On + CloudServiceConfiguration pools, this user is logged in with the + INTERACTIVE flag. On Windows VirtualMachineConfiguration pools, this user + is logged in with the BATCH flag. + + :param user_name: The name of the user identity under which the task is + run. The userName and autoUser properties are mutually exclusive; you must + specify one but not both. + :type user_name: str + :param auto_user: The auto user under which the task is run. The userName + and autoUser properties are mutually exclusive; you must specify one but + not both. + :type auto_user: ~azure.batch.models.AutoUserSpecification + """ + + _attribute_map = { + 'user_name': {'key': 'username', 'type': 'str'}, + 'auto_user': {'key': 'autoUser', 'type': 'AutoUserSpecification'}, + } + + def __init__(self, *, user_name: str=None, auto_user=None, **kwargs) -> None: + super(UserIdentity, self).__init__(**kwargs) + self.user_name = user_name + self.auto_user = auto_user diff --git a/azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration.py new file mode 100644 index 00000000..52b8d7f6 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration.py @@ -0,0 +1,92 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class VirtualMachineConfiguration(Model): + """The configuration for compute nodes in a pool based on the Azure Virtual + Machines infrastructure. + + All required parameters must be populated in order to send to Azure. + + :param image_reference: Required. A reference to the Azure Virtual + Machines Marketplace image or the custom Virtual Machine image to use. + :type image_reference: ~azure.batch.models.ImageReference + :param os_disk: Settings for the operating system disk of the Virtual + Machine. + :type os_disk: ~azure.batch.models.OSDisk + :param node_agent_sku_id: Required. The SKU of the Batch node agent to be + provisioned on compute nodes in the pool. The Batch node agent is a + program that runs on each node in the pool, and provides the + command-and-control interface between the node and the Batch service. + There are different implementations of the node agent, known as SKUs, for + different operating systems. You must specify a node agent SKU which + matches the selected image reference. To get the list of supported node + agent SKUs along with their list of verified image references, see the + 'List supported node agent SKUs' operation. + :type node_agent_sku_id: str + :param windows_configuration: Windows operating system settings on the + virtual machine. This property must not be specified if the imageReference + or osDisk property specifies a Linux OS image. + :type windows_configuration: ~azure.batch.models.WindowsConfiguration + :param data_disks: The configuration for data disks attached to the + comptue nodes in the pool. This property must be specified if the compute + nodes in the pool need to have empty data disks attached to them. This + cannot be updated. Each node gets its own disk (the disk is not a file + share). Existing disks cannot be attached, each attached disk is empty. + When the node is removed from the pool, the disk and all data associated + with it is also deleted. The disk is not formatted after being attached, + it must be formatted before use - for more information see + https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux + and + https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. + :type data_disks: list[~azure.batch.models.DataDisk] + :param license_type: The type of on-premises license to be used when + deploying the operating system. This only applies to images that contain + the Windows operating system, and should only be used when you hold valid + on-premises licenses for the nodes which will be deployed. If omitted, no + on-premises licensing discount is applied. Values are: + Windows_Server - The on-premises license is for Windows Server. + Windows_Client - The on-premises license is for Windows Client. + :type license_type: str + :param container_configuration: The container configuration for the pool. + If specified, setup is performed on each node in the pool to allow tasks + to run in containers. All regular tasks and job manager tasks run on this + pool must specify the containerSettings property, and all other tasks may + specify it. + :type container_configuration: ~azure.batch.models.ContainerConfiguration + """ + + _validation = { + 'image_reference': {'required': True}, + 'node_agent_sku_id': {'required': True}, + } + + _attribute_map = { + 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, + 'os_disk': {'key': 'osDisk', 'type': 'OSDisk'}, + 'node_agent_sku_id': {'key': 'nodeAgentSKUId', 'type': 'str'}, + 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, + 'data_disks': {'key': 'dataDisks', 'type': '[DataDisk]'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'container_configuration': {'key': 'containerConfiguration', 'type': 'ContainerConfiguration'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineConfiguration, self).__init__(**kwargs) + self.image_reference = kwargs.get('image_reference', None) + self.os_disk = kwargs.get('os_disk', None) + self.node_agent_sku_id = kwargs.get('node_agent_sku_id', None) + self.windows_configuration = kwargs.get('windows_configuration', None) + self.data_disks = kwargs.get('data_disks', None) + self.license_type = kwargs.get('license_type', None) + self.container_configuration = kwargs.get('container_configuration', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration_py3.py new file mode 100644 index 00000000..686568a7 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/virtual_machine_configuration_py3.py @@ -0,0 +1,92 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class VirtualMachineConfiguration(Model): + """The configuration for compute nodes in a pool based on the Azure Virtual + Machines infrastructure. + + All required parameters must be populated in order to send to Azure. + + :param image_reference: Required. A reference to the Azure Virtual + Machines Marketplace image or the custom Virtual Machine image to use. + :type image_reference: ~azure.batch.models.ImageReference + :param os_disk: Settings for the operating system disk of the Virtual + Machine. + :type os_disk: ~azure.batch.models.OSDisk + :param node_agent_sku_id: Required. The SKU of the Batch node agent to be + provisioned on compute nodes in the pool. The Batch node agent is a + program that runs on each node in the pool, and provides the + command-and-control interface between the node and the Batch service. + There are different implementations of the node agent, known as SKUs, for + different operating systems. You must specify a node agent SKU which + matches the selected image reference. To get the list of supported node + agent SKUs along with their list of verified image references, see the + 'List supported node agent SKUs' operation. + :type node_agent_sku_id: str + :param windows_configuration: Windows operating system settings on the + virtual machine. This property must not be specified if the imageReference + or osDisk property specifies a Linux OS image. + :type windows_configuration: ~azure.batch.models.WindowsConfiguration + :param data_disks: The configuration for data disks attached to the + comptue nodes in the pool. This property must be specified if the compute + nodes in the pool need to have empty data disks attached to them. This + cannot be updated. Each node gets its own disk (the disk is not a file + share). Existing disks cannot be attached, each attached disk is empty. + When the node is removed from the pool, the disk and all data associated + with it is also deleted. The disk is not formatted after being attached, + it must be formatted before use - for more information see + https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux + and + https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. + :type data_disks: list[~azure.batch.models.DataDisk] + :param license_type: The type of on-premises license to be used when + deploying the operating system. This only applies to images that contain + the Windows operating system, and should only be used when you hold valid + on-premises licenses for the nodes which will be deployed. If omitted, no + on-premises licensing discount is applied. Values are: + Windows_Server - The on-premises license is for Windows Server. + Windows_Client - The on-premises license is for Windows Client. + :type license_type: str + :param container_configuration: The container configuration for the pool. + If specified, setup is performed on each node in the pool to allow tasks + to run in containers. All regular tasks and job manager tasks run on this + pool must specify the containerSettings property, and all other tasks may + specify it. + :type container_configuration: ~azure.batch.models.ContainerConfiguration + """ + + _validation = { + 'image_reference': {'required': True}, + 'node_agent_sku_id': {'required': True}, + } + + _attribute_map = { + 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, + 'os_disk': {'key': 'osDisk', 'type': 'OSDisk'}, + 'node_agent_sku_id': {'key': 'nodeAgentSKUId', 'type': 'str'}, + 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, + 'data_disks': {'key': 'dataDisks', 'type': '[DataDisk]'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'container_configuration': {'key': 'containerConfiguration', 'type': 'ContainerConfiguration'}, + } + + def __init__(self, *, image_reference, node_agent_sku_id: str, os_disk=None, windows_configuration=None, data_disks=None, license_type: str=None, container_configuration=None, **kwargs) -> None: + super(VirtualMachineConfiguration, self).__init__(**kwargs) + self.image_reference = image_reference + self.os_disk = os_disk + self.node_agent_sku_id = node_agent_sku_id + self.windows_configuration = windows_configuration + self.data_disks = data_disks + self.license_type = license_type + self.container_configuration = container_configuration diff --git a/azext/batch/_vendor/v4/azure/batch/models/windows_configuration.py b/azext/batch/_vendor/v4/azure/batch/models/windows_configuration.py new file mode 100644 index 00000000..6b27533d --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/windows_configuration.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class WindowsConfiguration(Model): + """Windows operating system settings to apply to the virtual machine. + + :param enable_automatic_updates: Whether automatic updates are enabled on + the virtual machine. If omitted, the default value is true. + :type enable_automatic_updates: bool + """ + + _attribute_map = { + 'enable_automatic_updates': {'key': 'enableAutomaticUpdates', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(WindowsConfiguration, self).__init__(**kwargs) + self.enable_automatic_updates = kwargs.get('enable_automatic_updates', None) diff --git a/azext/batch/_vendor/v4/azure/batch/models/windows_configuration_py3.py b/azext/batch/_vendor/v4/azure/batch/models/windows_configuration_py3.py new file mode 100644 index 00000000..40a4aedf --- /dev/null +++ b/azext/batch/_vendor/v4/azure/batch/models/windows_configuration_py3.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class WindowsConfiguration(Model): + """Windows operating system settings to apply to the virtual machine. + + :param enable_automatic_updates: Whether automatic updates are enabled on + the virtual machine. If omitted, the default value is true. + :type enable_automatic_updates: bool + """ + + _attribute_map = { + 'enable_automatic_updates': {'key': 'enableAutomaticUpdates', 'type': 'bool'}, + } + + def __init__(self, *, enable_automatic_updates: bool=None, **kwargs) -> None: + super(WindowsConfiguration, self).__init__(**kwargs) + self.enable_automatic_updates = enable_automatic_updates diff --git a/azext/batch/models/constants.py b/azext/batch/models/constants.py index 1779fdca..ca88aba2 100644 --- a/azext/batch/models/constants.py +++ b/azext/batch/models/constants.py @@ -65,6 +65,17 @@ 'dependsOn'}) -# Dates used as cutoffs for different SDK extension versions -class KnownTemplateVersion(Enum): - Dec2018 = "2018-12-01" +# Ensure the first member of this array is the official REST Version +class SupportedRestApi(Enum): + Aug2018 = ["2018-08-01.7.0", "2018-08-01"] + Dec2018 = ["2018-12-01.8.0", "2018-12-01"] + + +class SupportedTemplateApi(Enum): + Latest = ["latest"] + + +SupportRestApiToSdkVersion = { + SupportedRestApi.Aug2018: "4", + SupportedRestApi.Dec2018: "latest", +} diff --git a/azext/batch/operations/job_operations.py b/azext/batch/operations/job_operations.py index 6f0cb132..56573428 100644 --- a/azext/batch/operations/job_operations.py +++ b/azext/batch/operations/job_operations.py @@ -4,15 +4,21 @@ # -------------------------------------------------------------------------------------------- from __future__ import unicode_literals +import importlib +import logging + from datetime import datetime as dt +from mock import patch from msrest.exceptions import DeserializationError from azure.batch.operations._job_operations import JobOperations from .. import models -from .. import _template_utils as templates -from .. import _pool_utils as pool_utils +from .. import _template_utils +from .. import _pool_utils from .._file_utils import FileUtils -from ..models.constants import KnownTemplateVersion +from ..models.constants import * + +logger = logging.getLogger(__name__) class ExtendedJobOperations(JobOperations): """JobOperations operations. @@ -53,7 +59,7 @@ def expand_template(template, parameters=None): :param template: The template data. Must be a dictionary. :param parameters: The values of parameters to be substituted into the template. Must be a dictionary. - :returns: The pool specification JSON dictionary. + :returns: The job specification JSON dictionary. """ if not isinstance(template, dict): raise ValueError("template isn't a JSON dictionary") @@ -61,7 +67,7 @@ def expand_template(template, parameters=None): raise ValueError("parameters isn't a JSON dictionary") elif not parameters: parameters = {} - expanded_job_object = templates.expand_template(template, parameters) + expanded_job_object = _template_utils.expand_template(template, parameters) try: return expanded_job_object['job'] except KeyError: @@ -73,22 +79,39 @@ def jobparameter_from_json(json_data): :param dict json_data: The JSON specification of an AddJobParameter or an ExtendedJobParameter or a JobTemplate """ + # json_data = templates.convert_blob_source_to_http_url(json_data) + api_version_raw = json_data.get('apiVersion') + if api_version_raw: + api_version = None + for valid_version in SupportedRestApi: + if api_version_raw in valid_version.value: + api_version = valid_version + break + + if api_version and SupportRestApiToSdkVersion[api_version] != "latest": + vendor_base = "azext.batch._vendor.v{}.azext.batch".format( + SupportRestApiToSdkVersion[api_version]) + models_str = "{}.models".format(vendor_base) + vendored_models = importlib.import_module(models_str) + return ExtendedJobOperations._jobparameter_from_json( + json_data, + vendored_models) + else: + logging.warning("Invalid apiVersion, defaulting to latest") + return ExtendedJobOperations._jobparameter_from_json( + json_data, + models) + + @staticmethod + def _jobparameter_from_json(json_data, models_impl): result = 'JobTemplate' if json_data.get('properties') else 'ExtendedJobParameter' - json_data = templates.convert_blob_source_to_http_url(json_data) try: if result == 'JobTemplate': - if 'apiVersion' in json_data: - max_datetime = dt.strptime(KnownTemplateVersion.Dec2018.value, "%Y-%m-%d") - specified_datetime = dt.strptime(json_data['apiVersion'], "%Y-%m-%d") - if max_datetime < specified_datetime: - raise NotImplementedError( - "This SDK does not have template API version {} implemented".format( - json_data['apiVersion'])) - job = models.JobTemplate.from_dict(json_data) + job = models_impl.JobTemplate.from_dict(json_data) else: - job = models.ExtendedJobParameter.from_dict(json_data) + job = models_impl.ExtendedJobParameter.from_dict(json_data) if job is None: - raise ValueError("JSON file is not in correct format.") + raise ValueError("JSON data is not in correct format.") return job except NotImplementedError: raise @@ -136,18 +159,121 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, :raises: :class:`BatchErrorException` """ - if isinstance(job, models.JobTemplate): - if job.api_version: - max_datetime = dt.strptime(KnownTemplateVersion.Dec2018.value, "%Y-%m-%d") - specified_datetime = dt.strptime(job.api_version, "%Y-%m-%d") - if max_datetime < specified_datetime: - raise NotImplementedError("This SDK does not have template API version {} implemetned".format( - job.api_version)) + original_api_version = None + api_version = None + vendored_pool_utils = importlib.import_module("azext.batch._pool_utils") + vendored_template_utils = importlib.import_module("azext.batch._template_utils") + vendored_models = importlib.import_module("azext.batch.models") + api_version_raw = getattr(job, 'api_version', None) + if api_version_raw: + for valid_version in SupportedRestApi: + if api_version_raw in valid_version.value: + api_version = valid_version + break + + if api_version and SupportRestApiToSdkVersion[api_version] != "latest": + vendor_base = "azext.batch._vendor.v{}.azext.batch".format( + SupportRestApiToSdkVersion[api_version]) + models_str = "{}.models".format( + vendor_base) + vendored_models = importlib.import_module(models_str) + + pool_utils_str = "{}._pool_utils".format( + vendor_base) + vendored_pool_utils = importlib.import_module(pool_utils_str) + + templates_str = "{}._template_utils".format( + vendor_base) + vendored_template_utils = importlib.import_module(templates_str) + + if isinstance(job, vendored_models.JobTemplate): + job = job.properties + else: + logging.warning("Invalid apiVersion, defaulting to latest") + api_version = None + + if isinstance(job, models.PoolTemplate): job = job.properties + + try: + if api_version: + original_api_version = self.api_version + self.api_version = api_version.value[0] + self._parent.task.api_version = api_version.value[0] + ret = self._add( + job, + job_add_options, + custom_headers, + raw, + threads, + vendored_pool_utils, + vendored_template_utils, + vendored_models, + **operation_config) + self.api_version = original_api_version + return ret + else: + return self._add( + job, + job_add_options, + custom_headers, + raw, + threads, + _pool_utils, + _template_utils, + models, + **operation_config) + except Exception: + if original_api_version: + self.api_version = original_api_version + self._parent.task.api_version = original_api_version + raise + add.metadata = {'url': '/jobs'} + + def _add(self, job, job_add_options, custom_headers, raw, + threads, pool_utils, template_utils, models_impl, **operation_config): + """Adds a job to the specified account. + + The Batch service supports two ways to control the work done as part of + a job. In the first approach, the user specifies a Job Manager task. + The Batch service launches this task when it is ready to start the job. + The Job Manager task controls all other tasks that run under this job, + by using the Task APIs. In the second approach, the user directly + controls the execution of tasks under an active job, by using the Task + APIs. Also note: when naming jobs, avoid including sensitive + information such as user names or secret project names. This + information may appear in telemetry logs accessible to Microsoft + Support engineers. + + :param job: The job to be added. + :type job: :class:`JobAddParameter` or + :class:`ExtendedJobParameter` + or :class:`JobTemplate` + :param job_add_options: Additional parameters for the operation + :type job_add_options: :class:`JobAddOptions + ` + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param int threads: number of threads to use in parallel when adding tasks. + If specified will start additional threads to submit requests and + wait for them to finish. Defaults to half of cpu count(floor) + :param operation_config: :ref:`Operation configuration + overrides`. + :return: :class:`TaskAddCollectionResult + ` if using TaskFactory or + :class:`ClientRawResponse` if + raw=true, otherwise None + :rtype: None or :class:`TaskAddCollectionResult + ` or + :class:`ClientRawResponse` + :raises: + :class:`BatchErrorException` + """ # Process an application template reference. if hasattr(job, 'application_template_info') and job.application_template_info: try: - templates.expand_application_template(job, self._deserialize) + template_utils.expand_application_template(job, self._deserialize) except DeserializationError as error: raise ValueError("Failed to load application template from '{}': {}". format(job.application_template_info.file_path, error)) @@ -157,9 +283,9 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, task_collection = [] file_utils = FileUtils(self.get_storage_client) if hasattr(job, 'task_factory') and job.task_factory: - if templates.has_merge_task(job): + if template_utils.has_merge_task(job): job.uses_task_dependencies = True - task_collection = templates.expand_task_factory(job, file_utils) + task_collection = template_utils.expand_task_factory(job, file_utils) # If job has a task factory and terminate job on all tasks complete is set, the job will # already be terminated when we add the tasks, so we need to set to noAction, then patch @@ -168,7 +294,7 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, auto_complete = job.on_all_tasks_complete job.on_all_tasks_complete = 'noaction' - should_get_pool = templates.should_get_pool(job, task_collection) + should_get_pool = template_utils.should_get_pool(job, task_collection) pool_os_flavor = None if should_get_pool: pool = self._get_target_pool(job) @@ -180,24 +306,24 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, and job.pool_info.auto_pool_specification.pool.package_references: pool = job.pool_info.auto_pool_specification.pool - cmds = [templates.process_pool_package_references(pool)] - pool.start_task = models.StartTask( - **templates.construct_setup_task(pool.start_task, cmds, pool_os_flavor)) + cmds = [template_utils.process_pool_package_references(pool)] + pool.start_task = models_impl.StartTask( + **template_utils.construct_setup_task(pool.start_task, cmds, pool_os_flavor)) commands = [] # Handle package management on tasks. - commands.append(templates.process_task_package_references( + commands.append(template_utils.process_task_package_references( task_collection, pool_os_flavor)) - job_prep_task_parameters = templates.construct_setup_task( + job_prep_task_parameters = template_utils.construct_setup_task( job.job_preparation_task, commands, pool_os_flavor) if job_prep_task_parameters: - job.job_preparation_task = models.JobPreparationTask(**job_prep_task_parameters) + job.job_preparation_task = models_impl.JobPreparationTask(**job_prep_task_parameters) # Handle any extended resource file references. - templates.post_processing(job, file_utils, pool_os_flavor) + template_utils.post_processing(job, file_utils, pool_os_flavor) if task_collection: - templates.post_processing(task_collection, file_utils, pool_os_flavor) - templates.process_job_for_output_files(job, task_collection, file_utils) + template_utils.post_processing(task_collection, file_utils, pool_os_flavor) + template_utils.process_job_for_output_files(job, task_collection, file_utils) # Begin original job add process result = super(ExtendedJobOperations, self).add( @@ -211,14 +337,13 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, None, raw, threads) - except Exception: + except Exception as e: # If task submission raises, we roll back the job self.delete(job.id) - raise + raise e if auto_complete: # If the option to terminate the job was set, we need to reapply it with a patch # now that the tasks have been added. self.patch(job.id, {'on_all_tasks_complete': auto_complete}) return tasks return result - add.metadata = {'url': '/jobs'} diff --git a/azext/batch/operations/pool_operations.py b/azext/batch/operations/pool_operations.py index 1deb4d73..87bcd683 100644 --- a/azext/batch/operations/pool_operations.py +++ b/azext/batch/operations/pool_operations.py @@ -3,14 +3,22 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +import importlib +import logging + +from azure.batch.operations.pool_operations import PoolOperations from datetime import datetime as dt from azure.batch.operations._pool_operations import PoolOperations +from mock import patch +from msrest import Serializer, Deserializer from .. import models -from .. import _file_utils as file_utils -from .. import _pool_utils as pool_utils -from .. import _template_utils as templates -from ..models.constants import KnownTemplateVersion +from ..models.constants import * +from .. import _file_utils +from .. import _pool_utils +from .. import _template_utils + +logger = logging.getLogger(__name__) class ExtendedPoolOperations(PoolOperations): """PoolOperations operations. @@ -41,11 +49,13 @@ def expand_template(template, parameters=None): raise ValueError("parameters isn't a JSON dictionary") elif not parameters: parameters = {} - expanded_pool_object = templates.expand_template(template, parameters) + expanded_pool_object = _template_utils.expand_template(template, parameters) try: + # If JobParameter only return content return expanded_pool_object['pool'] except KeyError: - raise ValueError("Template missing required 'pool' element") + # Else return full template + return expanded_pool_object @staticmethod def poolparameter_from_json(json_data): @@ -53,20 +63,38 @@ def poolparameter_from_json(json_data): :param dict json_data: The JSON specification of an AddPoolParameter or an ExtendedPoolParameter or a PoolTemplate. """ + api_version_raw = json_data.get('apiVersion') + if api_version_raw: + api_version = None + for valid_version in SupportedRestApi: + if api_version_raw in valid_version.value: + api_version = valid_version + break + + if api_version and SupportRestApiToSdkVersion[api_version] != "latest": + vendor_base = "azext.batch._vendor.v{}.azext.batch".format( + SupportRestApiToSdkVersion[api_version]) + models_str = "{}.models".format(vendor_base) + vendored_models = importlib.import_module(models_str) + return ExtendedPoolOperations._poolparameter_from_json(json_data, vendored_models) + else: + logging.warning("Invalid apiVersion, defaulting to latest") + return ExtendedPoolOperations._poolparameter_from_json(json_data, models) + + + @staticmethod + def _poolparameter_from_json(json_data, models_impl): + """Create an ExtendedPoolParameter object from a JSON specification. + :param dict json_data: The JSON specification of an AddPoolParameter or an + ExtendedPoolParameter or a PoolTemplate. + :param module models: models to deserialize from + """ result = 'PoolTemplate' if json_data.get('properties') else 'ExtendedPoolParameter' - json_data = templates.convert_blob_source_to_http_url(json_data) try: if result == 'PoolTemplate': - if 'apiVersion' in json_data: - max_datetime = dt.strptime(KnownTemplateVersion.Dec2018.value, "%Y-%m-%d") - specified_datetime = dt.strptime(json_data['apiVersion'], "%Y-%m-%d") - if max_datetime < specified_datetime: - raise NotImplementedError( - "This SDK does not have template API version {} implemented".format( - json_data['apiVersion'])) - pool = models.PoolTemplate.from_dict(json_data) + pool = models_impl.PoolTemplate.from_dict(json_data) else: - pool = models.ExtendedPoolParameter.from_dict(json_data) + pool = models_impl.ExtendedPoolParameter.from_dict(json_data) if pool is None: raise ValueError("JSON data is not in correct format.") return pool @@ -75,8 +103,7 @@ def poolparameter_from_json(json_data): except Exception as exp: raise ValueError("Unable to deserialize to {}: {}".format(result, exp)) - def add( - self, pool, pool_add_options=None, custom_headers=None, raw=False, **operation_config): + def add(self, pool, pool_add_options=None, custom_headers=None, raw=False, **operation_config): """Adds a pool to the specified account. When naming pools, avoid including sensitive information such as user @@ -103,27 +130,131 @@ def add( :raises: :class:`BatchErrorException` """ + original_api_version = None + api_version = None + vendored_pool_utils = None + vendored_file_utils = None + vendored_template_utils = None + vendored_models = None + + api_version_raw = getattr(pool, 'api_version', None) + if api_version_raw: + for valid_version in SupportedRestApi: + if api_version_raw in valid_version.value: + api_version = valid_version + break + + if not api_version: + logging.warning("Invalid apiVersion, defaulting to latest") + + if api_version and SupportRestApiToSdkVersion[api_version] != "latest": + vendor_base = "azext.batch._vendor.v{}.azext.batch".format( + SupportRestApiToSdkVersion[api_version]) + + models_str = "{}.models".format(vendor_base) + vendored_models = importlib.import_module(models_str) + + pool_utils_str = "{}._pool_utils".format(vendor_base) + vendored_pool_utils = importlib.import_module(pool_utils_str) + + file_utils_str = "{}._file_utils".format(vendor_base) + vendored_file_utils = importlib.import_module(file_utils_str) + + template_utils_str = "{}._template_utils".format( + vendor_base) + vendored_template_utils = importlib.import_module( + template_utils_str) + + if isinstance(pool, vendored_models.PoolTemplate): + pool = pool.properties + else: + api_version = None + logging.warning("Invalid apiVersion, defaulting to latest") + if isinstance(pool, models.PoolTemplate): - if pool.api_version: - max_datetime = dt.strptime(KnownTemplateVersion.Dec2018.value, "%Y-%m-%d") - specified_datetime = dt.strptime(pool.api_version, "%Y-%m-%d") - if max_datetime < specified_datetime: - raise NotImplementedError("This SDK does not have template API version {} implemetned".format( - pool.api_version)) pool = pool.properties + try: + if api_version: + original_api_version = self.api_version + self.api_version = api_version.value[0] + ret = self._add( + pool, + pool_add_options, + custom_headers, + raw, + vendored_pool_utils, + vendored_template_utils, + vendored_file_utils, + vendored_models, + **operation_config) + self.api_version = original_api_version + return ret + else: + return self._add( + pool, + pool_add_options, + custom_headers, + raw, + _pool_utils, + _template_utils, + _file_utils, + models, + **operation_config) + except Exception: + if original_api_version: + self.api_version = original_api_version + raise + add.metadata = {'url': '/pools'} + def _add(self, + pool, + pool_add_options, + custom_headers, + raw, + pool_utils, + template_utils, + file_utils, + models_impl, + **operation_config): + """ Internal add method for pool + + :param pool: The pool to be added. + :type pool: :class:`PoolAddParameter` or + :class:`ExtendedPoolParameter` + or :class:`PoolTemplate` + :param pool_add_options: Additional parameters for the operation + :type pool_add_options: :class:`PoolAddOptions + ` + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :param pool_utils: pool utility methods + :param template_utils: template utility methods + :param file_utils: file utility methods + :return: None or + :class:`ClientRawResponse` if + raw=true + :rtype: None or + :class:`ClientRawResponse` + :raises: + :class:`BatchErrorException` + """ pool_os_flavor = pool_utils.get_pool_target_os_type(pool) # Handle package manangement if hasattr(pool, 'package_references') and pool.package_references: - cmds = [templates.process_pool_package_references(pool)] + cmds = [template_utils.process_pool_package_references(pool)] # Update the start task command - pool.start_task = models.StartTask(**templates.construct_setup_task( + pool.start_task = models_impl.StartTask(**template_utils.construct_setup_task( pool.start_task, cmds, pool_os_flavor)) # Handle any extended resource file references. fileutils = file_utils.FileUtils(self.get_storage_client) - templates.post_processing(pool, fileutils, pool_os_flavor) + template_utils.post_processing(pool, fileutils, pool_os_flavor) + + return super(ExtendedPoolOperations, self).add(pool, pool_add_options, + custom_headers, raw, + **operation_config) - return super(ExtendedPoolOperations, self).add(pool, pool_add_options, custom_headers, raw, **operation_config) - add.metadata = {'url': '/pools'} diff --git a/tests/data/batch.job.resourcefile-legacy.json b/tests/data/batch.job.resourcefile-legacy.json index 01a34d3b..7bdb34ae 100644 --- a/tests/data/batch.job.resourcefile-legacy.json +++ b/tests/data/batch.job.resourcefile-legacy.json @@ -1,7 +1,7 @@ { "job": { "type": "Microsoft.Batch/batchAccounts/jobs", - "apiVersion": "2018-12-01", + "apiVersion": "2018-08-01.7.0", "properties": { "id": "job123", "onAllTasksComplete": "terminateJob", @@ -33,7 +33,7 @@ "commandLine": "/bin/bash -c 'cat {fileName}'", "resourceFiles": [ { - "httpUrl": "https://testacct.blob.core.windows.net/", + "blobSource": "https://testacct.blob.core.windows.net/", "filePath": "location" } ] diff --git a/tests/data/batch.pool.simple.resourcefile-legacy.json b/tests/data/batch.pool.simple.resourcefile-legacy.json index fd2b8c10..90af6489 100644 --- a/tests/data/batch.pool.simple.resourcefile-legacy.json +++ b/tests/data/batch.pool.simple.resourcefile-legacy.json @@ -1,36 +1,40 @@ { "pool": { - "id": "blobsource1", - "displayName": "Blender Ubuntu standard pool", - "vmSize": "Standard_D1_v2", - "virtualMachineConfiguration": { - "imageReference": { - "publisher": "Canonical", - "offer" : "UbuntuServer", - "sku": "16.04.0-LTS", - "version": "latest" + "type": "Microsoft.Batch/batchAccounts/pools", + "apiVersion": "2018-08-01", + "properties": { + "id": "blobsource", + "displayName": "Blender Ubuntu standard pool", + "vmSize": "Standard_D1_v2", + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "UbuntuServer", + "sku": "16.04.0-LTS", + "version": "latest" + }, + "nodeAgentSKUId": "batch.node.ubuntu 16.04" }, - "nodeAgentSKUId": "batch.node.ubuntu 16.04" - }, - "targetDedicatedNodes": "1", - "targetLowPriorityNodes": "0", - "enableAutoScale": false, - "startTask": { - "commandLine": "sleep 1", - "waitForSuccess": true, - "maxTaskRetryCount": 0, - "userIdentity": { - "autoUser": { - "scope": "pool", - "elevationLevel": "admin" - } - }, - "resourceFiles": [ - { - "blobSource": "https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh", - "filePath": "setup-linux-pool.sh" - } - ] + "targetDedicatedNodes": "1", + "targetLowPriorityNodes": "0", + "enableAutoScale": false, + "startTask": { + "commandLine": "sleep 1", + "waitForSuccess": true, + "maxTaskRetryCount": 0, + "userIdentity": { + "autoUser": { + "scope": "pool", + "elevationLevel": "admin" + } + }, + "resourceFiles": [ + { + "blobSource": "https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh", + "filePath": "setup-linux-pool.sh" + } + ] + } } } } \ No newline at end of file diff --git a/tests/recordings/test_batch_extensions_live.yaml b/tests/recordings/test_batch_extensions_live.yaml index b227363d..fe6f3b41 100644 --- a/tests/recordings/test_batch_extensions_live.yaml +++ b/tests/recordings/test_batch_extensions_live.yaml @@ -17,13 +17,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "69f4c414-c371-11e9-ba9b-44032c851686" + "711d0da2-56eb-11e9-9663-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:39:08 GMT" + "Thu, 04 Apr 2019 15:08:02 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:pXWwZGjW0/MuBWjndgsKTje23wxfE9TQolEFG4GDHWY=" + "SharedKey sdkteststore2:+/ODo3DgdufKb7Y2zdTbY72BLuRRzuv9A+lJHjLMDuA=" ] } }, @@ -33,171 +33,76 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" - ], "Date": [ - "Tue, 20 Aug 2019 17:39:08 GMT" - ] - }, - "body": { - "string": "\ufeff" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/supportedimages?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6a1c4ef0-c371-11e9-9fa5-44032c851686" + "Thu, 04 Apr 2019 15:08:02 GMT" ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WP1bPW3/llJrplS1jWd98aIJgVitv/mizr9fuEg/Qj0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "e141e677-28f7-4d23-b862-46609acd0138" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "application/xml" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#supportedimages\",\"value\":[\r\n {\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04.0-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"18.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 18.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"standard-data-science-vm\",\"sku\":\"standard-data-science-vm\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"azureml\",\"sku\":\"runtime\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1803-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1809-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.0\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.2\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n }\r\n ]\r\n}" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28D8B4440application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28DA3B30405application/octet-streamR9OG6+c3p6+Yz4vUjohK1w==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28DB73EA0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28DCD3BB4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2019-08-01.10.0", - "body": "{\"id\": \"ncj-ubuntu1604\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"canonical\", \"offer\": \"ubuntuserver\", \"sku\": \"16.04-lts\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", + "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "6a476624-c371-11e9-a683-44032c851686" - ], - "accept-language": [ - "en-US" + "x-ms-version": [ + "2017-07-29" ], - "Content-Length": [ - "248" + "x-ms-client-request-id": [ + "71489e82-56eb-11e9-811c-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:09 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:08:02 GMT" ], "Authorization": [ - "SharedKey sdktest2:DKyBEpswRRv3z4JvQkK9rJwAGfeJ2nZ9yEvbHPBJK5U=" + "SharedKey sdkteststore2:MX1h3DZBzYtABdUXiWTU+Izn1ROhMqrnCfUvdvIwdWo=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 201, - "message": "Created" + "code": 202, + "message": "Accepted" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], "Server": [ - "Microsoft-HTTPAPI/2.0" + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604" + "Date": [ + "Thu, 04 Apr 2019 15:08:02 GMT" ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "request-id": [ - "ae0a2072-8478-41f3-9281-23c72c3046aa" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { @@ -207,7549 +112,180 @@ }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "6a836c86-c371-11e9-b6a4-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "715150b8-56eb-11e9-9537-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:09 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:08:02 GMT" ], "Authorization": [ - "SharedKey sdktest2:gwbzkWoEQL4KjRlWZy0bGiwPcRO5gPsK7RDlg0KzKjM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "d6bbca3d-edff-4cac-b2cc-1117359a8892" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6c56765a-c371-11e9-a076-44032c851686" - ], - "accept-language": [ - "en-US" + "SharedKey sdkteststore2:DFx1i4IQmrtpeD/XIgvHjI3WU9aPDqEj/g77aPSwhoQ=" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:12 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:HsHtu0noEtsf+H9AMbqZ9rhdA2ZdfduWeiG1sLYLECk=" + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:12 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "9f1ef8a6-681b-420e-8fe6-efa0087c5f6b" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Accept": [ - "application/json" + "Date": [ + "Thu, 04 Apr 2019 15:08:02 GMT" ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6e2a3a64-c371-11e9-a8f0-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:15 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:04NVwiSjN834FL2Pi17YFtgdY8AWEIU4D79jpNL314A=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:15 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "50a6969b-7d7c-468e-ab60-36bd2103ef7d" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6ffccfb6-c371-11e9-8e66-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:18 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:IQ4V/su9VwoeJVu9PEjB1LKhtRgXBVivo5qB5359LWQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:18 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "08d7c6a8-af15-4b69-941b-359c9cf26a1e" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "71cf76a4-c371-11e9-b531-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:21 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:qFgi4+BaOY7Crv/YqrpjP/rHviBjyZYMkjpuexVj0h0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:21 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "26b8cdf3-f6b2-492f-a916-582e9cbfb1ad" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "73a0a066-c371-11e9-9cce-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:25 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:F1NG1Ttx3RRWNK3kD4uFirndy3TA061PoWsptK2jyt4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "28be9f29-41ef-4c76-af64-5d4e81f1b58f" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7572307a-c371-11e9-98e1-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:dqDhH0zhCYtqpFAnGV6avNjbbieLNEaMXeJ+LP+zBmQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "fe57710d-fc75-4288-9e72-0433c64c905b" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7744d77a-c371-11e9-ad1d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:31 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:lPK36U22cmvdmbHGAyw18O+lXAZsXuZeaeRm3EM+HGI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:31 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "20b1590c-3e41-46fd-90e2-02010d62e865" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "79183ae2-c371-11e9-a371-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:34 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:yvF1588cOs686ruw2Frp2hZe6TFcV3u2Zh27DAZFsJ8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:33 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "67878375-15a0-46f9-b62a-9f796c1e27da" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7aea4e2c-c371-11e9-b29b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:37 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:EqJhKiYtsOv0ahYOfSKgdH611VBn45UyYkcj6wVesck=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:37 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "a8e774a0-1cb8-405b-8cd0-6c92b161c35b" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7cbda8ec-c371-11e9-89e9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:40 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:3woEiTsctogm5pLGhmcRf1hUCplsNxnTpuTlVtvewME=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:39 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "bbbf381b-5a23-449e-8e2f-19b576987977" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7e91b5ac-c371-11e9-be98-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:43 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:yl+t9V8tczYabu1yejzgay56VSBwNZO4jNBS18RG9lo=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:42 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "71eb7b07-b600-4b86-9f1d-4deae7fcd282" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "806402fa-c371-11e9-8e1d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:46 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:KgD8HVmlEPFXQ20c0YhzsYFJb7VT41m4CWC6aqidAq8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:45 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "c494789c-c5fb-4c77-afb3-46435646e75b" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "823558a4-c371-11e9-b956-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:49 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:tKakqhaHp6+4oiK4zo4bNgALetFvIpGwOacU7d/booY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:49 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "04e1c128-4d0c-4255-9da0-e9c09bc89526" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "840725dc-c371-11e9-81e6-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:52 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:0cLpUfaoIx0mGlaIoMYUi6OBTkMwWG8X7lSHTQcyPJ8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:52 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "09d528f0-ac98-436f-b6f5-b1052e6fed6d" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "85d8d354-c371-11e9-ab8b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:55 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:GPPtmRYUL2K5iPBf01lyRZI1BcpfPZvhX0FqZvd2OMs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:55 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "94868be8-cae4-4f0e-bc00-1ac2ef00d4b4" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "87ae0c68-c371-11e9-8cbb-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:39:58 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:+AV3jMin2QM7857gYUEHzZoW5+v+E9lD0mogrIj1hb4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:39:58 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "51374efa-79cd-43bd-8827-4d333b2ee720" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "898098f6-c371-11e9-b57d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:01 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:jw91ur/OHkSoRNTBvQaT3fWdBKVcA+3+su9Hfq//ShQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:01 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "772dfeb5-eea1-438b-b917-dc621af48cc3" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "8b51f440-c371-11e9-b5d5-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:04 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:jJxFpvl6x5NiCsndQ04U9cSBcIyx3hm6uZy7v198o8E=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:04 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "0e05282a-7754-4eb7-b137-54dd56bcbaba" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "8d251b9c-c371-11e9-9a9c-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:07 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:ZjgpVQ86BRAp9WwEsZU8yO7EW5ArWrALvrn1hvcY8rg=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:06 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "bc9590e8-9c15-4d5a-87c5-3baff66c7bda" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "8ef6e464-c371-11e9-af6d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:10 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:/dEsBQxi/Om3fd2t9nwBslsnOUHYK/t8sHR+qMPzzOQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:10 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "7419094a-aa16-489e-92aa-36c86b3e2ed5" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "90c8de68-c371-11e9-8b58-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:13 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:29iih/nrq2CFY490bMOnMWMxubgZlf2dMRshBaGkPbs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:13 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "f686e463-37a3-4e90-ab6f-6de57e64e59f" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "929ccd2c-c371-11e9-a581-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:16 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:uyyC2lyKkdCfEdYJuvl+qIYkJYi1imssW72mYWT1h6M=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:16 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725954EB17F5F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "2482022e-332b-48c5-891b-cbf8710588f9" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:16.1469849Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "92a44834-c371-11e9-ba58-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:17 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:a4AEkGOpd45ojqsfIPZFGGmTvAteV5OaBfPe3f8vymI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:16 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "05c650bd-4bf7-48ea-8d4b-a2c128667859" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:40:16.0922226Z\",\"allocationTime\":\"2019-08-20T17:40:15.2984459Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.16.171\",\"publicFQDN\":\"dns07c600ce-fa0e-4d8b-8d1f-948d1d69b8c7-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9475a2ae-c371-11e9-8dd2-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:20 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:KmtmNyWC9j5zNTZ113ABvQlg4E7KEuHbY+K9PQx9EAg=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:20 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "d96567fb-a088-4460-a4e9-dc2b2e87dea8" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:40:16.0922226Z\",\"allocationTime\":\"2019-08-20T17:40:15.2984459Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.16.171\",\"publicFQDN\":\"dns07c600ce-fa0e-4d8b-8d1f-948d1d69b8c7-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9648e4ba-c371-11e9-9bf4-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:23 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:5/8Qj4tu0VTvu2Hh9AcnMWoe/QnDLmnIuyYlOSOkUkQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:23 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "684a0487-829c-48da-b957-ae593c06357d" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:40:21.296399Z\",\"lastBootTime\":\"2019-08-20T17:40:21.194161Z\",\"allocationTime\":\"2019-08-20T17:40:15.2984459Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"certificateReferences\":[\r\n \r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.16.171\",\"publicFQDN\":\"dns07c600ce-fa0e-4d8b-8d1f-948d1d69b8c7-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-08-20T17:40:21.194161Z\",\"version\":\"1.6.4\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2019-08-01.10.0&timeout=30", - "body": "{\"id\": \"ncj-ubuntu1604\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1604\"}}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "96aafb54-c371-11e9-b133-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "66" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "ETag": [ - "0x8D725957B414460" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:24 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "0b00045c-89d5-4083-8403-ce95fed68953" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/addtaskcollection?api-version=2019-08-01.10.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "970fc98a-c371-11e9-9e75-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "475" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "3192f38a-2fca-4a50-aae5-8e6f63d89d69" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D725957BB9A33F\",\"lastModified\":\"2019-08-20T17:40:25.2332863Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks/myTask\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9788badc-c371-11e9-a8f9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:25 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:3KTXlKFP3YAcXsdqP5TmifPeUTey8Y1cdLzFORFTfYM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957B414460" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:24 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "7a6a6ffd-0c46-4bc7-8b2f-884173b7092f" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604\",\"eTag\":\"0x8D725957B414460\",\"lastModified\":\"2019-08-20T17:40:24.4444256Z\",\"creationTime\":\"2019-08-20T17:40:24.4307198Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:24.4444256Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1604\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:40:24.4444256Z\",\"poolId\":\"ncj-ubuntu1604\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9791539a-c371-11e9-9189-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:25 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:1Q8WdxtUeHtCsWjon6xIDaCjvDplImTwYK7Hu9hQd78=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "cb70c097-c58f-4ba5-971d-908574325587" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks/myTask\",\"eTag\":\"0x8D725957BB9A33F\",\"creationTime\":\"2019-08-20T17:40:25.2332863Z\",\"lastModified\":\"2019-08-20T17:40:25.2332863Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:25.2332863Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "99652236-c371-11e9-b2ed-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:f5M9JAiNFf7w2EN5SpgyyCQyoVty/f9fuOM7oIJIzgI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "3c348f00-c2da-4885-bedc-960375b3943e" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks/myTask\",\"eTag\":\"0x8D725957BB9A33F\",\"creationTime\":\"2019-08-20T17:40:25.2332863Z\",\"lastModified\":\"2019-08-20T17:40:25.2332863Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:40:26.353947Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:40:25.735322Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:40:25.735322Z\",\"endTime\":\"2019-08-20T17:40:26.353947Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"poolId\":\"ncj-ubuntu1604\",\"nodeId\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1604/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d/files/workitems/ncj-ubuntu1604/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks/myTask?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "996e12a4-c371-11e9-9283-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:kjz4cnyJqmQyihVdFcYxvlJ6weYutUggc+GbppWvBZk=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957BB9A33F" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:25 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "5fbfe903-c7e6-4fd6-b494-7c6b581dbfbd" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks/myTask\",\"eTag\":\"0x8D725957BB9A33F\",\"creationTime\":\"2019-08-20T17:40:25.2332863Z\",\"lastModified\":\"2019-08-20T17:40:25.2332863Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:40:26.353947Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:40:25.735322Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:40:25.735322Z\",\"endTime\":\"2019-08-20T17:40:26.353947Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"poolId\":\"ncj-ubuntu1604\",\"nodeId\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1604/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d/files/workitems/ncj-ubuntu1604/job-1/myTask\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "99764ab4-c371-11e9-abe7-44032c851686" - ], - "x-ms-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:OdeQVi6+xPhT8YGyuiEPEuDbSyHX7JmyZbN8wIPjoKw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:27 GMT" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C5D6B230application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C4DFF0C506application/octet-streamJep6Lf8xO8ufndlZJO8P8A==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C541AA10application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C5BE4415application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9981707a-c371-11e9-bcf8-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:5687sZHEC7H80334YTvh+1WSSh5p6g7tNjrfFvLnA8k=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Date": [ - "Tue, 20 Aug 2019 17:40:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "2bd4fe3b-909c-4617-91c7-adc65b11c304" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "99897dfe-c371-11e9-80a1-44032c851686" - ], - "x-ms-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:X0g/G2R0yz7yZlccdKrWMZlebmbnM28c0x+eH/bQRLg=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C5D6B230application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C4DFF0C506application/octet-streamJep6Lf8xO8ufndlZJO8P8A==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C541AA10application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 20 Aug 2019 17:40:26 GMT0x8D725957C5BE4415application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "99941f9c-c371-11e9-8eb4-44032c851686" - ], - "x-ms-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:uouaMWiladXCm7Fm9hHRBgfgecPEKF/yUmgwQY3MLfE=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "999ae210-c371-11e9-813e-44032c851686" - ], - "x-ms-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:/LsUUYhaMdhrREEgPAWpioJyQcHdFXQrAnnxx+hiUbM=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "99a2c3a8-c371-11e9-9c6e-44032c851686" - ], - "x-ms-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:3QYhqVl9rZO0TEZLAMuamNpL83PakIF/m9S0qy1GFDQ=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "99a9f3f4-c371-11e9-a965-44032c851686" - ], - "x-ms-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:jQNFIhbu4L+M5OQEmeY3aW5mCvW/WfmRYK33Du50oY0=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/supportedimages?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "99b0d606-c371-11e9-a8db-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:5Lbd2U04jG1knPmswGpVcJ75QCxFDrqTXWU2mAvcFcM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "1fdefa5d-9bb9-4e03-b255-5118ce132010" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#supportedimages\",\"value\":[\r\n {\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04.0-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"18.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 18.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"standard-data-science-vm\",\"sku\":\"standard-data-science-vm\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"azureml\",\"sku\":\"runtime\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1803-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1809-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.0\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.2\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2019-08-01.10.0", - "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"microsoftwindowsserver\", \"offer\": \"windowsserver\", \"sku\": \"2012-r2-datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "99ba509e-c371-11e9-a532-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "277" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:F2ymTkGpnEg0xP9IR60qQmr3OHGlhTiSq0Hnp3bsT9U=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "d9ad6909-02b7-45e0-a10e-d638b2cbae0c" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "99ccccb4-c371-11e9-a38a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:R00scbBql3EXY3jDxoF3lh6htFokFsduKojkwub7P/4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:28 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "c0cc9e32-83d6-451e-a0e6-8eab51181ea9" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9b9e8422-c371-11e9-9593-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:gA6yzFz+4vzX3/TIb/ejzicawcAL2hbI9G6BhiyjCQE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:32 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "046d06a5-d922-4e6d-8c21-46072582c220" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9d71e2b6-c371-11e9-9baa-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:35 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:7ziKU0DiAti+aHDYLd0p+cEWe4GZ3wrEvvH73YyDzOk=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:35 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "4f4220ac-ad45-438c-a420-517dc2f9ba1c" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9f44241e-c371-11e9-909f-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:38 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:XCV60+Ux6Oo7VWaESbxLAw6mZPbjDwki3LrJd9BQrVw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:38 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "17d9f944-6b96-437f-bc60-8fb7444ae06b" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a11605b0-c371-11e9-9927-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:41 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:SORMvNF/GI3yMNUU+gOjpwpEh531Ad+dDj6+peJCpCw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:40 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "bd1c5c9d-167d-40c7-af1e-67c298dde726" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a2e895f6-c371-11e9-87f9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:44 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:SKcM0NMj/S082YpsWV+zwMIOUw34ff/ytLXPS5XCwu4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:43 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "186223c8-11b2-4ff8-a83b-81b46eab7984" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a4badde8-c371-11e9-b572-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:47 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:s3mqw1QmcaimPPz3n6jzL2LqRZpVeNsgbDarKokmrJs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:46 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "0282ad5c-454e-407f-937b-f8b99f3b1b0b" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a68d5130-c371-11e9-9a2c-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:50 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:2zqiLk5lBq1WJkCSIqGtnWA6+xtGMqSUgIIp5+fXmBI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:49 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "53a9a57b-cb96-4c96-bd40-544ad12caf6a" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a85f19ac-c371-11e9-8914-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:53 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:haRpSaUADnkH2ZE8hT9Kh50FNvdiItTI/0jYfJ4m4J8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:53 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "41e77d90-86fb-4ce1-842b-8c173c2145b3" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "aa31141e-c371-11e9-ae6a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:56 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:uhFAl0PA2H7QUMGnOC6fshsKusxLv28QtuwV60CJn6w=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:55 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "3ca06436-ec0d-4ccf-aca9-d63e9b4321e1" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ac033188-c371-11e9-abe8-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:40:59 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:OvCMjgcpdtrevjpNm2wjfboeoKyTNY9wY94av3hTBJ0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:40:58 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "fa79a053-365c-4cf0-9b3f-b807135b400a" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "add5aacc-c371-11e9-9996-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:02 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:RWLCsz78rGj2S6B+WoPXM1ANQ2PugH2hDiMMTW2bzYU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:01 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "350223fe-105c-4b54-b1d8-3263b4d7ab1f" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "afa848b0-c371-11e9-9df4-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:05 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:8b5fQGpGdv+TwR/FMpfCxHupug9LV2Ky4Dz9N4ssp8Y=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:05 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "31977adb-2654-4d25-be0d-caeab0036d85" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b17aeefa-c371-11e9-8729-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:08 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:z93KVdbtdc8lLVmy07XPrrfRcapXplsAzckOVwWo8fU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:08 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "7c012e5f-4403-4200-93ec-666197061a49" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b34cc8b0-c371-11e9-9988-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WmBXsObj794YpGObTmNVSfPqQ8x/YwQ3dbHxbqvswgs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:11 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "611ad7ee-232f-49b8-98a2-5a652149f5b9" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b51fb57a-c371-11e9-b5df-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:14 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:1R5+vgztVsSDSvk7v68O64407eB4wqwaQd70+2gjey0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:14 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "6de937d7-3197-464b-8f41-d99e0602d363" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b6f5dbd8-c371-11e9-9ce9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:17 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:Iz2lo03+ENzJP5UG9/g1jRfjY/lWrKBePa/mlCaGfG4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:17 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "243526a3-292b-4bdb-9494-5dae867f7625" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b8c790d4-c371-11e9-810b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:21 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:JBfCCTq7ByHvfQ/R/D8kz5l1CmOKMq0btOzw1SFntKU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:20 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "2dcae9dc-7872-4ebe-aa7b-84d2be0c1561" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ba9cfcf4-c371-11e9-9112-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:24 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:8n9E9x4oXO2p4gLFbTS0dAsaW8dMCPZGJ5TieVHlBgY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "1cf02d2e-5a03-4848-98a1-530a95c9dad8" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "bc70f946-c371-11e9-8b40-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:27 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:7Zbbp0teBjb0tpn5+UZ++UhAkSV7e2Ua5+P7PI+GRM8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "816c02da-cd4b-4548-97d0-df8209ea7112" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "be4620ca-c371-11e9-a342-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:30 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:vNBjYK+BfJgQynp0+N8rkhD5uFpnlQ+4t7WhSxy5Grs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:30 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "6eb5e6fa-2893-44dd-bf0b-ee8de06b1873" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c0193368-c371-11e9-be82-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:33 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:gEsfvJbcFeWb89NAhIFJ1X4I9eW1SBENctg+t70Ye0k=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:32 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e45fab0c-8bff-418d-a697-42157072a3fc" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c1ed4f62-c371-11e9-8e3d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:36 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:0cJQ1tfCuB2w5oNHZv5t7KJbhsr0/ZwGpNAnEWhTcRk=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:36 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b4c0dfbd-d542-4d79-89d9-803f64a513bc" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c3bfe57a-c371-11e9-b983-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:39 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:e/pNhD4XDiulkSl6qTWw6rgh1mOTWzpZcFPAPR5XQCA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:39 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "82577bc2-8abe-4d7b-b2bb-3e049cab69b1" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c5919390-c371-11e9-8d44-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:42 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:eM2sMOfGcdYtJA7EThdh1/31ZMh1Gt4OW45TnHH66pU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:42 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "3f67631a-11f5-4171-8a0b-1a4f26048467" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c768463e-c371-11e9-9cfb-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:45 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:oVfK3RBatFluF1vNt2IwNLyqnuIDtPYs4lAyQBdOqw4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:45 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "ETag": [ - "0x8D725957DFB0158" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "37d8d050-7610-4a30-b790-9c4927f5489f" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-08-20T17:41:45.3536086Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c76f61c2-c371-11e9-b91f-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:45 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:LC0+Dq9RuXAI0CY9GuFbKa0YabG6WD7mVs04Pjwc1xI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:45 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "40da48b2-bf61-46fa-8dd1-6728fa331767" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c9422358-c371-11e9-a019-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:48 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:CdBCg3Yjq02xBZeBuTMVoAPvZNTzVyREmRfVdY+Iyt8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:48 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "931d13ee-227b-40e3-be69-99a7cd69b345" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "cb15e3a6-c371-11e9-a2f9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:51 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:6AEffiDAb2MKwMfr5qgqB8tDjXt6y0B6Ozsi7ZEuMfc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:51 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "b9e3cf22-37a5-41be-b4bb-f9a0595f9808" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "cce855fe-c371-11e9-a609-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:54 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:ZTmM0rwEtOjhIDjPT5x2AUeAEnciG/eyRgMzXHIV1Sw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:54 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "dae9c1a8-baac-4cef-af2a-2c8e13124f71" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "cebbae40-c371-11e9-9eae-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:41:57 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:+6RnyXkoqecDvSIBc5j0JOp/l8ZdyaRnsVY3gsTX4F8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:41:57 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "16ed8b4b-d7bb-4244-980c-7fa935bdd260" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "d08eb23a-c371-11e9-bfe7-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:00 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:hgI5TueDMWPo3wnpTU6DsEHYAmV0+lqfRYySYn6j3jc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:00 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "cc5e8a18-34b0-4f76-8e3c-e88c4e0b2187" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "d260f88a-c371-11e9-a64d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:03 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:fy9kcRWAiCXjZBlcSLfwX0DiKq6YBYYnAC8Geh82eKo=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:04 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "3f58417b-80a2-49ce-9f55-d2afbcbfc791" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "d43535be-c371-11e9-ab4a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:07 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:wzATs8D3P/s3GF8d8ETf6vm3R6Pobt0JJ8xqATNHAQs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:06 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "8f008fbb-1105-4863-a50d-2130b3a639be" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "d607ebe4-c371-11e9-b8d7-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:10 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:zmqG5SVF/72FVIdjAN5hPPvzwqsnziv0KOgMtGo3wrA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:10 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "c171ef60-7d9a-45b9-8605-15bfe87b52e1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "d7dbaf38-c371-11e9-8fac-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:13 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:b631qD+KlnzNeRly0Qqw3RB7kSw+zr3vje/R5DqaPKY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:13 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "177a9bc0-cf1b-48e2-b3e2-7885ccc5e8d7" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "d9b033f4-c371-11e9-bbfa-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:16 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:QHfDCJdqEkwftyj3x+yVr7ZmzfcDCS72pPTROYrYclo=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:16 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "344ef1d0-fb3f-4f2f-89ae-6e4b93f38f63" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "db8400be-c371-11e9-940f-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:19 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:czuUt7wZd9K4zZsGgesxjhPzm84pIN2920tMcSYhTE4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:18 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "e7729d35-44dd-40ce-b896-34e474cd0062" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "dd57d13e-c371-11e9-944a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:22 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:tJGY6VJxAXbxLNrfxVcPLj5lQK56aUep72p1dAQvxaQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:22 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "3a7db32f-38ed-4e29-a7c8-faa2cf38f1d3" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "df2a3dac-c371-11e9-8874-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:25 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:n6DYbf3giEHgKp15R64ktuO3zqOPMGr6Apk/dMYDVs8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "102f2791-7f22-4435-97b3-3c36cf69b952" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "e0fd0b70-c371-11e9-888d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:5muWSggKs0Fic7NUjHA8AHXwkEvSJkzpOtU+ZtZTNkA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "527db8df-4cc9-4e79-b862-64a9e7b0715a" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "e2d11080-c371-11e9-ab3d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:31 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:TRWXJy3jd0hefXfPMlF7GzvbyDLk5N5mrm4KpSMOjpw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:30 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "52dfe9d3-2042-4def-8d4f-a5efe27a525b" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "e4a48f0a-c371-11e9-aee1-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:34 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:2TcBiFnrIQWV3BCk6wzZlzL14ZM5BYOt9/hl+IfyihA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:34 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "1379cd55-e2d2-4b95-b1f7-a8d2937ba403" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "e677ae08-c371-11e9-9b32-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:37 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:cFlPgsCv6Z1zk9uR3EGx54hWYAfUIAVeyZlDv9U4vLY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:37 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "e2db0c84-967b-439c-a4a9-bd7112c6b6fb" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "e84a1cae-c371-11e9-8048-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:40 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:eUMDdOBJ701z5jDsRl3OKTr9Lx5ABFCWExnMTAt7up8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:40 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "ccc04524-db84-406d-972e-9e99228aaa59" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ea1c46ee-c371-11e9-8268-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:43 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:we7/a3isIFKApsLnCbIllEWmjZ2gRksnq9zfDtwkJVY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:43 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "0738a939-3ca9-4e42-8d81-f50dca417b49" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ebef1988-c371-11e9-a55b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:46 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:HkIIPzsNmyEXS/w2ne6HQjn6Xb6m/nSuAn92GAVw2cY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:46 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "c8c56492-3800-43a1-b2b7-3e502dad8a8c" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "edc15dc6-c371-11e9-b809-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:49 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:Hfdn/yPCwk/uhZOKAlM53CzH2r2hDidUBp66SucCXhE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:49 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "c341a0d6-c654-4eb1-9f53-04036bfe66b8" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ef945d98-c371-11e9-b2b6-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:52 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:1JM/HfLaOGq4cvkqgQRkBm7NIX0ksrZHDz3PivPW0lo=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:53 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "59fcf763-f82b-4d83-aaee-ac5ad6e3cf4c" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "f1672450-c371-11e9-b063-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:56 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:cq125RybWWMRJfNLUcMX46KtwB93My8nxem4rvH0Wgw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:56 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "1e06e582-caa1-4ee5-a815-9498ae7fc446" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "f33a9df6-c371-11e9-b0b3-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:42:59 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:OJ1VOG8/H+J9MXg4DHluInpY6WeRygZa9tBHFyQolA8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:42:59 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "f0bae67d-de0c-4ec6-8381-3bd693c5aeae" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "f5117d22-c371-11e9-bf41-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:02 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:KfV0Ryl3d77YVYXjyS6tqiQkMHXln0UZWsYJ79z6NJE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:01 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "165a8916-dc36-4988-86d9-c33274820fb8" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "f6e49c36-c371-11e9-9e67-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:05 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:w4+G0iajCf8AM2Y6eDL0KQ3FTpjQbAuytH+xfr2WOmU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:05 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "eff0dc42-fc78-41ea-8414-fd5a01d7baed" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "f8b7cc00-c371-11e9-970b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:08 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:deswNwPf5Iqwtnkmu4DPpjsVD3MYy9eEysIDYNGUSMY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:07 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "ee0a7c77-b789-480b-b01e-01ccb469c48f" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "fa8a304a-c371-11e9-8fdb-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:A5gcpOL45VaxZo0kTYTwzPyPsnUfQiSEd/X1/8lIPtE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:10 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "2b44011f-5547-4eb8-a88c-17bb67c4d72a" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "fc5d991c-c371-11e9-940e-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:14 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:LDlEHWCoIUL7cV16//NzDzUadkoPhV9suleSPV5Qo2E=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:13 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "0a083b2f-c4ea-4857-b63e-3f0fc1d2b878" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "fe3075b4-c371-11e9-8c68-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:17 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:MiV6TED3WJsA1bSI4ILvaZ6b5CURXbFIUYrlTeYzz2I=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:16 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "0ede8f38-087c-4f09-bfd0-d22a9226c3d2" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "0002f8ec-c372-11e9-9bc6-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:20 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:A0IRJdHRCA9PlG5r+hjl1BWEjxrudg1SPLlERpTf3po=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:20 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "100b2c6b-7136-4b53-aade-ee5f621a6a90" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "01d654fa-c372-11e9-b7f1-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:23 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:6ZcO/H5QTo0CKUOphAGD1KA05AE2B6Px8QBbT/uTp3A=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:22 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "ed4ae2d1-93d2-451d-af62-4de9837a532e" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "03a92858-c372-11e9-ad53-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:26 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:anHrO7CpfrRhBS59HfD89cGFFRDgMegNTmhTmVkfI68=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:25 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "647f2d86-17cc-4e84-8052-c23938111b67" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "057bde12-c372-11e9-a7bf-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:29 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:43Tx8vGzumrFvGvjMm+uy9KAEGVd3uij1n7FhoWRsYs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:29 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "95c63292-9a3e-4ceb-804f-2999166b7f90" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "074e515e-c372-11e9-bbf4-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:32 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:2swh41u8OCgVnZDv0Gj6O8pNEpl0rr7BZVzdxef4GaU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:32 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "27e2d0b4-acf1-4058-bd34-827961039d79" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "092118f6-c372-11e9-bc3b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:35 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:3/5JG2BYPUfPhILvOv7uRm+jNFGesppGVi5pa2REH8g=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:35 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "b41df8cc-2aa7-4239-8f19-432b08418d3b" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "0af451ee-c372-11e9-af1e-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:38 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:aWO1kxKH8KpJx05kbnptjFm0dzRggkVX387YOOICJsc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Date": [ - "Tue, 20 Aug 2019 17:43:38 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "956ea9cc-439b-4941-bb13-36b760afad06" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "0cc69070-c372-11e9-9710-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "715873f6-56eb-11e9-b393-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:41 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:08:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:Lkr1pQLJEVtiPEmdcsX0q8gK0qS9oUw6Vt2O7GjPWeo=" + "SharedKey sdkteststore2:f5EE9cHN5SA54evHk4QATtZkwfafVEFNPjZn2RdD4P0=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:43:41 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "2bf64980-c5ad-4985-95b6-e44c5ffac385" + "Thu, 04 Apr 2019 15:08:02 GMT" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "0e9916c0-c372-11e9-a288-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "716210b4-56eb-11e9-8392-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:43:45 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:08:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:5t9mY1x+JCtteK2lWfBQEx+6uDLVwuQxp0a1SQsKjY8=" + "SharedKey sdkteststore2:wSqFLE0HbDNvh9XNOG829Ww9zhFGIxX73aDOU9LPdGQ=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:43:44 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "185daa7e-e4ff-439e-b1a5-0f3719673f46" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:08:02 GMT" ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -7761,16 +297,16 @@ "keep-alive" ], "client-request-id": [ - "106db0cc-c372-11e9-a6d7-44032c851686" + "7169b1d0-56eb-11e9-bcb6-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:43:48 GMT" + "Thu, 04 Apr 2019 15:08:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:kZ3/kI3PK+0B8N3EhkbbMI/0lWQz0LUlGIp8JKL69hA=" + "SharedKey sdktest2:tCJQH74dBYHcx3oRMsnKyhPGfenaT4HGN9+MkW54l3k=" ] } }, @@ -7780,44 +316,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:43:48 GMT" + "Thu, 04 Apr 2019 15:08:02 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "59355773-648e-4506-bc30-5cef790f6289" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "8c41a3c1-0971-4ea8-ad03-60b5bfebe683" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -7828,64 +364,70 @@ "Connection": [ "keep-alive" ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], "client-request-id": [ - "1240f50c-c372-11e9-9d81-44032c851686" + "719c2028-56eb-11e9-8d26-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "250" + ], "ocp-date": [ - "Tue, 20 Aug 2019 17:43:51 GMT" + "Thu, 04 Apr 2019 15:08:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:9XudOJxRe/5xKato7GWEhlN25a8IXxJFucvBDgfJliA=" + "SharedKey sdktest2:ANgsnm5Ew3GKggQNqY4XsGBWxmmZjO1P7Z9bc0PTVS4=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified pool already exists." }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:43:50 GMT" + "Thu, 04 Apr 2019 15:08:03 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "0cabbac9-aa98-4ffc-9a39-4c81d3b4fdf5" + "Content-Length": [ + "334" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "ef355857-7c2e-479c-b0b2-8be240488425" ], - "Transfer-Encoding": [ - "chunked" + "DataServiceVersion": [ + "3.0" ], "X-Content-Type-Options": [ "nosniff" - ], - "DataServiceVersion": [ - "3.0" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:ef355857-7c2e-479c-b0b2-8be240488425\\nTime:2019-04-04T15:08:03.6697685Z\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -7897,16 +439,16 @@ "keep-alive" ], "client-request-id": [ - "141331fa-c372-11e9-9fbd-44032c851686" + "71bd10f8-56eb-11e9-acdc-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:43:54 GMT" + "Thu, 04 Apr 2019 15:08:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:TghPHMFKOq2juoGk+h4Ppl3LwZ2b4yYtEocD7J4LDnE=" + "SharedKey sdktest2:sedRUlM1AWfkTaoF10Wz0bSw2RDDfhC17mMk3Fpl8Vg=" ] } }, @@ -7916,44 +458,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:08:03 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:43:53 GMT" + "ETag": [ + "0x8D6B84EBB557E6A" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "0aded115-b4d6-4501-86d6-c883b783a4ff" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Last-Modified": [ + "Wed, 03 Apr 2019 16:09:20 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "3b3e9e42-b03d-4139-9d55-242afe2dba2f" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6B84EBB557E6A\",\"lastModified\":\"2019-04-03T16:09:20.9406058Z\",\"creationTime\":\"2019-04-03T16:09:20.9406058Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-03T16:09:20.9406058Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-03T16:10:47.6983993Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -7965,16 +513,16 @@ "keep-alive" ], "client-request-id": [ - "15e69224-c372-11e9-9db9-44032c851686" + "71dd8b38-56eb-11e9-a335-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:43:57 GMT" + "Thu, 04 Apr 2019 15:08:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:zSRaxLFDrdwST//Qk9efueZBuz3rR7IGRQWhsGy7+jc=" + "SharedKey sdktest2:JaLXL7IjomOsPZe6QxX5Kijmf6odogetR/M6+7wuIoA=" ] } }, @@ -7984,44 +532,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:43:56 GMT" + "Thu, 04 Apr 2019 15:08:03 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "7e1ea6dc-15a2-4454-890a-b7fd25cb792c" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "e9d76446-1b2a-400c-96a8-d7739eb309e0" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:06:56.776976Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":40,\"totalTasksSucceeded\":40,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:06:56.269765Z\",\"endTime\":\"2019-04-04T15:06:56.749611Z\",\"exitCode\":0,\"failureInfo\":{\r\n \"category\":\"UserError\",\"code\":\"FileUploadContainerNotFound\",\"message\":\"One of the specified Azure container(s) was not found while attempting to upload an output file\",\"details\":[\r\n {\r\n \"name\":\"FilePath\",\"value\":\"/mnt/batch/tasks/workitems/ncj-ubuntu1404-1/job-1/myTask/stdout.txt\"\r\n },{\r\n \"name\":\"FilePattern\",\"value\":\"$AZ_BATCH_TASK_DIR/*.txt\"\r\n },{\r\n \"name\":\"FileDestination\",\"value\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A51%3A54Z&se=2019-04-11T15%3A06%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=dbXD2iR5k0JG7VEeoYuGLoskvkPQGeSQxgOtQV1BPvQ%3D\"\r\n }\r\n ]\r\n },\"result\":\"failure\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-ubuntu1404\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8032,64 +580,79 @@ "Connection": [ "keep-alive" ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], "client-request-id": [ - "17bdfecc-c372-11e9-b290-44032c851686" + "7263af1e-56eb-11e9-b209-44032c851686" ], "accept-language": [ "en-US" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:00 GMT" + "return-client-request-id": [ + "false" ], - "Authorization": [ - "SharedKey sdktest2:s6ZRmzJD7IMeZRsmuU6OG2Xr+orU0B/dtMFoHi0Un50=" + "Content-Length": [ + "66" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:00 GMT" + "Thu, 04 Apr 2019 15:08:05 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "ETag": [ + "0x8D6B90F56BB5614" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "de879a37-4872-4470-9588-a82935ccddf1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:08:05 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "9654e771-cdc9-4263-b2c2-646be669dcc1" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8100,17 +663,20 @@ "Connection": [ "keep-alive" ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], "client-request-id": [ - "199081c6-c372-11e9-9f92-44032c851686" + "75549308-56eb-11e9-a528-44032c851686" ], "accept-language": [ "en-US" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:03 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:p84B27l9Y254IxDSWLlQ1H6ITDvjvM/uHCkx34FM0Hk=" + "Content-Length": [ + "481" ] } }, @@ -8120,44 +686,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:03 GMT" + "Thu, 04 Apr 2019 15:08:10 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "c6b1096b-b29b-44ca-8d59-7445640165ad" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "ad13a521-b7e0-4e52-b189-9614a2c28adb" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8169,16 +735,16 @@ "keep-alive" ], "client-request-id": [ - "1b63f190-c372-11e9-bc6c-44032c851686" + "75b24824-56eb-11e9-bf5b-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:06 GMT" + "Thu, 04 Apr 2019 15:08:10 GMT" ], "Authorization": [ - "SharedKey sdktest2:76qFMzDtMbnjeLaFnNq/9aHs615SjdFn9CUANtSPfpA=" + "SharedKey sdktest2:7RhfSYAFko7eRL1uqvOTtpxWTm5AePUbaOHEhhBjkH8=" ] } }, @@ -8188,44 +754,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:08:10 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:44:05 GMT" + "ETag": [ + "0x8D6B90F56BB5614" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "6c0dc042-2079-487a-8701-462d1d80dc1f" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:08:05 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "39717bf3-8853-409d-ba34-18d65b5b850e" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6B90F56BB5614\",\"lastModified\":\"2019-04-04T15:08:05.0269716Z\",\"creationTime\":\"2019-04-04T15:08:05.0119435Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:08:05.0269716Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:05.0269716Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8237,16 +809,16 @@ "keep-alive" ], "client-request-id": [ - "1d35e510-c372-11e9-b346-44032c851686" + "75d4bf52-56eb-11e9-acc7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:09 GMT" + "Thu, 04 Apr 2019 15:08:10 GMT" ], "Authorization": [ - "SharedKey sdktest2:UkG9ARtwQmP3qx9+lGNnfNXuCOVh/UIAYzycPnCYeSo=" + "SharedKey sdktest2:78qrFP9pWatLX+anivdD4odYqSXX6SFbTNIp1+i1JLs=" ] } }, @@ -8256,44 +828,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:09 GMT" + "Thu, 04 Apr 2019 15:08:10 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "0bd89020-51f2-410c-871b-a6b90012c000" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "216b5469-9bd1-4f28-8402-88839be85aa8" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"creationTime\":\"2019-04-04T15:08:10.2652016Z\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:08:10.2652016Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8305,16 +877,16 @@ "keep-alive" ], "client-request-id": [ - "1f080276-c372-11e9-a864-44032c851686" + "77c0899a-56eb-11e9-ae3d-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:12 GMT" + "Thu, 04 Apr 2019 15:08:13 GMT" ], "Authorization": [ - "SharedKey sdktest2:pMXET6AZ26rD7hR6SYbzzUD/VIY8PkiyOSmKojdKfDA=" + "SharedKey sdktest2:43fzrYMtfvdZDI42lHU0DiKuT9/nBwbpXGM3As79d7o=" ] } }, @@ -8324,44 +896,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:11 GMT" + "Thu, 04 Apr 2019 15:08:13 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "175ec19a-31df-4ff5-8c0e-c9128fe1e2da" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "6dda2c7c-4155-4317-8508-99ae90b1e9e4" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"creationTime\":\"2019-04-04T15:08:10.2652016Z\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:08:13.100927Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:08:12.529634Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:12.529634Z\",\"endTime\":\"2019-04-04T15:08:13.100927Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8373,16 +945,16 @@ "keep-alive" ], "client-request-id": [ - "20db7c8c-c372-11e9-a64d-44032c851686" + "77df5db0-56eb-11e9-b765-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:15 GMT" + "Thu, 04 Apr 2019 15:08:13 GMT" ], "Authorization": [ - "SharedKey sdktest2:BdUHaC1rvH8Grk8Dy/yePosRiM3Oy9tTtHtsya02QM4=" + "SharedKey sdktest2:H3c1oMjhL5UoC86hGok3aL2R9j23rIFf3quoxF0e/yc=" ] } }, @@ -8392,65 +964,65 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:08:14 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:44:15 GMT" + "ETag": [ + "0x8D6B90F59DAA070" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "e87104e8-42fd-437a-bcc4-b0b1e339368d" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:08:10 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "f27d5850-dc8d-4e14-b460-ad30dd816153" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"creationTime\":\"2019-04-04T15:08:10.2652016Z\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:08:13.100927Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:08:12.529634Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:12.529634Z\",\"endTime\":\"2019-04-04T15:08:13.100927Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "22af0a52-c372-11e9-9b9c-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "a37171b4-56eb-11e9-91d7-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:18 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:e3ycw+PeF3KgtdFitwGde3LFK+7eiAO8tUlKTJNvxaE=" + "SharedKey sdkteststore2:+rAbe7nYv6P68rYaZyMUExaErCbt7caQWAB/tJJYst4=" ] } }, @@ -8460,44 +1032,35 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:18 GMT" + "Thu, 04 Apr 2019 15:09:26 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "0d3fd65b-1c07-47f6-95c4-efb48b2bcb1b" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Content-Type": [ + "application/xml" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B81C57C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B85BDDF394application/octet-stream09ZeFrrEuTw+twvZivvJqg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B7E1B580application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:08:12 GMT0x8D6B90F5B7A4A145application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8509,84 +1072,78 @@ "keep-alive" ], "client-request-id": [ - "2481aa1c-c372-11e9-9d21-44032c851686" + "a37d2390-56eb-11e9-8348-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "0" + ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:21 GMT" + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:IcQDc1P9G1Q5kXdiilOyEfuvTTO4i8aH58WljRw98qU=" + "SharedKey sdktest2:QYWIr8j333PDYH1mirqbV1lggYMIPcNttYK9IAZgMYc=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:21 GMT" + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "9f18a63c-33de-40b9-9708-fa4fb04ac92c" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "9fc7314a-d126-4267-9fd4-526702fc79dd" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "26542408-c372-11e9-8794-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "a3a21dde-56eb-11e9-9737-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:24 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:ovPEZPTLdNSV4zgo82RzUPdBlr31+RSCApNDQerzB7s=" + "SharedKey sdkteststore2:I9zBpCVpKDBrypTTV4KPrfVnotvZJ1Bo7JHZnZZkTiI=" ] } }, @@ -8596,316 +1153,259 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:24 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Thu, 04 Apr 2019 15:09:27 GMT" ], - "request-id": [ - "98577927-d844-46c2-9b8b-6855ee1cafe3" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Content-Type": [ + "application/xml" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B81C57C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B85BDDF394application/octet-stream09ZeFrrEuTw+twvZivvJqg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B7E1B580application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:08:12 GMT0x8D6B90F5B7A4A145application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "28267dd4-c372-11e9-9f41-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "a3adb8f6-56eb-11e9-8f7b-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:27 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:ED8tzvugMXqaK9XURD1uFMXtV4U9sgHLBtUh32z1Dvc=" + "SharedKey sdkteststore2:Eb5v+EQmw51jE+UKHWE6ev2pW2BDpMF/hxayKWUREmY=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "9363001d-6450-4d30-929e-538cedf7ce3a" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:09:27 GMT" ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "29f8974c-c372-11e9-af48-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "a3b4a74c-56eb-11e9-a463-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:30 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:0k5sxVHU+GypTf04ZBW9qSx5098jDY9Xi/Rw6yzjt1k=" + "SharedKey sdkteststore2:DY24qBU2fvH8OoJMdqeeUvVH8Palt1VhQgoEH3NX1g0=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:30 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "5a0145fc-2a95-458e-8841-d2ca5a239e88" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:09:27 GMT" ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "2bcb65d8-c372-11e9-b273-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "a3bbac14-56eb-11e9-85df-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:33 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:6J7JmPDTeHUCTVu7JJPCulYAuudpJFv2tEXpU1MICXE=" + "SharedKey sdkteststore2:6jhD+KGSrHmX8fYdVhkMccmrReZYAorLO+2/+TKbAKs=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:33 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "22f54385-26f6-40b3-aa2d-7c7d04d13ab3" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:09:27 GMT" ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "2d9edc6e-c372-11e9-894b-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "a3c2a826-56eb-11e9-b682-44032c851686" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:44:37 GMT" + "x-ms-date": [ + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:hsFSDU/94pWmsN6Keg2CKpQirP2laesTYB6xzPX8yTE=" + "SharedKey sdkteststore2:Nrfm6MhNLtJl2SDxALk3ESn7DI1dL7yHov0VQepKqNY=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:37 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "request-id": [ - "7ba7b751-fe55-411f-8cbc-5e99b648a5e8" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:09:27 GMT" ], - "Transfer-Encoding": [ - "chunked" + "Content-Length": [ + "0" ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ], - "DataServiceVersion": [ - "3.0" + "x-ms-delete-type-permanent": [ + "true" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8917,16 +1417,16 @@ "keep-alive" ], "client-request-id": [ - "2f718f36-c372-11e9-818f-44032c851686" + "a3c9c65e-56eb-11e9-b849-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:40 GMT" + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:D0olf8xEQUQGNjZy1ND64MVgHogC/a44N9ahKfYWUos=" + "SharedKey sdktest2:18c2Q4hx5CzxVcQ8Jb3Em8We+UtGtvhfK7WWFxRTW6o=" ] } }, @@ -8936,44 +1436,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:40 GMT" + "Thu, 04 Apr 2019 15:09:27 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "49fcd5e7-5f25-4195-ac9e-c8e2686bf616" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "149fd806-fd4f-4c7b-ae1c-322da74f31ce" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -8984,64 +1484,70 @@ "Connection": [ "keep-alive" ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], "client-request-id": [ - "314494e6-c372-11e9-97b7-44032c851686" + "a3f5af78-56eb-11e9-965e-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "277" + ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:43 GMT" + "Thu, 04 Apr 2019 15:09:27 GMT" ], "Authorization": [ - "SharedKey sdktest2:w35GmR8i0d25XonEMb5qzQXKgc7YCp6p7BSIOfw32n4=" + "SharedKey sdktest2:NnnVWiMg/XzZ1b0BqOi7N6LFl1z4J8w/DIX5Ouny6hM=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified pool already exists." }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:42 GMT" + "Thu, 04 Apr 2019 15:09:28 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "cd6fe55f-c903-40ea-8611-b119d4de239d" + "Content-Length": [ + "334" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "c5a5bceb-bcbe-4901-98fd-aaf01fe1e8eb" ], - "Transfer-Encoding": [ - "chunked" + "DataServiceVersion": [ + "3.0" ], "X-Content-Type-Options": [ "nosniff" - ], - "DataServiceVersion": [ - "3.0" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:c5a5bceb-bcbe-4901-98fd-aaf01fe1e8eb\\nTime:2019-04-04T15:09:28.1550387Z\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9053,16 +1559,16 @@ "keep-alive" ], "client-request-id": [ - "3316fba2-c372-11e9-9735-44032c851686" + "a4186f74-56eb-11e9-b9e4-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:46 GMT" + "Thu, 04 Apr 2019 15:09:28 GMT" ], "Authorization": [ - "SharedKey sdktest2:qv7VwP4MkjXCyv6NXCOf4xbRRQYSBRrNlx9rJ5FrWKA=" + "SharedKey sdktest2:9I6ZgcApjXL9Rf/l24T2tSzY5qkhD8tS0+/nfAAkM+g=" ] } }, @@ -9072,44 +1578,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:28 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:44:45 GMT" + "ETag": [ + "0x8D6AE50BA1ADAC6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "82aa06ab-98df-4869-85ee-dac2a5298275" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Last-Modified": [ + "Thu, 21 Mar 2019 22:58:26 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "1cfe42e7-5cc7-482b-8698-fc2f308e02b1" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"starting\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:41:45.3034248Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6AE50BA1ADAC6\",\"lastModified\":\"2019-03-21T22:58:26.2442694Z\",\"creationTime\":\"2019-03-19T17:19:57.2061915Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-03-19T17:19:57.2061915Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-03-21T22:59:46.7342494Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":2,\"targetDedicatedNodes\":2,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9121,16 +1633,16 @@ "keep-alive" ], "client-request-id": [ - "34ea90d4-c372-11e9-a91e-44032c851686" + "a4364906-56eb-11e9-83b8-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:49 GMT" + "Thu, 04 Apr 2019 15:09:28 GMT" ], "Authorization": [ - "SharedKey sdktest2:1HgGOzTvkHP8UP1TWcx8R0jL6xK3zIPmhV3TgI9Q0Sk=" + "SharedKey sdktest2:x5xDW475AbLAgAdvhmQ/sugDDibmnzaPyzl3XA0xQQQ=" ] } }, @@ -9140,44 +1652,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:49 GMT" + "Thu, 04 Apr 2019 15:09:28 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "ed7fb884-05be-43cb-bb46-1ac1b6756194" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "4233fd4f-9cd0-4d84-a360-e704d4ba547d" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:44:48.0148Z\",\"lastBootTime\":\"2019-08-20T17:44:47.433702Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"certificateReferences\":[\r\n \r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-08-20T17:44:47.433702Z\",\"version\":\"1.6.4\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:06:48.397872Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":72,\"totalTasksSucceeded\":72,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:06:47.754914Z\",\"endTime\":\"2019-04-04T15:06:48.366594Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2019-08-01.10.0&timeout=30", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", "body": "{\"id\": \"ncj-windows-2012-r2\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9189,13 +1701,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "3518a5a6-c372-11e9-b6fb-44032c851686" + "a48b26a8-56eb-11e9-be66-44032c851686" ], "accept-language": [ "en-US" @@ -9214,38 +1726,38 @@ "message": "Created" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:49 GMT" + "Thu, 04 Apr 2019 15:09:29 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "X-Content-Type-Options": [ - "nosniff" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "ETag": [ - "0x8D7259619F1E38A" + "0x8D6B90F8900F868" ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:44:50 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:09:29 GMT" ], "Transfer-Encoding": [ "chunked" ], "request-id": [ - "6f413b44-c0e2-41ba-8426-851dcaf3d109" + "9e169e26-7064-4c0f-9612-c4b3ec3432d0" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -9256,11 +1768,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/addtaskcollection?api-version=2019-08-01.10.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9272,19 +1784,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "35c02a80-c372-11e9-8b22-44032c851686" + "a4d10b5e-56eb-11e9-a9f1-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "480" + "486" ] } }, @@ -9294,44 +1806,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:50 GMT" + "Thu, 04 Apr 2019 15:09:29 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "f4364c5e-0770-4b56-977b-fbf898085125" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "e079cce7-0bfa-4e4c-b93a-9b936ae50cb8" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D725961A19321F\",\"lastModified\":\"2019-08-20T17:44:50.9395487Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9343,16 +1855,16 @@ "keep-alive" ], "client-request-id": [ - "35f88f76-c372-11e9-8423-44032c851686" + "a5256946-56eb-11e9-ac29-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:51 GMT" + "Thu, 04 Apr 2019 15:09:29 GMT" ], "Authorization": [ - "SharedKey sdktest2:c3SjP2Z5TDuoAdLqkK4VgaV/UEbwHoTfp8M+/KtfBuQ=" + "SharedKey sdktest2:apE+BrygSCyz+XYUrl2S9OUoY5lRc5zNyoaVrPK5E1E=" ] } }, @@ -9362,50 +1874,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:29 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:44:50 GMT" + "ETag": [ + "0x8D6B90F8900F868" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D7259619F1E38A" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:44:50 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "cdc71dc7-4c99-4967-9c34-961ced37c9bd" + "Thu, 04 Apr 2019 15:09:29 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "8fd5d5ec-22ee-44f1-8abd-2615d69d04e6" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D7259619F1E38A\",\"lastModified\":\"2019-08-20T17:44:50.6819466Z\",\"creationTime\":\"2019-08-20T17:44:50.6418336Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:44:50.6819466Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:44:50.6819466Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6B90F8900F868\",\"lastModified\":\"2019-04-04T15:09:29.3694056Z\",\"creationTime\":\"2019-04-04T15:09:29.3563591Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:29.3694056Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:29.3694056Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9417,16 +1929,16 @@ "keep-alive" ], "client-request-id": [ - "3601b72e-c372-11e9-bd4a-44032c851686" + "a541db40-56eb-11e9-80e8-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:51 GMT" + "Thu, 04 Apr 2019 15:09:30 GMT" ], "Authorization": [ - "SharedKey sdktest2:09u9b/SvpMgiDeZ82VI2GtFwOVJ1mDtYF3+Tjtr1OWk=" + "SharedKey sdktest2:IrOaPzxN5SvNnaPEbHkJs6z2WXThO2Gc3MP1TjkR+4I=" ] } }, @@ -9436,44 +1948,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:50 GMT" + "Thu, 04 Apr 2019 15:09:30 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "14bc663a-faaa-4f17-a258-feeaf6ee0d65" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "56a68c42-18ae-458d-9420-753436f5e0dc" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D725961A19321F\",\"creationTime\":\"2019-08-20T17:44:50.9395487Z\",\"lastModified\":\"2019-08-20T17:44:50.9395487Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:44:50.9395487Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"creationTime\":\"2019-04-04T15:09:29.898083Z\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:30.535896Z\",\"previousState\":\"active\",\"previousStateTransitionTime\":\"2019-04-04T15:09:29.898083Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9485,16 +1997,16 @@ "keep-alive" ], "client-request-id": [ - "37d61308-c372-11e9-be6c-44032c851686" + "a7356042-56eb-11e9-ac9a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:54 GMT" + "Thu, 04 Apr 2019 15:09:33 GMT" ], "Authorization": [ - "SharedKey sdktest2:U+uIjZHLFPXiaQX+7zZ8qLhKX4I1mgueAHi7HVdX0UA=" + "SharedKey sdktest2:/JpBqfBsMbgIoJep67x9Af+kriqUhSOOTTOHElkApp4=" ] } }, @@ -9504,44 +2016,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:44:54 GMT" + "Thu, 04 Apr 2019 15:09:33 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "a2446cd3-6853-4a16-8c22-2c94a2754ed0" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "d15495e0-74df-4dcb-9fb5-c0763433d079" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D725961A19321F\",\"creationTime\":\"2019-08-20T17:44:50.9395487Z\",\"lastModified\":\"2019-08-20T17:44:50.9395487Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:44:53.967174Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:44:53.042985Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:44:53.042985Z\",\"endTime\":\"2019-08-20T17:44:53.967174Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"creationTime\":\"2019-04-04T15:09:29.898083Z\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:31.47929Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:30.807417Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:30.807417Z\",\"endTime\":\"2019-04-04T15:09:31.47929Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9553,16 +2065,16 @@ "keep-alive" ], "client-request-id": [ - "37dfa68c-c372-11e9-be46-44032c851686" + "a7579034-56eb-11e9-8338-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:44:54 GMT" + "Thu, 04 Apr 2019 15:09:33 GMT" ], "Authorization": [ - "SharedKey sdktest2:/lu9QFjAcSU+lFPy0P3jVesFnmo9JrkhN3MnZO2agpo=" + "SharedKey sdktest2:0vzPm7aOxxuySSxe4hddpJGR7SHz0VYMPsNbP2FWTHc=" ] } }, @@ -9572,39 +2084,39 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:33 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:44:54 GMT" + "ETag": [ + "0x8D6B90F8951A3DE" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725961A19321F" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:44:50 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "c81c4b07-4d0d-4704-9e34-c7f0300fe57e" + "Thu, 04 Apr 2019 15:09:29 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "590905a0-5487-49d6-bede-c561704721a6" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D725961A19321F\",\"creationTime\":\"2019-08-20T17:44:50.9395487Z\",\"lastModified\":\"2019-08-20T17:44:50.9395487Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:44:53.967174Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:44:53.042985Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-08-20T17%3A39%3A08Z&se=2019-08-21T17%3A39%3A08Z&sp=rw&sv=2017-07-29&sr=c&sig=6MqdvD/tVrcMqBh/xoltuDEmtGg79s3sE1V3lcoFaoM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:44:53.042985Z\",\"endTime\":\"2019-08-20T17:44:53.967174Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"creationTime\":\"2019-04-04T15:09:29.898083Z\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:31.47929Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:30.807417Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:30.807417Z\",\"endTime\":\"2019-04-04T15:09:31.47929Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" } } }, @@ -9624,13 +2136,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "37e93302-c372-11e9-9ff3-44032c851686" + "a77bb186-56eb-11e9-8c1b-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:07 GMT" + "Thu, 04 Apr 2019 15:09:33 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:vFjgezCgXYwB9gBneM83XvFTiAcR6wfhkLB4D3acIwA=" + "SharedKey sdkteststore2:IQrrjKlUK/YsqWIyLALdc7w2PErQjPXBPaNHhvYY6lw=" ] } }, @@ -9640,35 +2152,35 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Date": [ + "Thu, 04 Apr 2019 15:09:33 GMT" + ], + "Content-Type": [ + "application/xml" + ], "Transfer-Encoding": [ "chunked" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:07 GMT" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtTue, 20 Aug 2019 17:44:53 GMT0x8D725961BCE810E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 20 Aug 2019 17:44:53 GMT0x8D725961BDE1438519application/octet-streamaWSSlhRJYQiJLliho4L66A==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 20 Aug 2019 17:44:53 GMT0x8D725961BDFC2360application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 20 Aug 2019 17:44:53 GMT0x8D725961BE122054application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A0C4F0A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A110AD0405application/octet-stream1zmWW59Nlz26LWsuqAh3hA==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A12438E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A15032B4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9680,7 +2192,7 @@ "keep-alive" ], "client-request-id": [ - "401cc3c2-c372-11e9-9d78-44032c851686" + "a786da24-56eb-11e9-9bce-44032c851686" ], "accept-language": [ "en-US" @@ -9689,10 +2201,10 @@ "0" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:33 GMT" ], "Authorization": [ - "SharedKey sdktest2:4uT8P6RATBgsBNFtHK4NIV0Orr1jLHjxnPcoa6IcoOg=" + "SharedKey sdktest2:fXz7DEp95nA9bBndkotl0Y6DgfVnKxeO/kEz7R9KfdQ=" ] } }, @@ -9702,26 +2214,26 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:34 GMT" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "3b3de2bd-485d-40a1-ac3b-6dc3fb7ff8ab" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "c5b48d74-b750-4537-84e7-b2f0c4e389dc" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -9745,13 +2257,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "40264dda-c372-11e9-94f7-44032c851686" + "a7a3f69c-56eb-11e9-9c8f-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:34 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:3ne9gnvYTa8u9jFGyrPNH5iRKISz4XROeO8l5K7s4IY=" + "SharedKey sdkteststore2:886QpSHO05FocW3fiXkRo8zb4W5Otgt5kdTAnpoG+rk=" ] } }, @@ -9761,38 +2273,38 @@ "message": "The specified container does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:33 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:45:07 GMT" - ], "Content-Length": [ "225" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerNotFoundThe specified container does not exist.\nRequestId:7774310e-c01e-001c-0a7f-57bc17000000\nTime:2019-08-20T17:45:08.1858842Z" + "string": "\ufeffContainerNotFoundThe specified container does not exist.\nRequestId:a20d8833-c01e-00b6-1ff8-ea6af8000000\nTime:2019-04-04T15:09:34.1549572Z" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/supportedimages?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9804,16 +2316,16 @@ "keep-alive" ], "client-request-id": [ - "402ed95c-c372-11e9-ac69-44032c851686" + "a7ab5ef0-56eb-11e9-a1bd-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:34 GMT" ], "Authorization": [ - "SharedKey sdktest2:4jCSKGtc1/VzTf9bgeYU6HQCNLJ+lD/ufb+VVegs0jE=" + "SharedKey sdktest2:SaIrXTPiMbsW0Hfucjg7ExEBgiFqZ+n1DgP9nNsq7gU=" ] } }, @@ -9823,44 +2335,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:33 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "3e5c493b-085c-4945-8e5a-bc7ad1573f9a" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "a8d3c5a6-069c-4862-b828-17d47103b849" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#supportedimages\",\"value\":[\r\n {\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04.0-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"18.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 18.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"standard-data-science-vm\",\"sku\":\"standard-data-science-vm\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"azureml\",\"sku\":\"runtime\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1803-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1809-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.0\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.2\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2019-08-01.10.0", - "body": "{\"id\": \"ncj-ubuntu1604\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"canonical\", \"offer\": \"ubuntuserver\", \"sku\": \"16.04-lts\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9875,19 +2387,19 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "403987a6-c372-11e9-bcff-44032c851686" + "a7f66b22-56eb-11e9-a1f3-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "248" + "250" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:34 GMT" ], "Authorization": [ - "SharedKey sdktest2:9HlWXAwOKnUZW1DN7JEbM91mCbJ+drOivOR/VXS2HYM=" + "SharedKey sdktest2:0XgkQY3wyc12WSCner538Ulo5IwUDEIWOLYCo9w92X0=" ] } }, @@ -9897,44 +2409,44 @@ "message": "The specified pool already exists." }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:34 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "59a509f7-71d3-4ce8-a8ef-97e376477f4a" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "334" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "03c948f2-9762-41ca-bf2d-e4a05469157d" ], "DataServiceVersion": [ "3.0" ], - "Content-Length": [ - "334" + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:59a509f7-71d3-4ce8-a8ef-97e376477f4a\\nTime:2019-08-20T17:45:08.3482716Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:03c948f2-9762-41ca-bf2d-e4a05469157d\\nTime:2019-04-04T15:09:34.9964821Z\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -9946,16 +2458,16 @@ "keep-alive" ], "client-request-id": [ - "4047df90-c372-11e9-b81c-44032c851686" + "a831a55a-56eb-11e9-b230-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:35 GMT" ], "Authorization": [ - "SharedKey sdktest2:WHdhVUt9UpYSQv/yCLrZAlPUG7M9DiNrJQ7t8NJOo10=" + "SharedKey sdktest2:Oj2kt1LE9U1Prp8uH040w/jgeWQfNy2tceKqXyxzJwg=" ] } }, @@ -9965,50 +2477,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:34 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "ETag": [ + "0x8D6B84EBB557E6A" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725954EB17F5F" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:39:09 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "40bf1b98-4a01-4ef9-b672-a90255deb51a" + "Wed, 03 Apr 2019 16:09:20 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "ed17bd01-6705-4c54-b52a-0c4f3175b657" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1604\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604\",\"eTag\":\"0x8D725954EB17F5F\",\"lastModified\":\"2019-08-20T17:39:09.6824671Z\",\"creationTime\":\"2019-08-20T17:39:09.6824671Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:39:09.6824671Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-08-20T17:40:16.1469849Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6B84EBB557E6A\",\"lastModified\":\"2019-04-03T16:09:20.9406058Z\",\"creationTime\":\"2019-04-03T16:09:20.9406058Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-03T16:09:20.9406058Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-03T16:10:47.6983993Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10020,16 +2532,16 @@ "keep-alive" ], "client-request-id": [ - "405026d8-c372-11e9-a4e9-44032c851686" + "a870d6e4-56eb-11e9-b68c-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:35 GMT" ], "Authorization": [ - "SharedKey sdktest2:T5/eohhbVrpv9MEKJm+mpWFl1pKPzicTFSkXKiJvcDc=" + "SharedKey sdktest2:nJPsEhkE7Twcuy7I6rR/hEUpDtQznHYKS45E4XfyZZk=" ] } }, @@ -10039,44 +2551,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Thu, 04 Apr 2019 15:09:35 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "d1cfbff1-dc5a-4959-9b02-95e57876a15a" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "6b798641-6681-428d-9bae-521d79199ebe" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:40:26.38171Z\",\"lastBootTime\":\"2019-08-20T17:40:21.194161Z\",\"allocationTime\":\"2019-08-20T17:40:15.2984459Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":1,\"totalTasksSucceeded\":1,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604/tasks/myTask\",\"jobId\":\"ncj-ubuntu1604\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:40:25.735322Z\",\"endTime\":\"2019-08-20T17:40:26.353947Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"certificateReferences\":[\r\n \r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.16.171\",\"publicFQDN\":\"dns07c600ce-fa0e-4d8b-8d1f-948d1d69b8c7-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-08-20T17:40:21.194161Z\",\"version\":\"1.6.4\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:08:13.127925Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":41,\"totalTasksSucceeded\":41,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:12.529634Z\",\"endTime\":\"2019-04-04T15:08:13.100927Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2019-08-01", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-batch/7.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -10088,10 +2600,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + ], + "Content-Type": [ + "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "4085678c-c372-11e9-ae88-44032c851686" + "a9d76606-56eb-11e9-b258-44032c851686" ], "accept-language": [ "en-US" @@ -10104,40 +2619,42 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json; charset=utf-8" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:09:38 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:08 GMT" + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ - "nosniff" + "Transfer-Encoding": [ + "chunked" ], - "content-length": [ - "2729" + "Vary": [ + "Accept-Encoding" ], - "x-ms-original-request-ids": [ - "65653993-abb7-44ba-9070-2e176961dbff", - "0a63772d-594c-4233-8c67-1adead346419" + "X-Content-Type-Options": [ + "nosniff" ], - "Cache-Control": [ - "no-cache" + "Expires": [ + "-1" ], - "Pragma": [ - "no-cache" + "content-length": [ + "686" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/byossc\",\"name\":\"byossc\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"southcentralus\",\"properties\":{\"accountEndpoint\":\"byossc.southcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"poolAllocationMode\":\"UserSubscription\",\"keyVaultReference\":{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.KeyVault/vaults/byossc\",\"url\":\"https://byossc.vault.azure.net/\"}}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"dedicatedCoreQuotaPerVMFamily\":[{\"name\":\"standardA0_A7Family\",\"coreQuota\":20},{\"name\":\"standardDv2Family\",\"coreQuota\":20},{\"name\":\"standardA8_A11Family\",\"coreQuota\":0},{\"name\":\"standardDFamily\",\"coreQuota\":0},{\"name\":\"standardGFamily\",\"coreQuota\":0},{\"name\":\"basicAFamily\",\"coreQuota\":0},{\"name\":\"standardFFamily\",\"coreQuota\":0},{\"name\":\"standardNVFamily\",\"coreQuota\":0},{\"name\":\"standardNVPromoFamily\",\"coreQuota\":0},{\"name\":\"standardNCFamily\",\"coreQuota\":0},{\"name\":\"standardNCPromoFamily\",\"coreQuota\":0},{\"name\":\"standardHFamily\",\"coreQuota\":0},{\"name\":\"standardHPromoFamily\",\"coreQuota\":0},{\"name\":\"standardAv2Family\",\"coreQuota\":0},{\"name\":\"standardMSFamily\",\"coreQuota\":0},{\"name\":\"standardDv3Family\",\"coreQuota\":0},{\"name\":\"standardEv3Family\",\"coreQuota\":0},{\"name\":\"standardDSFamily\",\"coreQuota\":0},{\"name\":\"standardDSv2Family\",\"coreQuota\":0},{\"name\":\"standardDSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSFamily\",\"coreQuota\":0},{\"name\":\"standardESv3Family\",\"coreQuota\":0},{\"name\":\"standardGSFamily\",\"coreQuota\":0},{\"name\":\"standardLSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv2Family\",\"coreQuota\":0},{\"name\":\"standardNDSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSv2Family\",\"coreQuota\":0},{\"name\":\"standardHBSFamily\",\"coreQuota\":0},{\"name\":\"standardHCSFamily\",\"coreQuota\":0}],\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-07-16T21:55:40.4909987Z\"},\"poolAllocationMode\":\"BatchService\"},\"tags\":{\"rawr\":\"test\"}}]}" + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" } } }, @@ -10148,7 +2665,7 @@ "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -10160,13 +2677,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "40de58ac-c372-11e9-b51a-44032c851686" + "aa4bd7c8-56eb-11e9-8a47-44032c851686" ], "accept-language": [ "en-US" @@ -10182,38 +2699,38 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:09:38 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:09 GMT" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Content-Type": [ + "application/json" ], - "X-Content-Type-Options": [ - "nosniff" + "Cache-Control": [ + "no-cache" ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Transfer-Encoding": [ "chunked" ], - "Cache-Control": [ - "no-cache" + "Vary": [ + "Accept-Encoding" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "X-Content-Type-Options": [ + "nosniff" ], - "Pragma": [ - "no-cache" + "Expires": [ + "-1" ], "content-length": [ "288" @@ -10240,13 +2757,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "41177f90-c372-11e9-8c45-44032c851686" + "aa8ec946-56eb-11e9-8550-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:09 GMT" + "Thu, 04 Apr 2019 15:09:39 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:4h2q9L3MdHdVaNqR5kNfdbi5dOvGSuWjlgM588LGMBg=" + "SharedKey sdkteststore2:uEq4Pk9/mTPmRufU2AVBFnunhxMp/1FKXenTHsm2dI8=" ], "Content-Length": [ "0" @@ -10259,23 +2776,23 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" - ], - "ETag": [ - "\"0x8D7259625642E21\"" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:09 GMT" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:09 GMT" + "Thu, 04 Apr 2019 15:09:39 GMT" + ], + "ETag": [ + "\"0x8D6B90F8F0703F7\"" + ], + "Last-Modified": [ + "Thu, 04 Apr 2019 15:09:39 GMT" ], "Content-Length": [ "0" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -10286,11 +2803,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2019-08-01.10.0&timeout=30", - "body": "{\"id\": \"ncj-ubuntu1604-1\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1604\"}}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-ubuntu1404-1\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10302,13 +2819,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "413b2a66-c372-11e9-84f1-44032c851686" + "aad9f3cc-56eb-11e9-807e-44032c851686" ], "accept-language": [ "en-US" @@ -10327,38 +2844,38 @@ "message": "Created" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:10 GMT" + "Thu, 04 Apr 2019 15:09:40 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "X-Content-Type-Options": [ - "nosniff" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "ETag": [ - "0x8D725962617779D" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:11 GMT" + "0x8D6B90F8F779C7A" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:09:40 GMT" ], "Transfer-Encoding": [ "chunked" ], "request-id": [ - "63a51513-af28-42cc-825f-6595cf5850a3" + "016b0454-fe8a-485b-9bce-1b32d005b4e2" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -10369,11 +2886,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/addtaskcollection?api-version=2019-08-01.10.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A09Z&se=2019-08-27T17%3A45%3A09Z&sp=w&sv=2017-07-29&sr=c&sig=nij98v6B3zhcV68rPGSG6wsdfjvePrD8MdMA%2BdWgM78%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10385,19 +2902,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "41e5bc22-c372-11e9-8009-44032c851686" + "ab49a510-56eb-11e9-b205-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "471" + "473" ] } }, @@ -10407,44 +2924,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:11 GMT" + "Thu, 04 Apr 2019 15:09:40 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "b67fd7ee-0fbf-4f2e-9e21-050537cc7980" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "0f0da1f3-2b0a-40fe-b36f-d14eb808ed21" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D72596266B7123\",\"lastModified\":\"2019-08-20T17:45:11.6112163Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10456,16 +2973,16 @@ "keep-alive" ], "client-request-id": [ - "423ac0a6-c372-11e9-a981-44032c851686" + "abb4bd9a-56eb-11e9-8e05-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:11 GMT" + "Thu, 04 Apr 2019 15:09:40 GMT" ], "Authorization": [ - "SharedKey sdktest2:GYi8g5Cycczhzv/MC4FhfWAk7iiQ9knRkD38XxYuul4=" + "SharedKey sdktest2:ZIoBIiCJxOZJ7TK/SXtGHb8015nrHM7CoBPzrYEWm70=" ] } }, @@ -10475,50 +2992,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:41 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:11 GMT" + "ETag": [ + "0x8D6B90F8F779C7A" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962617779D" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:11 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e180a6f6-5dfe-4143-a066-0cb2956fd60b" + "Thu, 04 Apr 2019 15:09:40 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "3f3d2d69-cb50-425b-a561-806bf0e91457" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1604-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1\",\"eTag\":\"0x8D725962617779D\",\"lastModified\":\"2019-08-20T17:45:11.0608797Z\",\"creationTime\":\"2019-08-20T17:45:11.0469939Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:11.0608797Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1604\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:45:11.0608797Z\",\"poolId\":\"ncj-ubuntu1604\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6B90F8F779C7A\",\"lastModified\":\"2019-04-04T15:09:40.2132602Z\",\"creationTime\":\"2019-04-04T15:09:40.1992634Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:40.2132602Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:40.2132602Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10530,16 +3047,16 @@ "keep-alive" ], "client-request-id": [ - "42447acc-c372-11e9-b1e5-44032c851686" + "abf483ee-56eb-11e9-b544-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:11 GMT" + "Thu, 04 Apr 2019 15:09:41 GMT" ], "Authorization": [ - "SharedKey sdktest2:uzooMKAK+UFzRA+iUErDxX8EdMJBrU/IJrG8RrS/B5g=" + "SharedKey sdktest2:Pr5jwXSuMzG5jBNRc6LRNbhVnVvhT4R3cDUzqu+x3ik=" ] } }, @@ -10549,44 +3066,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:11 GMT" + "Thu, 04 Apr 2019 15:09:41 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "09a8cbe9-cda5-42e0-9608-b440c544f700" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "8cdd91b4-df1a-4439-828f-1c4692084872" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks/myTask\",\"eTag\":\"0x8D72596266B7123\",\"creationTime\":\"2019-08-20T17:45:11.6112163Z\",\"lastModified\":\"2019-08-20T17:45:11.6112163Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:11.6112163Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A09Z&se=2019-08-27T17%3A45%3A09Z&sp=w&sv=2017-07-29&sr=c&sig=nij98v6B3zhcV68rPGSG6wsdfjvePrD8MdMA%2BdWgM78%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"creationTime\":\"2019-04-04T15:09:40.8769095Z\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:40.8769095Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10598,16 +3115,16 @@ "keep-alive" ], "client-request-id": [ - "4418ebd2-c372-11e9-9359-44032c851686" + "ae07053a-56eb-11e9-82e8-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:44 GMT" ], "Authorization": [ - "SharedKey sdktest2:2DE1XgHgXeHvj+bXKMOaTi/dEDolM/ddhCA9gx1QY5M=" + "SharedKey sdktest2:TJzAO3KdMYcLJPhPj95SiUyTttc+aBxETEFq2A4NzEg=" ] } }, @@ -10617,44 +3134,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:45 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "89dfc6fb-093a-47f1-9341-9f1ba59e7668" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "758f4d5d-5851-48ad-ba6a-95a48e8f1bf5" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks/myTask\",\"eTag\":\"0x8D72596266B7123\",\"creationTime\":\"2019-08-20T17:45:11.6112163Z\",\"lastModified\":\"2019-08-20T17:45:11.6112163Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:45:13.204694Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:45:12.459832Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A09Z&se=2019-08-27T17%3A45%3A09Z&sp=w&sv=2017-07-29&sr=c&sig=nij98v6B3zhcV68rPGSG6wsdfjvePrD8MdMA%2BdWgM78%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:45:12.459832Z\",\"endTime\":\"2019-08-20T17:45:13.204694Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"poolId\":\"ncj-ubuntu1604\",\"nodeId\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1604-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d/files/workitems/ncj-ubuntu1604-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"creationTime\":\"2019-04-04T15:09:40.8769095Z\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:43.105634Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:42.537048Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:42.537048Z\",\"endTime\":\"2019-04-04T15:09:43.105634Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks/myTask?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10666,16 +3183,16 @@ "keep-alive" ], "client-request-id": [ - "44226e40-c372-11e9-979c-44032c851686" + "ae507bec-56eb-11e9-9e24-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:45 GMT" ], "Authorization": [ - "SharedKey sdktest2:+sAC6seGiXdmK0QUFayRgjscmY7fj5DrzCfjoUD+2fk=" + "SharedKey sdktest2:SqCWlVEkmA2wmeR8KcY2RGa23D/JXFMZ0wV6o63e27I=" ] } }, @@ -10685,39 +3202,39 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:45 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "ETag": [ + "0x8D6B90F8FDCE047" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D72596266B7123" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:11 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e9c88c9c-79ea-419b-8e7d-b9f769030406" + "Thu, 04 Apr 2019 15:09:40 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "9158c1a3-c5f0-41db-ba15-26519b835151" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1/tasks/myTask\",\"eTag\":\"0x8D72596266B7123\",\"creationTime\":\"2019-08-20T17:45:11.6112163Z\",\"lastModified\":\"2019-08-20T17:45:11.6112163Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:45:13.204694Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:45:12.459832Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A09Z&se=2019-08-27T17%3A45%3A09Z&sp=w&sv=2017-07-29&sr=c&sig=nij98v6B3zhcV68rPGSG6wsdfjvePrD8MdMA%2BdWgM78%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:45:12.459832Z\",\"endTime\":\"2019-08-20T17:45:13.204694Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"poolId\":\"ncj-ubuntu1604\",\"nodeId\":\"tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1604-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1604/nodes/tvmps_453be07f8833a32514145f65c262af27329214bd3876c9903242c14905bf89d4_d/files/workitems/ncj-ubuntu1604-1/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"creationTime\":\"2019-04-04T15:09:40.8769095Z\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:43.105634Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:42.537048Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:42.537048Z\",\"endTime\":\"2019-04-04T15:09:43.105634Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" } } }, @@ -10737,13 +3254,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "442e9122-c372-11e9-9417-44032c851686" + "b38624c6-56eb-11e9-bdd5-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:x3VlCtM/x0xgsyc0czlkO0eMd0h1MQBYhaKvQ8O4HKE=" + "SharedKey sdkteststore2:9YnnHA7vHadVd6BlfvtC8DDKzRjQAUqfVuXhRoEVQWM=" ] } }, @@ -10753,35 +3270,35 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Date": [ + "Thu, 04 Apr 2019 15:09:53 GMT" + ], + "Content-Type": [ + "application/xml" + ], "Transfer-Encoding": [ "chunked" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtTue, 20 Aug 2019 17:45:13 GMT0x8D7259627577AB80application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 20 Aug 2019 17:45:12 GMT0x8D72596272F03DF512application/octet-streamwyfwc69jKJUl+IdiflQalw==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 20 Aug 2019 17:45:12 GMT0x8D725962730B1DC0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 20 Aug 2019 17:45:12 GMT0x8D725962733234D5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9127B35F0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F912B5D87400application/octet-streamTlzFVlFpmm4TCPHFJKNLJg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9123E21C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:09:42 GMT0x8D6B90F911EFF315application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1604-1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -10793,7 +3310,7 @@ "keep-alive" ], "client-request-id": [ - "443ad030-c372-11e9-8287-44032c851686" + "b3a7c13e-56eb-11e9-985f-44032c851686" ], "accept-language": [ "en-US" @@ -10802,10 +3319,10 @@ "0" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" ], "Authorization": [ - "SharedKey sdktest2:2d6k4MNm6y9zXvGsQ6qSCL3bI+OD+NXUH6soqYP3kNc=" + "SharedKey sdktest2:VbqJ2dEoIkrVMV2F2HvxmFT1iuk5NKH/7tWgyHDPRSY=" ] } }, @@ -10815,26 +3332,26 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "d733f566-2eee-4150-a93a-c01e6352e8e5" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "d77072d5-a27c-47fb-907b-754725f61a52" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -10858,13 +3375,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "44436798-c372-11e9-8c1b-44032c851686" + "b3e13436-56eb-11e9-9893-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:2qk1GtO2Qz8TiYWpSTP3EoEPpBNnLtjftVnaBNzCQAM=" + "SharedKey sdkteststore2:T/CkTq+8JPmsEhYdN1+eLssaYeyhkesW4+iIQIVM4kQ=" ] } }, @@ -10874,24 +3391,24 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Date": [ + "Thu, 04 Apr 2019 15:09:54 GMT" + ], + "Content-Type": [ + "application/xml" + ], "Transfer-Encoding": [ "chunked" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtTue, 20 Aug 2019 17:45:13 GMT0x8D7259627577AB80application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 20 Aug 2019 17:45:12 GMT0x8D72596272F03DF512application/octet-streamwyfwc69jKJUl+IdiflQalw==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 20 Aug 2019 17:45:12 GMT0x8D725962730B1DC0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 20 Aug 2019 17:45:12 GMT0x8D725962733234D5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9127B35F0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F912B5D87400application/octet-streamTlzFVlFpmm4TCPHFJKNLJg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9123E21C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:09:42 GMT0x8D6B90F911EFF315application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -10911,13 +3428,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "444fca3e-c372-11e9-9a80-44032c851686" + "b401db88-56eb-11e9-bb0d-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:aUXLqH7Q/+C4lOihJgOYj+jGdA/aLmcMBLnEp1fyzGY=" + "SharedKey sdkteststore2:qolgfApApioo+V09kjgdmkXfKgdmEeUigFCGs7fkTKQ=" ], "Content-Length": [ "0" @@ -10930,20 +3447,20 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" + ], + "Content-Length": [ + "0" ], "x-ms-version": [ "2017-07-29" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], "x-ms-delete-type-permanent": [ "true" - ], - "Content-Length": [ - "0" ] }, "body": { @@ -10967,13 +3484,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "4457b058-c372-11e9-bc94-44032c851686" + "b421bf00-56eb-11e9-b865-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:nrvYabCdvNYiXTcv5dE10UEpJa5FNQVY4HMIxMKmvMw=" + "SharedKey sdkteststore2:13tGefP/+hvmtHn/frV2tL49RxTV5sCetTogeuR15yA=" ], "Content-Length": [ "0" @@ -10986,20 +3503,20 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:54 GMT" + ], + "Content-Length": [ + "0" ], "x-ms-version": [ "2017-07-29" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], "x-ms-delete-type-permanent": [ "true" - ], - "Content-Length": [ - "0" ] }, "body": { @@ -11023,13 +3540,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "445f51a8-c372-11e9-ac85-44032c851686" + "b43dfc70-56eb-11e9-a8cf-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:76B7T3kYtjypQAeUP7jLcLeLVmZwqIpFZDoQ9Tn7zKY=" + "SharedKey sdkteststore2:kB6fsphI74tyRvvrKJGMj+m3o1hO4OeZ3FNmDihyFVQ=" ], "Content-Length": [ "0" @@ -11042,20 +3559,20 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" + ], + "Content-Length": [ + "0" ], "x-ms-version": [ "2017-07-29" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], "x-ms-delete-type-permanent": [ "true" - ], - "Content-Length": [ - "0" ] }, "body": { @@ -11079,13 +3596,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "4466ca7e-c372-11e9-89e4-44032c851686" + "b458fe34-56eb-11e9-a3ad-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:BZb/FO9L0YjFH0KUNy9bfPKh71O+zrKCvun63Ix6Dak=" + "SharedKey sdkteststore2:Iqe/IFnDf0HXigSyug79e9zQ03ltJGZFC2MNsRi0k68=" ], "Content-Length": [ "0" @@ -11098,20 +3615,20 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" + ], + "Content-Length": [ + "0" ], "x-ms-version": [ "2017-07-29" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], "x-ms-delete-type-permanent": [ "true" - ], - "Content-Length": [ - "0" ] }, "body": { @@ -11122,11 +3639,11 @@ { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/supportedimages?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11138,16 +3655,16 @@ "keep-alive" ], "client-request-id": [ - "446ee9e2-c372-11e9-8150-44032c851686" + "b478f9e4-56eb-11e9-b1ac-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" ], "Authorization": [ - "SharedKey sdktest2:HeMf6GhqUC9nZHLofWCNXvDDzAXG2xLA4amGN8KJ+5M=" + "SharedKey sdktest2:mW7YmVn/9bfWjJVL0F3DDk4n1eX6QJ6elWM47YKvlBc=" ] } }, @@ -11157,44 +3674,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:55 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "68035f8f-41ca-496b-adef-2211f3f2fa2d" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "7f9b66a4-95a9-4bcf-ad86-e6cf4573dea9" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#supportedimages\",\"value\":[\r\n {\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"16.04.0-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"canonical\",\"offer\":\"ubuntuserver\",\"sku\":\"18.04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 18.04\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"8-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 8\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"credativ\",\"offer\":\"debian\",\"sku\":\"9-backports\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.debian 9\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"standard-data-science-vm\",\"sku\":\"standard-data-science-vm\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"NvidiaGridDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\",\"SupportsRDMAOnly\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"azureml\",\"sku\":\"runtime\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\",\"capabilities\":[\r\n \"DockerCompatible\",\"NvidiaTeslaDriverInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2008-r2-sp1-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2016-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-core-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2019-datacenter-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1709-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1803-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserversemiannual\",\"sku\":\"datacenter-core-1809-with-containers-smalldisk\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.windows amd64\",\"capabilities\":[\r\n \"DockerCompatible\"\r\n ],\"osType\":\"windows\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.0\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.2\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"openlogic\",\"offer\":\"centos-hpc\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"capabilities\":[\r\n \"SupportsRDMAOnly\",\"IntelMPIRuntimeInstalled\"\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.5\",\"version\":\"latest\"\r\n },\"verificationType\":\"unverified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n },{\r\n \"imageReference\":{\r\n \"publisher\":\"oracle\",\"offer\":\"oracle-linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },\"verificationType\":\"verified\",\"nodeAgentSKUId\":\"batch.node.centos 7\",\"osType\":\"linux\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2019-08-01.10.0", - "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"microsoftwindowsserver\", \"offer\": \"windowsserver\", \"sku\": \"2012-r2-datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11209,7 +3726,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "447ad4cc-c372-11e9-91ea-44032c851686" + "b4ea7600-56eb-11e9-9c7d-44032c851686" ], "accept-language": [ "en-US" @@ -11218,10 +3735,10 @@ "277" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:56 GMT" ], "Authorization": [ - "SharedKey sdktest2:MYPpSapN7cxQpDcyyhM+QitUie8hQ8biclNO7XpQCiM=" + "SharedKey sdktest2:0VR+UgRTyiZk0fI+V7kFI+Cu1dlDUzSBrZiwso+PmPk=" ] } }, @@ -11231,44 +3748,44 @@ "message": "The specified pool already exists." }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:56 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "9a5644b3-e6be-4308-a4f7-5c7fd231165c" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "334" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "da379b76-6e43-4224-8e40-98a07e63550a" ], "DataServiceVersion": [ "3.0" ], - "Content-Length": [ - "334" + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:9a5644b3-e6be-4308-a4f7-5c7fd231165c\\nTime:2019-08-20T17:45:15.4699564Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:da379b76-6e43-4224-8e40-98a07e63550a\\nTime:2019-04-04T15:09:56.7400082Z\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11280,16 +3797,16 @@ "keep-alive" ], "client-request-id": [ - "44866942-c372-11e9-ac75-44032c851686" + "b526cd28-56eb-11e9-a8f2-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:56 GMT" ], "Authorization": [ - "SharedKey sdktest2:NIaG0PnfWRfpY1MNixscIgIiFKBcr1vfLNzIObX9sHg=" + "SharedKey sdktest2:5PNZPAZCQ5U8DV4mFToZBOieVLKE+djAK4XoJCrTwiU=" ] } }, @@ -11299,50 +3816,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:09:57 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "ETag": [ + "0x8D6AE50BA1ADAC6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725957DFB0158" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:40:29 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "a1b930b6-ff15-419f-8df5-e6f7c836ace6" + "Thu, 21 Mar 2019 22:58:26 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "09ac7a7c-4a8a-46a4-a049-82192f3bae1c" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D725957DFB0158\",\"lastModified\":\"2019-08-20T17:40:29.0171224Z\",\"creationTime\":\"2019-08-20T17:40:29.0171224Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:40:29.0171224Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-08-20T17:41:45.3536086Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"microsoftwindowsserver\",\"offer\":\"windowsserver\",\"sku\":\"2012-r2-datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6AE50BA1ADAC6\",\"lastModified\":\"2019-03-21T22:58:26.2442694Z\",\"creationTime\":\"2019-03-19T17:19:57.2061915Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-03-19T17:19:57.2061915Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-03-21T22:59:46.7342494Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":2,\"targetDedicatedNodes\":2,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11354,16 +3871,16 @@ "keep-alive" ], "client-request-id": [ - "448dee90-c372-11e9-a2e6-44032c851686" + "b5634a68-56eb-11e9-8c88-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" + "Thu, 04 Apr 2019 15:09:57 GMT" ], "Authorization": [ - "SharedKey sdktest2:BYIeN7EVjONerdTZbysxRso2w8Y/5SodQSrJYInSw7k=" + "SharedKey sdktest2:Cb/lm4mTI2vTlHJuh5aSZ/Epa8hvEMHqXjwv5tACtgE=" ] } }, @@ -11373,44 +3890,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:14 GMT" + "Thu, 04 Apr 2019 15:09:57 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "37dd8839-b7db-4ab8-b71d-05870676743e" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "4f761494-4a70-4c5f-8de0-914008a3a58a" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-08-20T17:44:53.998613Z\",\"lastBootTime\":\"2019-08-20T17:44:47.433702Z\",\"allocationTime\":\"2019-08-20T17:41:44.5757579Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":1,\"totalTasksSucceeded\":1,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:44:53.042985Z\",\"endTime\":\"2019-08-20T17:44:53.967174Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"certificateReferences\":[\r\n \r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.159.21.30\",\"publicFQDN\":\"dns1e3cf4d6-e900-4b6b-83dd-f0405cfffd73-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-08-20T17:44:47.433702Z\",\"version\":\"1.6.4\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:09:31.510542Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":73,\"totalTasksSucceeded\":73,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:30.807417Z\",\"endTime\":\"2019-04-04T15:09:31.47929Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2019-08-01", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-batch/7.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -11422,10 +3939,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + ], + "Content-Type": [ + "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "44ba866e-c372-11e9-a07b-44032c851686" + "b6ea7662-56eb-11e9-b255-44032c851686" ], "accept-language": [ "en-US" @@ -11438,40 +3958,42 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json; charset=utf-8" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:10:00 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:16 GMT" + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ - "nosniff" + "Transfer-Encoding": [ + "chunked" ], - "content-length": [ - "2729" + "Vary": [ + "Accept-Encoding" ], - "x-ms-original-request-ids": [ - "1a4bba4d-043b-4e32-8cc3-4a641aa58b81", - "21497a40-928d-4fbe-be78-cd0823fb21b3" + "X-Content-Type-Options": [ + "nosniff" ], - "Cache-Control": [ - "no-cache" + "Expires": [ + "-1" ], - "Pragma": [ - "no-cache" + "content-length": [ + "686" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/byossc\",\"name\":\"byossc\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"southcentralus\",\"properties\":{\"accountEndpoint\":\"byossc.southcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"poolAllocationMode\":\"UserSubscription\",\"keyVaultReference\":{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.KeyVault/vaults/byossc\",\"url\":\"https://byossc.vault.azure.net/\"}}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"dedicatedCoreQuotaPerVMFamily\":[{\"name\":\"standardA0_A7Family\",\"coreQuota\":20},{\"name\":\"standardDv2Family\",\"coreQuota\":20},{\"name\":\"standardA8_A11Family\",\"coreQuota\":0},{\"name\":\"standardDFamily\",\"coreQuota\":0},{\"name\":\"standardGFamily\",\"coreQuota\":0},{\"name\":\"basicAFamily\",\"coreQuota\":0},{\"name\":\"standardFFamily\",\"coreQuota\":0},{\"name\":\"standardNVFamily\",\"coreQuota\":0},{\"name\":\"standardNVPromoFamily\",\"coreQuota\":0},{\"name\":\"standardNCFamily\",\"coreQuota\":0},{\"name\":\"standardNCPromoFamily\",\"coreQuota\":0},{\"name\":\"standardHFamily\",\"coreQuota\":0},{\"name\":\"standardHPromoFamily\",\"coreQuota\":0},{\"name\":\"standardAv2Family\",\"coreQuota\":0},{\"name\":\"standardMSFamily\",\"coreQuota\":0},{\"name\":\"standardDv3Family\",\"coreQuota\":0},{\"name\":\"standardEv3Family\",\"coreQuota\":0},{\"name\":\"standardDSFamily\",\"coreQuota\":0},{\"name\":\"standardDSv2Family\",\"coreQuota\":0},{\"name\":\"standardDSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSFamily\",\"coreQuota\":0},{\"name\":\"standardESv3Family\",\"coreQuota\":0},{\"name\":\"standardGSFamily\",\"coreQuota\":0},{\"name\":\"standardLSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv2Family\",\"coreQuota\":0},{\"name\":\"standardNDSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSv2Family\",\"coreQuota\":0},{\"name\":\"standardHBSFamily\",\"coreQuota\":0},{\"name\":\"standardHCSFamily\",\"coreQuota\":0}],\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-07-16T21:55:40.4909987Z\"},\"poolAllocationMode\":\"BatchService\"},\"tags\":{\"rawr\":\"test\"}}]}" + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" } } }, @@ -11482,7 +4004,7 @@ "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -11494,13 +4016,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "44fc2042-c372-11e9-8aee-44032c851686" + "b749fde4-56eb-11e9-8108-44032c851686" ], "accept-language": [ "en-US" @@ -11516,38 +4038,38 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:10:00 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:16 GMT" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Content-Type": [ + "application/json" ], - "X-Content-Type-Options": [ - "nosniff" + "Cache-Control": [ + "no-cache" ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Transfer-Encoding": [ "chunked" ], - "Cache-Control": [ - "no-cache" + "Vary": [ + "Accept-Encoding" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "X-Content-Type-Options": [ + "nosniff" ], - "Pragma": [ - "no-cache" + "Expires": [ + "-1" ], "content-length": [ "288" @@ -11574,13 +4096,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "4524af9c-c372-11e9-81f1-44032c851686" + "b79b14f8-56eb-11e9-a678-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:16 GMT" + "Thu, 04 Apr 2019 15:10:00 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:sV/dojC3vEOKaPoV7vK/EIjr+KTkokgD49Wgqa//HnE=" + "SharedKey sdkteststore2:cowHAkEuTykH7tvS8bvzhs3gDe8C6jV4LYr4OUlxyl4=" ], "Content-Length": [ "0" @@ -11593,38 +4115,38 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:10:00 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:45:15 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:fb9e174e-c01e-003e-6b7f-57d221000000\nTime:2019-08-20T17:45:16.6939433Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:63dfaf2f-901e-0004-47f8-ea9182000000\nTime:2019-04-04T15:10:01.3588109Z" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2019-08-01.10.0&timeout=30", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", "body": "{\"id\": \"ncj-windows-2012-r2-1\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11636,13 +4158,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "45414f66-c372-11e9-8570-44032c851686" + "b7e7b58a-56eb-11e9-834d-44032c851686" ], "accept-language": [ "en-US" @@ -11661,38 +4183,38 @@ "message": "Created" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:16 GMT" + "Thu, 04 Apr 2019 15:10:02 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "X-Content-Type-Options": [ - "nosniff" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "ETag": [ - "0x8D72596299AC0BF" + "0x8D6B90F9C7736EB" ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:16 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:10:02 GMT" ], "Transfer-Encoding": [ "chunked" ], "request-id": [ - "53478f48-65be-4ca7-b7b8-999655f48af6" + "449d2b55-9b91-4c61-88c5-0247aee2bfa0" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -11703,11 +4225,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2019-08-01.10.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A16Z&se=2019-08-27T17%3A45%3A16Z&sp=w&sv=2017-07-29&sr=c&sig=bVYOPdfrMPuJKZS0wQROeVCiAnU8Kxrjj1SRBO3gp5M%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11719,19 +4241,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "456929be-c372-11e9-8c04-44032c851686" + "b84bedb8-56eb-11e9-9cc5-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "474" + "478" ] } }, @@ -11741,44 +4263,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:17 GMT" + "Thu, 04 Apr 2019 15:10:02 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "c4bc77d9-2c4d-42dc-9843-7e9fbd0a0ec7" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "97f680a9-dd37-4290-b53f-e68f4c079ff1" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D7259629DC8103\",\"lastModified\":\"2019-08-20T17:45:17.3853443Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11790,16 +4312,16 @@ "keep-alive" ], "client-request-id": [ - "45abb300-c372-11e9-8af5-44032c851686" + "b89f713e-56eb-11e9-8a1c-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:17 GMT" + "Thu, 04 Apr 2019 15:10:02 GMT" ], "Authorization": [ - "SharedKey sdktest2:o6KUMWoXLdqzIk5JfpZBeP7S1GSYDuQ5zAFh6LAfdww=" + "SharedKey sdktest2:p6+dfYTdVR20eOvcTZ3AjYlPsd0Dx6cTy52CTQKuKbU=" ] } }, @@ -11809,50 +4331,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:10:02 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:17 GMT" + "ETag": [ + "0x8D6B90F9C7736EB" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D72596299AC0BF" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:16 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "350079b9-2118-4fb7-8edb-8328bfdc1c94" + "Thu, 04 Apr 2019 15:10:02 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "277bdaef-6d64-4a93-92c7-72be80e0988c" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D72596299AC0BF\",\"lastModified\":\"2019-08-20T17:45:16.9544383Z\",\"creationTime\":\"2019-08-20T17:45:16.9394467Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:16.9544383Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:45:16.9544383Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6B90F9C7736EB\",\"lastModified\":\"2019-04-04T15:10:02.0210411Z\",\"creationTime\":\"2019-04-04T15:10:02.0050541Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:02.0210411Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:02.0210411Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11864,16 +4386,16 @@ "keep-alive" ], "client-request-id": [ - "45b60ec6-c372-11e9-b906-44032c851686" + "b8e2339e-56eb-11e9-8752-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:17 GMT" + "Thu, 04 Apr 2019 15:10:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:TnyDHUqfGG++OCjU2ToThb19pHa957TE8Sy/CfytQcM=" + "SharedKey sdktest2:kqJDhzWbzD7/aEvzf+k/XHajfTynYbyaOZ06gsIB3/Y=" ] } }, @@ -11883,44 +4405,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:17 GMT" + "Thu, 04 Apr 2019 15:10:02 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "73c27ea7-edab-4c74-b383-b8698b8abded" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "497375cc-4d19-4f35-a8d6-bc49dda05f39" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D7259629DC8103\",\"creationTime\":\"2019-08-20T17:45:17.3853443Z\",\"lastModified\":\"2019-08-20T17:45:17.3853443Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:17.3853443Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A16Z&se=2019-08-27T17%3A45%3A16Z&sp=w&sv=2017-07-29&sr=c&sig=bVYOPdfrMPuJKZS0wQROeVCiAnU8Kxrjj1SRBO3gp5M%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"creationTime\":\"2019-04-04T15:10:02.5501564Z\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:02.5501564Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -11932,16 +4454,16 @@ "keep-alive" ], "client-request-id": [ - "478a8b4c-c372-11e9-b188-44032c851686" + "baf6a454-56eb-11e9-b41b-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:/le2GBHN9MKRVtoNO4PoGUJ3gKZCRijaeK/FLxWPmQU=" + "SharedKey sdktest2:VAkJNng7A4o8unO7tbl2dAvAoScnZUKaqIxzk8ATEig=" ] } }, @@ -11951,44 +4473,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:06 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "8bfaaf9e-dd8d-4eef-8764-1d76e36188ce" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "b2205ec2-323f-4ca6-b710-8aaf964b5d04" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D7259629DC8103\",\"creationTime\":\"2019-08-20T17:45:17.3853443Z\",\"lastModified\":\"2019-08-20T17:45:17.3853443Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:45:18.734037Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:45:18.062269Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A16Z&se=2019-08-27T17%3A45%3A16Z&sp=w&sv=2017-07-29&sr=c&sig=bVYOPdfrMPuJKZS0wQROeVCiAnU8Kxrjj1SRBO3gp5M%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:45:18.062269Z\",\"endTime\":\"2019-08-20T17:45:18.734037Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"creationTime\":\"2019-04-04T15:10:02.5501564Z\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:10:04.611151Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:10:04.055754Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:04.055754Z\",\"endTime\":\"2019-04-04T15:10:04.611151Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12000,16 +4522,16 @@ "keep-alive" ], "client-request-id": [ - "47946966-c372-11e9-9c40-44032c851686" + "bb471112-56eb-11e9-ba08-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:07 GMT" ], "Authorization": [ - "SharedKey sdktest2:Pqp1LVID6HMpKmMiKIJJ4WcYcReN7QJpOfm8L+272i4=" + "SharedKey sdktest2:7SdYTlauDmwQUPJvPuW8mtSZoM7MppgFftAns4cMIXE=" ] } }, @@ -12019,39 +4541,39 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:07 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "ETag": [ - "0x8D7259629DC8103" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:17 GMT" + "0x8D6B90F9CC7F37C" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "request-id": [ - "10efabb0-f391-4955-9578-26d695dbecb6" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:10:02 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "9001ec8d-0aed-4d75-9bca-95162a788e1d" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D7259629DC8103\",\"creationTime\":\"2019-08-20T17:45:17.3853443Z\",\"lastModified\":\"2019-08-20T17:45:17.3853443Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-08-20T17:45:18.734037Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-08-20T17:45:18.062269Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A30%3A16Z&se=2019-08-27T17%3A45%3A16Z&sp=w&sv=2017-07-29&sr=c&sig=bVYOPdfrMPuJKZS0wQROeVCiAnU8Kxrjj1SRBO3gp5M%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-08-20T17:45:18.062269Z\",\"endTime\":\"2019-08-20T17:45:18.734037Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_ab68cd4d729ca9bc23e5ffff7aa674c279f32a8304c6be1593d4e03e218f6651_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"creationTime\":\"2019-04-04T15:10:02.5501564Z\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:10:04.611151Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:10:04.055754Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:04.055754Z\",\"endTime\":\"2019-04-04T15:10:04.611151Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" } } }, @@ -12071,13 +4593,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "479e95ca-c372-11e9-b8ca-44032c851686" + "cfb69d50-56eb-11e9-a8f8-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:V/UZfT6VOri2g7A27qdzLqllxvir/pooZRSX4aUionA=" + "SharedKey sdkteststore2:/YRProStARYUg/2+2y8PI7+yO4sKXX2ITBA00RM9EXo=" ] } }, @@ -12087,35 +4609,35 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Date": [ + "Thu, 04 Apr 2019 15:10:41 GMT" + ], + "Content-Type": [ + "application/xml" + ], "Transfer-Encoding": [ "chunked" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:19 GMT" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtTue, 20 Aug 2019 17:45:18 GMT0x8D725962A9D9FBA0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 20 Aug 2019 17:45:18 GMT0x8D725962A9F4DB3525application/octet-streamqkl+koQBVfcwsY+RqYYRgQ==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 20 Aug 2019 17:45:18 GMT0x8D725962AA170FA0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 20 Aug 2019 17:45:18 GMT0x8D725962AA3460A4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD0DC350application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD214EA411application/octet-streamOJCm4+HSfzhBM8Yf6E4NLw==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD374BB0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD4AD704application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12127,7 +4649,7 @@ "keep-alive" ], "client-request-id": [ - "47aa580a-c372-11e9-8d64-44032c851686" + "cfd77e00-56eb-11e9-b777-44032c851686" ], "accept-language": [ "en-US" @@ -12136,10 +4658,10 @@ "0" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:41 GMT" ], "Authorization": [ - "SharedKey sdktest2:3e/clmvwyBmJVTrI90SmYPcE3XHtVAkT455y792HKus=" + "SharedKey sdktest2:T8th33iQun8RsdlLlNHgqg9LqGCt444tmtpRsiDPaNg=" ] } }, @@ -12149,26 +4671,26 @@ "message": "Accepted" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:41 GMT" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "5039fb54-1cb0-4b76-a0cf-e16fddd14f9f" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "9de38146-d926-4b6c-90d0-60dc1ca93032" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -12179,11 +4701,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2019-08-01.10.0", - "body": "{\"id\": \"blobsource1\", \"displayName\": \"Blender Ubuntu standard pool\", \"vmSize\": \"Standard_D1_v2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1, \"targetLowPriorityNodes\": 0, \"enableAutoScale\": false, \"startTask\": {\"commandLine\": \"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\", \"resourceFiles\": [{\"httpUrl\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\", \"filePath\": \"setup-linux-pool.sh\"}], \"userIdentity\": {\"autoUser\": {\"scope\": \"pool\", \"elevationLevel\": \"admin\"}}, \"maxTaskRetryCount\": 0, \"waitForSuccess\": true}}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-08-01.7.0", + "body": "{\"id\": \"blobsource\", \"displayName\": \"Blender Ubuntu standard pool\", \"vmSize\": \"Standard_D1_v2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1, \"targetLowPriorityNodes\": 0, \"enableAutoScale\": false, \"startTask\": {\"commandLine\": \"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\", \"resourceFiles\": [{\"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\", \"filePath\": \"setup-linux-pool.sh\"}], \"userIdentity\": {\"autoUser\": {\"scope\": \"pool\", \"elevationLevel\": \"admin\"}}, \"maxTaskRetryCount\": 0, \"waitForSuccess\": true}}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12198,19 +4720,19 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "47b4d5ca-c372-11e9-bb31-44032c851686" + "d13968c6-56eb-11e9-a555-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "757" + "759" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:43 GMT" ], "Authorization": [ - "SharedKey sdktest2:Nbd1SyrR1LL0C+r9LMZPVSmo8eoQwVCwsn3iyW8YQc4=" + "SharedKey sdktest2:KkJrW935W5bP0ChaUaGSkbmp5B8ndARtPHmQY5Q+bOk=" ] } }, @@ -12220,53 +4742,127 @@ "message": "Created" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "Thu, 04 Apr 2019 15:10:44 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + ], + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "Last-Modified": [ + "Thu, 04 Apr 2019 15:10:44 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "request-id": [ + "0fda8d2f-13c9-47f3-8340-6a005a4a335d" + ], + "DataServiceVersion": [ + "3.0" + ], "X-Content-Type-Options": [ "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], - "ETag": [ - "0x8D725962C1A843B" + "Accept-Encoding": [ + "gzip, deflate" ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "d1a03138-56eb-11e9-ad2b-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Thu, 04 Apr 2019 15:10:44 GMT" ], + "Authorization": [ + "SharedKey sdktest2:/j5nLWqt79XVhfO8BGe94p9bZjehOqGh74wg7aOuwQg=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1" + "Date": [ + "Thu, 04 Apr 2019 15:10:44 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "ETag": [ + "0x8D6B90FB5CA950F" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Last-Modified": [ + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], "request-id": [ - "f3ca63b2-6f68-426c-ab9f-99923cff795e" + "422b20ca-7d0a-40bf-aea0-7810defe6653" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12278,16 +4874,16 @@ "keep-alive" ], "client-request-id": [ - "47eca2ac-c372-11e9-810b-44032c851686" + "d3b27a9e-56eb-11e9-a798-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:21 GMT" + "Thu, 04 Apr 2019 15:10:48 GMT" ], "Authorization": [ - "SharedKey sdktest2:VVmV7Y4ckii4aKVHUX7L0hCHIBxrv9AcaDpeQSzNLHg=" + "SharedKey sdktest2:6S2IWjHc+dl00J2NOlJ0UQjWT/W1hbNyUzlbBII7NYE=" ] } }, @@ -12297,50 +4893,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:10:48 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:20 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "839d3d5d-5814-437e-b5a7-bdcf430d0129" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "27bdbf5d-1512-4b50-b2ab-4be9edf3e058" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12352,16 +4948,16 @@ "keep-alive" ], "client-request-id": [ - "49c01926-c372-11e9-8444-44032c851686" + "d5cb6110-56eb-11e9-b960-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:24 GMT" + "Thu, 04 Apr 2019 15:10:51 GMT" ], "Authorization": [ - "SharedKey sdktest2:CHsDCW2JEyxhM/tzIFueAWbXXM2W8Tz0cxGkjKkQJtE=" + "SharedKey sdktest2:bhNlF5/qRSnzrO/XDKpTnueCIgORLuPDTNvk12oE16I=" ] } }, @@ -12371,50 +4967,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:10:51 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:23 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "1b8c07e6-6074-4850-a237-467cad41d7ec" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "8907dbe5-d8fe-48ea-a3e6-20e3b5858ccf" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12426,16 +5022,16 @@ "keep-alive" ], "client-request-id": [ - "4b93d6ae-c372-11e9-a3e3-44032c851686" + "d7e3ec82-56eb-11e9-9c84-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:27 GMT" + "Thu, 04 Apr 2019 15:10:55 GMT" ], "Authorization": [ - "SharedKey sdktest2:atJV14scQOZoo2OEbJoN8LvAY0WExJZCzIDM9aWOMrg=" + "SharedKey sdktest2:dHxrbgJkwk8vQh24FF4v5sMPIv1xsvKhTCGTjg11oXU=" ] } }, @@ -12445,50 +5041,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:10:55 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:27 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "3dd66382-3cce-4f21-9c57-0920531636e8" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "30e261a3-9c24-4edb-985f-ae79c4c09e64" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12500,16 +5096,16 @@ "keep-alive" ], "client-request-id": [ - "4d68c5c6-c372-11e9-a3c4-44032c851686" + "d9f6bf36-56eb-11e9-9c53-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:30 GMT" + "Thu, 04 Apr 2019 15:10:58 GMT" ], "Authorization": [ - "SharedKey sdktest2:n2gFWdi/b6F7vO/JHpr9ICD4KRRfCm+4PIeGIcMg6zA=" + "SharedKey sdktest2:WxY94iQlDTSyBtJ9bMdKmhil1R1/gjYrkLT2QSs68tM=" ] } }, @@ -12519,50 +5115,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:10:58 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:29 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "c8624a04-9833-461c-9a5b-648d548e44cd" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "8dedabb0-535f-4464-b3c4-f10cdd1b02be" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12574,16 +5170,16 @@ "keep-alive" ], "client-request-id": [ - "4f3d608a-c372-11e9-a1ee-44032c851686" + "dc0d754a-56eb-11e9-95f0-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:33 GMT" + "Thu, 04 Apr 2019 15:11:02 GMT" ], "Authorization": [ - "SharedKey sdktest2:O/8+sj6pomr4ISqqO9N7IS7+uZO7md/OJJ8XRzesnjE=" + "SharedKey sdktest2:FgezyNlxDC19hBcQLSfMq2piIlmPeb2LcJxXwFR5v2g=" ] } }, @@ -12593,50 +5189,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:02 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:33 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "be444d3a-4774-45f5-b5bb-6ae858d64424" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "443aaa64-39c2-4224-8aff-5415aeed7256" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12648,16 +5244,16 @@ "keep-alive" ], "client-request-id": [ - "51114b68-c372-11e9-b836-44032c851686" + "de1fbafa-56eb-11e9-9e03-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:36 GMT" + "Thu, 04 Apr 2019 15:11:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:X80axkerQm+C3mFT6UQKtWRS2rkWSFkAc0acT2lfBOA=" + "SharedKey sdktest2:jU2o/JBWymRfaqz4IVVlf88CDAOpMrGvBTPxmdRKJPA=" ] } }, @@ -12667,50 +5263,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:05 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:35 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "93702ffe-8e8d-4b88-b630-c34ddf932cf0" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "a6582a7c-7212-4a00-8ede-9ddb9e447b27" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12722,16 +5318,16 @@ "keep-alive" ], "client-request-id": [ - "52e48be4-c372-11e9-aeed-44032c851686" + "e035e19e-56eb-11e9-b667-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:39 GMT" + "Thu, 04 Apr 2019 15:11:09 GMT" ], "Authorization": [ - "SharedKey sdktest2:bKFtiYVRU3Z1dOYdXfu7n49G5TZ+1BRrF74wKo8aINs=" + "SharedKey sdktest2:cGkZq7FuXPTLrVrvziVLusYBBFKc9XFl1MuwJiPlIKE=" ] } }, @@ -12741,50 +5337,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:09 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:39 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "1425543d-fb03-4307-bc1f-81f19ed45112" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "23792e22-2300-42a4-a813-79ac11151ce1" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12796,16 +5392,16 @@ "keep-alive" ], "client-request-id": [ - "54b7d9a6-c372-11e9-91b0-44032c851686" + "e24d27dc-56eb-11e9-ae92-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:42 GMT" + "Thu, 04 Apr 2019 15:11:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:ZcdNTD1N2TWBwwGe+YMNxIXIXrcFyAPtsvogQuax7FA=" + "SharedKey sdktest2:z6aShcFokOYvKZJMyn5hgwoz5j3425bRZovr4yf69FA=" ] } }, @@ -12815,50 +5411,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:12 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:42 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "d1ca0d37-115e-48be-b809-ab6988e837bd" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "7c44f75c-d77e-4c57-bf95-75f80ef78bf1" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12870,16 +5466,16 @@ "keep-alive" ], "client-request-id": [ - "568dc242-c372-11e9-b2b7-44032c851686" + "e461456c-56eb-11e9-8fd6-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:45 GMT" + "Thu, 04 Apr 2019 15:11:16 GMT" ], "Authorization": [ - "SharedKey sdktest2:bbeAKBlsA+34ho857UnsgL8KsEB2rqLMo2ZobsFjuwU=" + "SharedKey sdktest2:r09wLPMlPdyLZPw+DPOXTK2y2ltNykdgjMpX4LrjDtM=" ] } }, @@ -12889,50 +5485,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:16 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:45 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "75e3361f-cedf-4cd0-a5c5-f53d9a909abe" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "19be186a-ea67-4052-868f-052b8f95f316" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -12944,16 +5540,16 @@ "keep-alive" ], "client-request-id": [ - "5860a7f6-c372-11e9-99bb-44032c851686" + "e670d510-56eb-11e9-aa44-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:48 GMT" + "Thu, 04 Apr 2019 15:11:19 GMT" ], "Authorization": [ - "SharedKey sdktest2:sccm3YU5dTg28SNdrE1oCaqefGO5k6tfpQB16Rn9wjI=" + "SharedKey sdktest2:K4K9YZsrjIvZxnVPUbjobfzpTfolZ+gg4H27g7Cl6Bk=" ] } }, @@ -12963,50 +5559,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:19 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:48 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "7ee81982-65ea-4a7c-9f48-fda518631571" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "50a19e83-cf42-4fac-8d0b-e958d8906070" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13018,16 +5614,16 @@ "keep-alive" ], "client-request-id": [ - "5a37574a-c372-11e9-92a7-44032c851686" + "e885cb5a-56eb-11e9-b64a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:51 GMT" + "Thu, 04 Apr 2019 15:11:22 GMT" ], "Authorization": [ - "SharedKey sdktest2:X2GO1nWxAzV8ql1PeBCWJ2fe6rKsznlmqwCyKG64S6E=" + "SharedKey sdktest2:SlCxIP7VYUEv2nrP/JltV8snOpQKTUtj3yyo2sfUrYQ=" ] } }, @@ -13037,50 +5633,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:23 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:51 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "53a42575-d0c2-46e8-b276-4e93fa0fc219" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "f544911f-01e1-4ec2-b85d-bc01bbd1f10a" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13092,16 +5688,16 @@ "keep-alive" ], "client-request-id": [ - "5c0fa686-c372-11e9-b91c-44032c851686" + "eaa98222-56eb-11e9-89f7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:54 GMT" + "Thu, 04 Apr 2019 15:11:26 GMT" ], "Authorization": [ - "SharedKey sdktest2:/Mw2aVV9YAA/uA5EhWuXVNjPglx16rTYtJyA9vq22U8=" + "SharedKey sdktest2:PaM/rxOEvkXmAVoiGGcMi1mg32kWEsc8qRASd2SMJis=" ] } }, @@ -13111,50 +5707,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:26 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:54 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "82b2078d-6a5e-4ad2-b801-0a1489a826c3" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "7eee4795-4c8c-4e27-b75f-6f96650035e1" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13166,16 +5762,16 @@ "keep-alive" ], "client-request-id": [ - "5de3b250-c372-11e9-ad92-44032c851686" + "ecbfd5cc-56eb-11e9-93bd-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:45:58 GMT" + "Thu, 04 Apr 2019 15:11:30 GMT" ], "Authorization": [ - "SharedKey sdktest2:8WQ9mYqxkoX138Galbp0Yx5sEQyW1a7Hl6Db3qtbYIM=" + "SharedKey sdktest2:HZh6OSQ5MDbUG2z7t7ekWxF1sVZVM6lNne1pbnWMpTs=" ] } }, @@ -13185,50 +5781,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:30 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:45:57 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "143807ae-2c22-493b-9ce2-31c74719b5ef" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "7b7069b7-df0e-4484-9ed8-00000aeb582c" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13240,16 +5836,16 @@ "keep-alive" ], "client-request-id": [ - "5fba9c5c-c372-11e9-b9f2-44032c851686" + "eedb0c58-56eb-11e9-8aaf-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:01 GMT" + "Thu, 04 Apr 2019 15:11:33 GMT" ], "Authorization": [ - "SharedKey sdktest2:7X4QuUKm51a+kUygJBcMXDUx2QATnlrUm1l5pxP/jRA=" + "SharedKey sdktest2:IdQwSRwGl4RuazIrvnErQIDj4dFVC2kWflkk6h5ruvk=" ] } }, @@ -13259,50 +5855,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:34 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:01 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b302e78d-6439-49d5-bc85-dbf167d70c69" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "fc4071d1-c77e-40de-9884-94046deb3ba4" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13314,16 +5910,16 @@ "keep-alive" ], "client-request-id": [ - "61923d1c-c372-11e9-b01b-44032c851686" + "f0f9b96c-56eb-11e9-9996-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:04 GMT" + "Thu, 04 Apr 2019 15:11:37 GMT" ], "Authorization": [ - "SharedKey sdktest2:gTbr+5VkwhTNNIXSF5wu+h5ifou19fOwh2HQMoefFFM=" + "SharedKey sdktest2:P3iB50dTkknvPJ4n3ZtiaCA60zdWFwOPDzJz+J9GA9s=" ] } }, @@ -13333,50 +5929,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:37 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:03 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "bb55b372-7e59-4b7c-8948-a70782433662" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "b661d065-31ae-443f-8b27-934ae62ba28c" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13388,16 +5984,16 @@ "keep-alive" ], "client-request-id": [ - "6367a9de-c372-11e9-9ec3-44032c851686" + "f31256e2-56eb-11e9-b199-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:07 GMT" + "Thu, 04 Apr 2019 15:11:40 GMT" ], "Authorization": [ - "SharedKey sdktest2:ALOSRO+vz38KYlRxlsPy1mayK+lm6UuIyF5GK/wtYJM=" + "SharedKey sdktest2:+KqCpJTHAskbloq/2WY8YhKyebfhJuyb/o0fQ0akMwA=" ] } }, @@ -13407,50 +6003,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:41 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:06 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "032f5991-361f-4e50-a562-cf5df41ec619" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "bb23965f-a822-4941-a174-2ddc9ae88846" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13462,16 +6058,16 @@ "keep-alive" ], "client-request-id": [ - "653cf14a-c372-11e9-9b94-44032c851686" + "f5446062-56eb-11e9-b8a6-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:10 GMT" + "Thu, 04 Apr 2019 15:11:44 GMT" ], "Authorization": [ - "SharedKey sdktest2:/f+geWjGZyK1Rc0sTRs7nggTKkX6DzLqxe5CyI5+p4w=" + "SharedKey sdktest2:fBLnGRR6r6T4PxRn6a18ulSwOeeOmygbLB4oVCGHeho=" ] } }, @@ -13481,50 +6077,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:44 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:10 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e5b37bc7-8c7e-445f-b036-1b62064b65f1" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "1c509584-5f0a-4f6b-8e9a-d754b28d1ae8" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13536,16 +6132,16 @@ "keep-alive" ], "client-request-id": [ - "670f98e2-c372-11e9-bd73-44032c851686" + "f7689ef6-56eb-11e9-89e8-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:13 GMT" + "Thu, 04 Apr 2019 15:11:47 GMT" ], "Authorization": [ - "SharedKey sdktest2:wtWUHV/+pQ9x5nl1JO3thwwBk+XGq/LzU5hC4Zd6zDw=" + "SharedKey sdktest2:EBdGjmV1TWfYgN/BpKToZFtaUazkmrdBXq3LE1CsE74=" ] } }, @@ -13555,50 +6151,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:48 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:13 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "99c76b74-d005-46e9-afd7-3f88f908c68b" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "ba863723-736f-463a-beb7-68118b3ab8be" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13610,16 +6206,16 @@ "keep-alive" ], "client-request-id": [ - "68e313c0-c372-11e9-a881-44032c851686" + "f97bac9c-56eb-11e9-9a61-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:16 GMT" + "Thu, 04 Apr 2019 15:11:51 GMT" ], "Authorization": [ - "SharedKey sdktest2:JcdqGi3P2XAXRS0JDayWC7yp9RWCh8qUzBR4vqnNGCA=" + "SharedKey sdktest2:/L2xyLxewnsZykWDU/uv0erEA9sNNvDhpXABsdIiGsQ=" ] } }, @@ -13629,50 +6225,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:51 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:16 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "5cf54389-9bf7-4581-ad45-34b21384bea3" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "37649647-693e-437a-970c-4dacfd5b742a" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13684,16 +6280,16 @@ "keep-alive" ], "client-request-id": [ - "6ab6f8b4-c372-11e9-a0c8-44032c851686" + "fb8feac0-56eb-11e9-baca-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:19 GMT" + "Thu, 04 Apr 2019 15:11:54 GMT" ], "Authorization": [ - "SharedKey sdktest2:nkRkRvY4DTVViGGqxYg6Y4GbIEe+DkZBgsbJh/E4O5o=" + "SharedKey sdktest2:ZHTmLWjJaXI0sKN5YRltvqG36RYBHP9YiRn/2Bu675o=" ] } }, @@ -13703,50 +6299,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:55 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:19 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "0a94af53-d0ec-4c04-b3ce-97b665235eea" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "b56f9ca0-3411-4e4e-9378-8a1ac0b0f289" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13758,16 +6354,16 @@ "keep-alive" ], "client-request-id": [ - "6c904654-c372-11e9-9d4d-44032c851686" + "fda54c0c-56eb-11e9-8497-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:22 GMT" + "Thu, 04 Apr 2019 15:11:58 GMT" ], "Authorization": [ - "SharedKey sdktest2:J79K//NC0/jRnQiRaLu9N0T8LgI1mEeXcMM9BC6ckjQ=" + "SharedKey sdktest2:xecFLc1ziUznVIs6L6X3BFX3xjyIHpm/pGoBOMw1y/M=" ] } }, @@ -13777,50 +6373,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:11:58 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:21 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "af2f280d-d411-493c-afa3-b6d9da16aa1b" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "4e5c24d0-d035-438b-8b80-6b767d3b8bd5" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13832,16 +6428,16 @@ "keep-alive" ], "client-request-id": [ - "6e665b68-c372-11e9-9e79-44032c851686" + "ffb8913a-56eb-11e9-b95b-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:25 GMT" + "Thu, 04 Apr 2019 15:12:01 GMT" ], "Authorization": [ - "SharedKey sdktest2:8uzNcOB5A5/IGgKQ8v/z1cGU72tLlFTKBq4/fdmNz0w=" + "SharedKey sdktest2:cgzH1Fma1wriXpqTDDsRhdayaO/Sv65sHnsMLCGOAoQ=" ] } }, @@ -13851,50 +6447,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:02 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:25 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "dfd8a08e-5ee0-4240-9ff7-d0bf10e5a6dc" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "26b1ee02-794e-4ae2-8331-3e549f0eece2" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13906,16 +6502,16 @@ "keep-alive" ], "client-request-id": [ - "703b9292-c372-11e9-80b8-44032c851686" + "01cd23b4-56ec-11e9-9f9f-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:28 GMT" + "Thu, 04 Apr 2019 15:12:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:5i4EP2WPEtovbPGofxzhdjSwDJhYxuj7YhiWFxIKUfU=" + "SharedKey sdktest2:4Qg6utBPRz7hnfDagldEYmfikfXcYhzi2CmwQ1rJu20=" ] } }, @@ -13925,50 +6521,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:05 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:27 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "cc6b86c8-82b8-418c-a143-8ba566e7143e" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "e9b0e00b-fada-4431-a216-b2f51712db26" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -13980,16 +6576,16 @@ "keep-alive" ], "client-request-id": [ - "720f5d1a-c372-11e9-8120-44032c851686" + "03e3af78-56ec-11e9-a78c-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:31 GMT" + "Thu, 04 Apr 2019 15:12:08 GMT" ], "Authorization": [ - "SharedKey sdktest2:LqZBE3t/qp4E7FGtl2eNlp5Pg6MNHzRsb67VaXjzlCY=" + "SharedKey sdktest2:6bCgVtfltHLOQiVDDNp9Ibx9zwzXJQNHcv4caCJiNJA=" ] } }, @@ -13999,50 +6595,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:08 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:31 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "db9735d7-0546-4e9e-a51a-04a5cca3631e" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "777ad216-9d24-4c45-a7c3-4d658fc42c76" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14054,16 +6650,16 @@ "keep-alive" ], "client-request-id": [ - "73e48082-c372-11e9-a9f5-44032c851686" + "05fb6e48-56ec-11e9-8db1-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:34 GMT" + "Thu, 04 Apr 2019 15:12:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:pIUDSeQn7ujWmscYWU4ubB+KmPTOD5k207+ftO+4g4U=" + "SharedKey sdktest2:Eyv4ZUbMnFYsD5BN01/cwIk8RCW5d1sfiXi0gvFydcA=" ] } }, @@ -14073,50 +6669,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:12 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:34 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "daaed897-1f2b-48db-aebd-058e6cf0b2af" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "cdf4b633-163a-4aad-a2dd-b906715d0f76" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14128,16 +6724,16 @@ "keep-alive" ], "client-request-id": [ - "75b809b4-c372-11e9-9fb2-44032c851686" + "08153d46-56ec-11e9-8e36-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:38 GMT" + "Thu, 04 Apr 2019 15:12:15 GMT" ], "Authorization": [ - "SharedKey sdktest2:ThwCIFWg59ctGHQL1uTzjQu2AKVNe6YjipdPgcA8Znw=" + "SharedKey sdktest2:uv6CDiNQvwBJqYRBnFkqTbr3q8xrl7xyDCGFkjYpe7M=" ] } }, @@ -14147,50 +6743,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:16 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:37 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "87a259dd-2f97-4cb9-875b-dc52bccf2e3a" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "78978220-7fdf-4ee3-803b-fb7a8021ec1a" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14202,16 +6798,16 @@ "keep-alive" ], "client-request-id": [ - "778bd4da-c372-11e9-96bd-44032c851686" + "0a2e31de-56ec-11e9-b81a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:41 GMT" + "Thu, 04 Apr 2019 15:12:19 GMT" ], "Authorization": [ - "SharedKey sdktest2:9jO83v6JYKMU7pIffeJK6xikqkmMoxIn62m7fCFtfWA=" + "SharedKey sdktest2:58Ou/Hn81CUJe1rcmSJwuPOPkYQe4SfCr39t5vWdJY8=" ] } }, @@ -14221,50 +6817,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:19 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:40 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "1d5059e6-c785-4d14-b57e-198a2a0a7b42" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "b16a375e-b294-4d2c-918c-4c6a8a0d4460" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14276,16 +6872,16 @@ "keep-alive" ], "client-request-id": [ - "79601f54-c372-11e9-bde6-44032c851686" + "0c453002-56ec-11e9-b53d-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:44 GMT" + "Thu, 04 Apr 2019 15:12:22 GMT" ], "Authorization": [ - "SharedKey sdktest2:YBl5KHi3iYOH0EKy8Qouk6pwZc5BGrlVHy3LOiVxPC4=" + "SharedKey sdktest2:QoVDCx1JRNWAGxmIEfCPR0hr2h67KVJZztbOZr4hG2U=" ] } }, @@ -14295,50 +6891,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:23 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:43 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "90d3ad71-1823-4618-9c3e-0d5ff5437ef2" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "749c22b0-adf3-454f-bb91-706d02c7cff5" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14350,16 +6946,16 @@ "keep-alive" ], "client-request-id": [ - "7b337940-c372-11e9-8689-44032c851686" + "0e54c506-56ec-11e9-99df-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:47 GMT" + "Thu, 04 Apr 2019 15:12:26 GMT" ], "Authorization": [ - "SharedKey sdktest2:RY+p42LY4oCMYdO7k9XBA6XxQjU3MCX5jMarVHne0+Y=" + "SharedKey sdktest2:lCjYfWAaUS5PPJDog5Y8GNUMKQpX8qYpnormIho0TSQ=" ] } }, @@ -14369,50 +6965,50 @@ "message": "OK" }, "headers": { + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:26 GMT" + ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:46 GMT" + "ETag": [ + "0x8D6B90FB5CA950F" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "44a2ae57-53ae-4f47-abcb-ef8c8a2b2e83" + "Thu, 04 Apr 2019 15:10:44 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "b64e9b4b-81b9-49e4-a454-e88b9e3595c6" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-04T15:12:25.7957516Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14424,69 +7020,63 @@ "keep-alive" ], "client-request-id": [ - "7d08ad58-c372-11e9-bd0b-44032c851686" + "0ea0f47e-56ec-11e9-b4da-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "0" + ], "ocp-date": [ - "Tue, 20 Aug 2019 17:46:50 GMT" + "Thu, 04 Apr 2019 15:12:26 GMT" ], "Authorization": [ - "SharedKey sdktest2:0zILMGBISNM413Rklm0U33wDfGZDG4CxU3GDGzWa6Cw=" + "SharedKey sdktest2:PHJSny7m0xFeiHXa10BufenCX0kR/nviZwrD07usQmA=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:50 GMT" + "Thu, 04 Apr 2019 15:12:27 GMT" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "ETag": [ - "0x8D725962C1A843B" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "95cea4be-4652-402a-b39e-9ee5b0296995" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "7a813a74-ade6-4e12-8473-865027a641e7" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -14497,17 +7087,17 @@ "Connection": [ "keep-alive" ], - "client-request-id": [ - "7edd9662-c372-11e9-a7af-44032c851686" + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" ], - "accept-language": [ - "en-US" + "Content-Type": [ + "application/json; charset=utf-8" ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:46:53 GMT" + "x-ms-client-request-id": [ + "10184d1a-56ec-11e9-8782-44032c851686" ], - "Authorization": [ - "SharedKey sdktest2:k12KFjb7CrhpUlqBnzr8lRGqI2/CcDTj+xrMYqIAuYo=" + "accept-language": [ + "en-US" ] } }, @@ -14517,50 +7107,53 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:53 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Thu, 04 Apr 2019 15:12:28 GMT" ], - "ETag": [ - "0x8D725962C1A843B" + "Pragma": [ + "no-cache" ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:45:21 GMT" + "Content-Type": [ + "application/json; charset=utf-8" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Cache-Control": [ + "no-cache" ], - "request-id": [ - "67a717ba-17ad-493e-9aab-257290ccda4f" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Transfer-Encoding": [ "chunked" ], + "Vary": [ + "Accept-Encoding" + ], "X-Content-Type-Options": [ "nosniff" ], - "DataServiceVersion": [ - "3.0" + "Expires": [ + "-1" + ], + "content-length": [ + "686" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource1\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1\",\"eTag\":\"0x8D725962C1A843B\",\"lastModified\":\"2019-08-20T17:45:21.1471931Z\",\"creationTime\":\"2019-08-20T17:45:21.1471931Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-08-20T17:45:21.1471931Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-08-20T17:46:52.2025916Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" } } }, { "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource1?api-version=2019-08-01.10.0", + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -14571,64 +7164,79 @@ "Connection": [ "keep-alive" ], - "client-request-id": [ - "7ee6ae28-c372-11e9-85f8-44032c851686" + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "1072e5e2-56ec-11e9-8071-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ "0" - ], - "ocp-date": [ - "Tue, 20 Aug 2019 17:46:53 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:sw0Ru0r1hk+uWbtvVWSy/y2EeBc+clW/u8ytk8rUaDY=" ] } }, "response": { "status": { - "code": 202, - "message": "Accepted" + "code": 200, + "message": "OK" }, "headers": { + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], "Date": [ - "Tue, 20 Aug 2019 17:46:53 GMT" + "Thu, 04 Apr 2019 15:12:29 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Pragma": [ + "no-cache" ], - "request-id": [ - "747d94a8-712d-4af2-814e-50b396ee5ef0" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Content-Type": [ + "application/json" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Transfer-Encoding": [ "chunked" ], + "Vary": [ + "Accept-Encoding" + ], "X-Content-Type-Options": [ "nosniff" ], - "DataServiceVersion": [ - "3.0" + "Expires": [ + "-1" + ], + "content-length": [ + "288" ] }, "body": { - "string": "" + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2019-08-01.10.0&timeout=30", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-08-01.7.0&timeout=30", "body": "{\"id\": \"job123\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"pool123\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\"}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14640,13 +7248,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "7f1a2d76-c372-11e9-aec1-44032c851686" + "10c32c4c-56ec-11e9-b835-44032c851686" ], "accept-language": [ "en-US" @@ -14665,38 +7273,38 @@ "message": "Created" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:53 GMT" + "Thu, 04 Apr 2019 15:12:31 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "X-Content-Type-Options": [ - "nosniff" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "ETag": [ - "0x8D7259663BD0031" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:54 GMT" + "0x8D6B90FF5700193" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:12:31 GMT" ], "Transfer-Encoding": [ "chunked" ], "request-id": [ - "14cb0d4c-8d64-4cd1-b558-c4f955a61f55" + "136d1de6-f773-4adb-8af5-521db9bc8d2f" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -14707,11 +7315,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123/addtaskcollection?api-version=2019-08-01.10.0", - "body": "{\"value\": [{\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat {fileName}'\", \"resourceFiles\": [{\"httpUrl\": \"https://testacct.blob.core.windows.net/\", \"filePath\": \"location\"}]}]}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123/addtaskcollection?api-version=2018-08-01.7.0", + "body": "{\"value\": [{\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat {fileName}'\", \"resourceFiles\": [{\"blobSource\": \"https://testacct.blob.core.windows.net/\", \"filePath\": \"location\"}]}]}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14723,19 +7331,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "7f8b457e-c372-11e9-8010-44032c851686" + "11420bd8-56ec-11e9-a6e7-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "171" + "174" ] } }, @@ -14745,44 +7353,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:53 GMT" + "Thu, 04 Apr 2019 15:12:31 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "ba8403b7-edc4-4ade-a88f-ee1ad083527d" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "ac2322cf-a3cf-4d9b-97d9-f7b3a0b8d249" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D7259663DE444D\",\"lastModified\":\"2019-08-20T17:46:54.7047501Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6B90FF5B68AEA\",\"lastModified\":\"2019-04-04T15:12:31.7532906Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "PATCH", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123?api-version=2018-08-01.7.0", "body": "{\"onAllTasksComplete\": \"terminatejob\"}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -14794,13 +7402,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "7fadc10c-c372-11e9-abc9-44032c851686" + "118edca2-56ec-11e9-9e5e-44032c851686" ], "accept-language": [ "en-US" @@ -14816,35 +7424,35 @@ "message": "OK" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:54 GMT" + "Thu, 04 Apr 2019 15:12:32 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" ], "ETag": [ - "0x8D7259663EC87A8" + "0x8D6B90FF63A267E" ], - "request-id": [ - "fd61eb7a-8863-441f-aa5d-a5578f7f261e" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:54 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:12:32 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "10afd807-dc6f-4235-9730-4c3eaaa02703" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -14855,11 +7463,11 @@ { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2019-08-01", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-batch/7.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -14871,10 +7479,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + ], + "Content-Type": [ + "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "7fe35b92-c372-11e9-8a63-44032c851686" + "132a683a-56ec-11e9-9e12-44032c851686" ], "accept-language": [ "en-US" @@ -14887,40 +7498,42 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json; charset=utf-8" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:12:34 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ - "nosniff" + "Transfer-Encoding": [ + "chunked" ], - "content-length": [ - "2729" + "Vary": [ + "Accept-Encoding" ], - "x-ms-original-request-ids": [ - "f6451908-52f2-4fe9-937d-76d9012e29af", - "779308ae-5bb3-442c-bccd-cb92c54137f0" + "X-Content-Type-Options": [ + "nosniff" ], - "Cache-Control": [ - "no-cache" + "Expires": [ + "-1" ], - "Pragma": [ - "no-cache" + "content-length": [ + "686" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/byossc\",\"name\":\"byossc\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"southcentralus\",\"properties\":{\"accountEndpoint\":\"byossc.southcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"poolAllocationMode\":\"UserSubscription\",\"keyVaultReference\":{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.KeyVault/vaults/byossc\",\"url\":\"https://byossc.vault.azure.net/\"}}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"dedicatedCoreQuotaPerVMFamily\":[{\"name\":\"standardA0_A7Family\",\"coreQuota\":20},{\"name\":\"standardDv2Family\",\"coreQuota\":20},{\"name\":\"standardA8_A11Family\",\"coreQuota\":0},{\"name\":\"standardDFamily\",\"coreQuota\":0},{\"name\":\"standardGFamily\",\"coreQuota\":0},{\"name\":\"basicAFamily\",\"coreQuota\":0},{\"name\":\"standardFFamily\",\"coreQuota\":0},{\"name\":\"standardNVFamily\",\"coreQuota\":0},{\"name\":\"standardNVPromoFamily\",\"coreQuota\":0},{\"name\":\"standardNCFamily\",\"coreQuota\":0},{\"name\":\"standardNCPromoFamily\",\"coreQuota\":0},{\"name\":\"standardHFamily\",\"coreQuota\":0},{\"name\":\"standardHPromoFamily\",\"coreQuota\":0},{\"name\":\"standardAv2Family\",\"coreQuota\":0},{\"name\":\"standardMSFamily\",\"coreQuota\":0},{\"name\":\"standardDv3Family\",\"coreQuota\":0},{\"name\":\"standardEv3Family\",\"coreQuota\":0},{\"name\":\"standardDSFamily\",\"coreQuota\":0},{\"name\":\"standardDSv2Family\",\"coreQuota\":0},{\"name\":\"standardDSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSFamily\",\"coreQuota\":0},{\"name\":\"standardESv3Family\",\"coreQuota\":0},{\"name\":\"standardGSFamily\",\"coreQuota\":0},{\"name\":\"standardLSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv2Family\",\"coreQuota\":0},{\"name\":\"standardNDSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSv2Family\",\"coreQuota\":0},{\"name\":\"standardHBSFamily\",\"coreQuota\":0},{\"name\":\"standardHCSFamily\",\"coreQuota\":0}],\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-07-16T21:55:40.4909987Z\"},\"poolAllocationMode\":\"BatchService\"},\"tags\":{\"rawr\":\"test\"}}]}" + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" } } }, @@ -14931,7 +7544,7 @@ "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -14943,13 +7556,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "8028bfa2-c372-11e9-9035-44032c851686" + "139255de-56ec-11e9-a4e8-44032c851686" ], "accept-language": [ "en-US" @@ -14965,38 +7578,38 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:12:35 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Content-Type": [ + "application/json" ], - "X-Content-Type-Options": [ - "nosniff" + "Cache-Control": [ + "no-cache" ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Transfer-Encoding": [ "chunked" ], - "Cache-Control": [ - "no-cache" + "Vary": [ + "Accept-Encoding" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "X-Content-Type-Options": [ + "nosniff" ], - "Pragma": [ - "no-cache" + "Expires": [ + "-1" ], "content-length": [ "288" @@ -15023,13 +7636,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80608112-c372-11e9-a4bf-44032c851686" + "13d3f870-56ec-11e9-9cd3-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" + "Thu, 04 Apr 2019 15:12:35 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kSj4yabG3dDvxSHTtdVMC6Irdl2tYoImswKXUww/ctE=" + "SharedKey sdkteststore2:MDx6QEB1x78PjSocOpUiOddoVsCQjv5N/t+cy7FikiM=" ], "Content-Length": [ "0" @@ -15042,23 +7655,23 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" - ], - "ETag": [ - "\"0x8D7259664B9CF06\"" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" + "Thu, 04 Apr 2019 15:12:35 GMT" + ], + "ETag": [ + "\"0x8D6B90FF8609139\"" + ], + "Last-Modified": [ + "Thu, 04 Apr 2019 15:12:36 GMT" ], "Content-Length": [ "0" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -15082,13 +7695,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "808bec6e-c372-11e9-9ffb-44032c851686" + "1435df24-56ec-11e9-9930-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:36 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:J5/0NQDRDfcE8qLM2AzV3zQM1tEWXv1RsGMWxI+dcRo=" + "SharedKey sdkteststore2:pOqOEXbgGUSkBaV0uFfDpJamn1fNSDcd7W+IGXh1tII=" ] } }, @@ -15098,27 +7711,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:35 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de5d7-401e-00ac-117f-574597000000\nTime:2019-08-20T17:46:56.2265985Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118bf66-701e-0068-59f8-ea3a51000000\nTime:2019-04-04T15:12:36.5192166Z" } } }, @@ -15150,13 +7763,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8095893a-c372-11e9-927e-44032c851686" + "146280d2-56ec-11e9-9717-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:36 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:PUCU2uHpEkVCGmlNyUla4nKcIJPo9Om86OQDwhZb+80=" + "SharedKey sdkteststore2:eLF3bzzIqfNYH5V+ApxdFKP58Fhi73HVZq76aEcdVxQ=" ] } }, @@ -15166,29 +7779,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259664CFA65D\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:36 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FF8B56847\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:36 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "GhvIqLxdhgZSxhi6CdQjLQ==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -15212,13 +7825,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80a2fb68-c372-11e9-bb67-44032c851686" + "14885c64-56ec-11e9-b928-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:36 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:CyBt37svbXQVkDm8TcIxt1XrynCFsfjwUyns4Py+IkA=" + "SharedKey sdkteststore2:aKzbsqSXP14zDe/z3oGCY/MN4YVaQYGWSbP1MYFSEv8=" ], "Content-Length": [ "0" @@ -15231,27 +7844,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:36 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de5ef-401e-00ac-277f-574597000000\nTime:2019-08-20T17:46:56.3717012Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118bf99-701e-0068-05f8-ea3a51000000\nTime:2019-04-04T15:12:37.0265752Z" } } }, @@ -15271,13 +7884,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80aae9a2-c372-11e9-8322-44032c851686" + "14ad58dc-56ec-11e9-be30-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:37 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Zf0ra2bs/ZMFW3S78TLZ/z/EX6VhGnfPZfKDFZUbLXc=" + "SharedKey sdkteststore2:SWiahxfspxj/GtzCjU2aTGN1hZXPn3atzlGyp+6Ioo8=" ] } }, @@ -15287,27 +7900,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:36 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:55 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de602-401e-00ac-377f-574597000000\nTime:2019-08-20T17:46:56.4617644Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118bfd5-701e-0068-38f8-ea3a51000000\nTime:2019-04-04T15:12:37.3037712Z" } } }, @@ -15339,13 +7952,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80b9449c-c372-11e9-b98b-44032c851686" + "14d822b0-56ec-11e9-9ba3-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:37 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:SqcoXkmohS99KXgZk8AwfYua3LtnjI/OuHVPYfawxds=" + "SharedKey sdkteststore2:yDOyaiC670tyCK8qEPUtRXLLH3jmE/sQhytOVv9p4CI=" ] } }, @@ -15355,29 +7968,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259664F3133A\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:36 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FF92BE68E\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:37 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "xbCZcjm1pOMcwR8Td2yo9w==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -15401,13 +8014,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80c1da5e-c372-11e9-809d-44032c851686" + "14fee61e-56ec-11e9-adcb-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:37 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:QrJ+WqbEoIEXu7zSgKaKmPGHnAJ7KRCdy7hIq3TD9ks=" + "SharedKey sdkteststore2:FF7OAYaVGG91iopXI/Q4dNyvS+LeCVh9EF+nwNmI800=" ], "Content-Length": [ "0" @@ -15420,27 +8033,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:37 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de61a-401e-00ac-4e7f-574597000000\nTime:2019-08-20T17:46:56.5748448Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c005-701e-0068-60f8-ea3a51000000\nTime:2019-04-04T15:12:37.8111294Z" } } }, @@ -15460,13 +8073,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80c9d28c-c372-11e9-b2d0-44032c851686" + "1525acfe-56ec-11e9-aedb-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:37 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:f5u7CiEeMWCzw0bHzb9rlYbRNLL98Fy7DWb21qgaTcg=" + "SharedKey sdkteststore2:bVtjVRMv2pgr/AJUOWoYW7cYGFNBvtweW7L6YpUCgno=" ] } }, @@ -15476,27 +8089,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:37 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de624-401e-00ac-587f-574597000000\nTime:2019-08-20T17:46:56.6308841Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c026-701e-0068-7ef8-ea3a51000000\nTime:2019-04-04T15:12:38.0743158Z" } } }, @@ -15528,13 +8141,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80d32158-c372-11e9-855e-44032c851686" + "154e1b9e-56ec-11e9-9fd5-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:38 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:hR0xApSOB72e5om0cCsftCq6t6TQCBPBlml5hEdyQYI=" + "SharedKey sdkteststore2:zQI8s4rWnLnFJpBEU4CE49NjiBF0vd1SwsrmdI2Cmm8=" ] } }, @@ -15544,29 +8157,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596650DA4E3\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:37 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FF9A94405\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:38 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "HBCHz/rBYi8V9ILMKx0o+g==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -15590,13 +8203,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80dc7146-c372-11e9-8009-44032c851686" + "157d5762-56ec-11e9-8e89-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:38 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:sUojwrH72/0EicyVIqMB9p0yBqvTbPzFkvTFhIPIXOI=" + "SharedKey sdkteststore2:IzZ9p3i1o2sBtgt2+BO9VbH5oNRB2TC/jRcgiQnYjfw=" ], "Content-Length": [ "0" @@ -15609,27 +8222,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:38 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de649-401e-00ac-7a7f-574597000000\nTime:2019-08-20T17:46:56.7499687Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c076-701e-0068-3bf8-ea3a51000000\nTime:2019-04-04T15:12:38.6597296Z" } } }, @@ -15649,13 +8262,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80e4d51e-c372-11e9-b260-44032c851686" + "15a6645e-56ec-11e9-9629-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:38 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:DHEDR4AV6oYRQVKtAFTDuWRsnVHWFPQH4jIKjQ/IqOY=" + "SharedKey sdkteststore2:kLH6MqyQTEtwyfbPo4xtuliv2LsqEUDS+c/tQSfOVS0=" ] } }, @@ -15665,27 +8278,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:38 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de654-401e-00ac-047f-574597000000\nTime:2019-08-20T17:46:56.8080098Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c09c-701e-0068-5df8-ea3a51000000\nTime:2019-04-04T15:12:38.9339230Z" } } }, @@ -15717,13 +8330,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80ee084c-c372-11e9-9278-44032c851686" + "15d16a0a-56ec-11e9-83f0-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:38 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:WOx8e66c/we8WePC6GI/j+a4Yefjb98uLHaLmmRE8ms=" + "SharedKey sdkteststore2:9mLWHmEOWrpksph6Djvd/kyKUvgE2l7hVnsuVvbyyhk=" ] } }, @@ -15733,29 +8346,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596652884BA\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:38 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFA2A99DE\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:39 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "PFiBkLMhFseOyDvKgJXaRA==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -15779,13 +8392,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "80fbae86-c372-11e9-a753-44032c851686" + "15fd9726-56ec-11e9-87e6-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:39 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:n3w3i86k0P2B1nLdVvuIWDom3JePIeMsg/fEleo3Xr4=" + "SharedKey sdkteststore2:O3qfLZ9YwG2CYP9kgSbJySOEDGeIxGGNi8dOpKVA36E=" ], "Content-Length": [ "0" @@ -15798,27 +8411,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:38 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de680-401e-00ac-2b7f-574597000000\nTime:2019-08-20T17:46:56.9531128Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c0d7-701e-0068-0cf8-ea3a51000000\nTime:2019-04-04T15:12:39.4763072Z" } } }, @@ -15838,13 +8451,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8103a108-c372-11e9-bf44-44032c851686" + "1622f95a-56ec-11e9-9591-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:39 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:EoWcxGtkN+HSIuUK+4q6+XjPJVkVfGePJQ7iqmCyRX4=" + "SharedKey sdkteststore2:SJh+KOfwdnz1Taw7Qv56PG4mSHpKk8SDmaoMWs0js+c=" ] } }, @@ -15854,27 +8467,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:39 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de68f-401e-00ac-397f-574597000000\nTime:2019-08-20T17:46:57.0111534Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c102-701e-0068-2ef8-ea3a51000000\nTime:2019-04-04T15:12:39.7404935Z" } } }, @@ -15906,13 +8519,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "810d2dac-c372-11e9-b614-44032c851686" + "164bbd40-56ec-11e9-a930-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:39 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:P0CLak5Ohx4OfKBc00v8xHdAezC3K44OSG7v4FYsrA4=" + "SharedKey sdkteststore2:Zn1efBL16cAkAdl001K3AA0HWEr/WPG7qC2XRszn3f4=" ] } }, @@ -15922,29 +8535,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596654783FB\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:39 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFA9F430F\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:39 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "IvRrVHIc/lLy/wSkE22LeA==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -15968,13 +8581,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81166c0c-c372-11e9-8fac-44032c851686" + "16723a12-56ec-11e9-8131-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:40 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:uv+enZU+r9LvCpPwwR/D5B6Zg4VoYBEw7JZo9cUp/qE=" + "SharedKey sdkteststore2:Z7mTOhL/Ykw9Bg3e0f4498fBmvu9D0808UMtdqfGd3I=" ], "Content-Length": [ "0" @@ -15987,27 +8600,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:39 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de6cf-401e-00ac-767f-574597000000\nTime:2019-08-20T17:46:57.1282358Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c193-701e-0068-2bf8-ea3a51000000\nTime:2019-04-04T15:12:40.2288396Z" } } }, @@ -16027,13 +8640,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "811e4fc6-c372-11e9-8821-44032c851686" + "1695cc4a-56ec-11e9-aea6-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:40 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:y6GoVnW8MR3LwBf7FK65lFZ2rUxZGqtD6/ZAtroigo4=" + "SharedKey sdkteststore2:ovMhOnB524zxFQlRp5n3zMSqHLTabVqN/bmwzobtI+0=" ] } }, @@ -16043,27 +8656,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:39 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de6de-401e-00ac-057f-574597000000\nTime:2019-08-20T17:46:57.1862773Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c1be-701e-0068-4df8-ea3a51000000\nTime:2019-04-04T15:12:40.4970288Z" } } }, @@ -16095,13 +8708,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8127eb74-c372-11e9-9d93-44032c851686" + "16bfade6-56ec-11e9-958e-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:40 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kqibZJeMVRAejeyXRhBLMMuMCMXwhaPBLynhWJwWyFk=" + "SharedKey sdkteststore2:9c9n2iM51LY/n9cKG70WWtFebuxJ2zbChWxOyThDYZE=" ] } }, @@ -16111,29 +8724,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259665628AED\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:40 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFB165DB3\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:40 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "27HmU8S9AEeu90aG5z1x1A==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -16157,13 +8770,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81313b92-c372-11e9-890f-44032c851686" + "16e971d8-56ec-11e9-a801-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:40 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:JdxZIXYV2umwVb2BkNy0GmB/ay78/GiWSKm1uUe8W0o=" + "SharedKey sdkteststore2:y9p2q3UwprbF/B9P/FvOxP3OcS+82oqqeAe4ZlnSrZs=" ], "Content-Length": [ "0" @@ -16176,27 +8789,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:40 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de6fe-401e-00ac-247f-574597000000\nTime:2019-08-20T17:46:57.3033597Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c21a-701e-0068-19f8-ea3a51000000\nTime:2019-04-04T15:12:41.0053849Z" } } }, @@ -16216,13 +8829,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "813903c2-c372-11e9-b043-44032c851686" + "170c2a3a-56ec-11e9-b893-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:puj+aKP8+0gxbZAqQnUt8D9XY5YZe+UbYqIhKuDgeCI=" + "SharedKey sdkteststore2:jNWBfC/DPHCZO2H+P38CMd+nDC04IJCHDDfBEuM0GSU=" ] } }, @@ -16231,28 +8844,28 @@ "code": 404, "message": "The specified blob does not exist." }, - "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "x-ms-version": [ - "2017-07-29" - ], + "headers": { "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "Thu, 04 Apr 2019 15:12:40 GMT" + ], + "Content-Type": [ + "application/xml" + ], + "x-ms-error-code": [ + "BlobNotFound" ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de714-401e-00ac-397f-574597000000\nTime:2019-08-20T17:46:57.3764113Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c254-701e-0068-4df8-ea3a51000000\nTime:2019-04-04T15:12:41.2745730Z" } } }, @@ -16284,13 +8897,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8144c26c-c372-11e9-8e11-44032c851686" + "1735fa46-56ec-11e9-a9f4-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:WlzjrlzCx8rM/moNwAuOR19YCfKtQCdx+lTm+NKJlE4=" + "SharedKey sdkteststore2:bZqA4W36fNCtByY/GpbmmbKjCEOWGQQYmmyMLfZucBA=" ] } }, @@ -16300,29 +8913,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596657F3FDC\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:40 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFB8CDBFB\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:41 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "eSn7zZA04to5Rccq3nxw1A==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -16346,13 +8959,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "814dea2e-c372-11e9-97ef-44032c851686" + "176007e4-56ec-11e9-9a14-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:+nZzWhxwZ1zYhQQzQuddEu/syDaFhuqNrYEARJyzw+U=" + "SharedKey sdkteststore2:oKi4Bd3anAXAy+LaH4gBWlJpn5i7snR/C7b8kq3Qezg=" ], "Content-Length": [ "0" @@ -16365,27 +8978,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:41 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:56 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de745-401e-00ac-657f-574597000000\nTime:2019-08-20T17:46:57.4904920Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c2ae-701e-0068-1df8-ea3a51000000\nTime:2019-04-04T15:12:41.7909365Z" } } }, @@ -16405,13 +9018,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8155aff6-c372-11e9-8a35-44032c851686" + "17843280-56ec-11e9-8c81-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:FG2OfkFLZ7szN33Qze4KaZ7+IGfOCCcDB7/4QhUqRfo=" + "SharedKey sdkteststore2:8Eppqs/Sgb7aB9IbORL9QUyW4293uhwhabr7A5OIrFg=" ] } }, @@ -16421,27 +9034,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:41 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de753-401e-00ac-737f-574597000000\nTime:2019-08-20T17:46:57.5455314Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c2e4-701e-0068-4cf8-ea3a51000000\nTime:2019-04-04T15:12:42.0621281Z" } } }, @@ -16473,13 +9086,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "815ed718-c372-11e9-a956-44032c851686" + "17ae2a5c-56ec-11e9-943b-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:42 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:vt5gmV/PO3c8e7ibn7aXQ5D9Fn7lhuyS/R/GIfI80aA=" + "SharedKey sdkteststore2:OPt0Qg/DclFEqWgsNMcajFgEqqdZVGbToFwQ2LcGS/M=" ] } }, @@ -16489,29 +9102,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259665993529\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:41 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFC06680D\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:42 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "sWJuTwpMQ9cWToECYRCNiQ==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -16535,13 +9148,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8167f09a-c372-11e9-86ed-44032c851686" + "17d9a764-56ec-11e9-b3dd-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:42 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:BYZqkMgpVii/0xt+fCoQXTlCxclIs64US79BIfNni6w=" + "SharedKey sdkteststore2:6v+84ghEVV07HD05qoul/ftaGpNzy2RoBIAHrALsqEY=" ], "Content-Length": [ "0" @@ -16554,27 +9167,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:41 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de76e-401e-00ac-0d7f-574597000000\nTime:2019-08-20T17:46:57.6676173Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c35e-701e-0068-29f8-ea3a51000000\nTime:2019-04-04T15:12:42.5905012Z" } } }, @@ -16594,13 +9207,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81709a14-c372-11e9-b736-44032c851686" + "17febe4a-56ec-11e9-b907-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:42 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:qRJqHxX1XyE4sxXdvs1Nnnj6Jr+pT4Fv3BLukoXzSj8=" + "SharedKey sdkteststore2:BhnfTlTm2F0Fk+nA3bzil4RjH7cLu1e2ItDjk/b3i7Q=" ] } }, @@ -16610,27 +9223,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:42 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de777-401e-00ac-167f-574597000000\nTime:2019-08-20T17:46:57.7226567Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c39b-701e-0068-57f8-ea3a51000000\nTime:2019-04-04T15:12:42.8616929Z" } } }, @@ -16662,13 +9275,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81799c10-c372-11e9-a794-44032c851686" + "182a9678-56ec-11e9-8c47-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:42 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:HiIiePiYS4ozAlO534lkkMl341I+OmeS1+/lkRmnACY=" + "SharedKey sdkteststore2:PtQxB0Skyy+XntdWtf/zF2znqceGB9SEgE9/FkmpLpw=" ] } }, @@ -16678,29 +9291,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259665B43C13\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:42 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFC7E462A\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:43 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "2ILRwlJk1kyfaTTP253tiA==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -16724,13 +9337,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81830890-c372-11e9-bbd3-44032c851686" + "18512328-56ec-11e9-96fe-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:43 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ENnOAE8WLYXq8+5XuZ2jB5g/lqfjVteRU2nwOFysp4k=" + "SharedKey sdkteststore2:FMd8d6xmUV4Sz0SJCeXdpvUllZEMR6A65n+ph9Mxt0A=" ], "Content-Length": [ "0" @@ -16743,27 +9356,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:42 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de792-401e-00ac-2f7f-574597000000\nTime:2019-08-20T17:46:57.8397390Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c44b-701e-0068-6bf8-ea3a51000000\nTime:2019-04-04T15:12:43.3540422Z" } } }, @@ -16783,13 +9396,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "818b1362-c372-11e9-aee9-44032c851686" + "1872678a-56ec-11e9-80cb-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:43 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ebzKMRM9P3zAIF/g/BQhdOxLuZnO5JHkhdw6Q4aBqH4=" + "SharedKey sdkteststore2:kDW5g2C03pzLH5qkt2nfL3MphH+orGPZ8AIf7Jz5TMk=" ] } }, @@ -16799,27 +9412,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:42 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de7a1-401e-00ac-3d7f-574597000000\nTime:2019-08-20T17:46:57.8947784Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c49a-701e-0068-2ff8-ea3a51000000\nTime:2019-04-04T15:12:43.6162266Z" } } }, @@ -16851,13 +9464,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8193e32e-c372-11e9-91af-44032c851686" + "189b2866-56ec-11e9-9187-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:43 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:vwJrUdNT+37UkMIrHd04MJDxS8H+Bt9eN/6Du8s5+ms=" + "SharedKey sdkteststore2:zLdfNfikVl69ZKikGDRHuPvsqJN2cCELA4ruxfj/99A=" ] } }, @@ -16867,29 +9480,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259665CE7F92\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:43 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFCEF1E17\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:43 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "acLZykn1NMEO1oxenbC6dw==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -16913,13 +9526,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "819d3200-c372-11e9-9696-44032c851686" + "18c1ea58-56ec-11e9-9dee-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "Thu, 04 Apr 2019 15:12:43 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:GrHTIYcck903br+PBymwklMeomrK0OqTSeXYDnsHlsk=" + "SharedKey sdkteststore2:dxlGgFkbv8jGFJmEs/3jIYKA5t04qiWmX7ABlp9+f8Y=" ], "Content-Length": [ "0" @@ -16932,27 +9545,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:43 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de7d4-401e-00ac-697f-574597000000\nTime:2019-08-20T17:46:58.0108609Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c534-701e-0068-36f8-ea3a51000000\nTime:2019-04-04T15:12:44.0985676Z" } } }, @@ -16972,13 +9585,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81a507e8-c372-11e9-bacc-44032c851686" + "18e41830-56ec-11e9-b627-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:44 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:smSKYxOG/nW2OQlNWK58MMNO2NPikBLrx/uhIqw4Sr0=" + "SharedKey sdkteststore2:TnWzEs6PCLz10ieI3NLW8b+QH5ZbviC0zivkgN2pLkI=" ] } }, @@ -16988,27 +9601,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:43 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de805-401e-00ac-087f-574597000000\nTime:2019-08-20T17:46:58.0669001Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c569-701e-0068-66f8-ea3a51000000\nTime:2019-04-04T15:12:44.3537480Z" } } }, @@ -17040,13 +9653,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81ae3462-c372-11e9-a5ed-44032c851686" + "1910d242-56ec-11e9-89c8-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:44 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:d7pt1RTWtfUce12jQQYyo9nnE7orsW5BDmLW6320GGE=" + "SharedKey sdkteststore2:B0XXM6CKexv2ZKPdrQiZbczCDbJAlJ6U5WR72DhP2NM=" ] } }, @@ -17056,29 +9669,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259665E89BF1\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:44 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFD6C545A\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:44 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "BvsOoLG3cYJ873sw8nI4/Q==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -17102,13 +9715,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81b7f852-c372-11e9-a2c4-44032c851686" + "19404426-56ec-11e9-b213-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:44 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:sJ0htrNRkNxVYOXFRHhjUglkUW2Y09UfdS+iZdomGOg=" + "SharedKey sdkteststore2:SUpjr8SQS26+PiQCNetbglIFkRqJh2+5Ll9QCFAc+6k=" ], "Content-Length": [ "0" @@ -17121,27 +9734,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:44 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de865-401e-00ac-567f-574597000000\nTime:2019-08-20T17:46:58.1879853Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c5f4-701e-0068-59f8-ea3a51000000\nTime:2019-04-04T15:12:44.9251518Z" } } }, @@ -17161,13 +9774,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81c00e9e-c372-11e9-8e87-44032c851686" + "19624c8a-56ec-11e9-876b-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:44 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:UlRP30gLyVD7Mw7bMg7Eg74qJ8H+jJVCO9x8Ix8F+fY=" + "SharedKey sdkteststore2:ynH7vQ5PHYIif2dc5l0N4xDA18KuPtG7T7Bzf+5a8wU=" ] } }, @@ -17177,27 +9790,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:44 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de883-401e-00ac-6d7f-574597000000\nTime:2019-08-20T17:46:58.2460268Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c654-701e-0068-29f8-ea3a51000000\nTime:2019-04-04T15:12:45.1983449Z" } } }, @@ -17205,7 +9818,7 @@ "request": { "method": "PUT", "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json", - "body": "{\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-12-01\",\r\n \"properties\": {\r\n \"id\": \"job123\",\r\n \"onAllTasksComplete\": \"terminateJob\",\r\n \"poolInfo\": {\r\n \"autoPoolSpecification\": {\r\n \"autoPoolIdPrefix\": \"pool123\",\r\n \"poolLifetimeOption\": \"job\",\r\n \"keepAlive\": false,\r\n \"pool\": {\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\"\r\n }\r\n }\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\": \"1\",\r\n \"commandLine\": \"/bin/bash -c 'cat {fileName}'\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"location\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", + "body": "{\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-08-01.7.0\",\r\n \"properties\": {\r\n \"id\": \"job123\",\r\n \"onAllTasksComplete\": \"terminateJob\",\r\n \"poolInfo\": {\r\n \"autoPoolSpecification\": {\r\n \"autoPoolIdPrefix\": \"pool123\",\r\n \"poolLifetimeOption\": \"job\",\r\n \"keepAlive\": false,\r\n \"pool\": {\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\"\r\n }\r\n }\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\": \"1\",\r\n \"commandLine\": \"/bin/bash -c 'cat {fileName}'\",\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"location\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" @@ -17217,25 +9830,25 @@ "BlockBlob" ], "x-ms-meta-lastmodified": [ - "1566231778.0575619" + "1554328036.8447773" ], "Content-MD5": [ - "9iVvz/Pf/FsbJv0miSuvzw==" + "Io6RmJXooduSCCl/iHe+sw==" ], "Content-Length": [ - "1245" + "1252" ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "81c90f4a-c372-11e9-8b60-44032c851686" + "198c1c80-56ec-11e9-8cf7-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:45 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:04WI+EvqlU97Q+P7w/MrRu0A14cAzqJdTzBL5N4Bipc=" + "SharedKey sdkteststore2:Q9hu6dJifqvia62NmFlavIkD46xOyGwekkQdaC8ZVrw=" ] } }, @@ -17245,29 +9858,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259666041824\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:44 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFDE28478\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:45 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ - "9iVvz/Pf/FsbJv0miSuvzw==" + "Io6RmJXooduSCCl/iHe+sw==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -17291,13 +9904,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81d2cf48-c372-11e9-8f39-44032c851686" + "19b52846-56ec-11e9-a3fa-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:45 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:XB6Aa5jJzu0j4BMfQBmzCsliJE1VV971w6N6G2HxNuA=" + "SharedKey sdkteststore2:/Y/G8XkRzfKYl7ca7itYE9TkJw7dMSMH6rcNVzY9sTg=" ], "Content-Length": [ "0" @@ -17310,27 +9923,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:45 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de8a6-401e-00ac-0a7f-574597000000\nTime:2019-08-20T17:46:58.3681127Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c6ce-701e-0068-11f8-ea3a51000000\nTime:2019-04-04T15:12:45.6956965Z" } } }, @@ -17350,13 +9963,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81dba8e8-c372-11e9-ab63-44032c851686" + "19d7cb6c-56ec-11e9-91c8-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:45 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:EAhUSZGNzbaJVrU9u6AyrO9mlrk/wixV7l7LLEJbSKA=" + "SharedKey sdkteststore2:gbEyT0Dp6pAh+8lHbzPc3cFgroyI/dRmKc4B7pfRJok=" ] } }, @@ -17366,27 +9979,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:45 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:57 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de8be-401e-00ac-197f-574597000000\nTime:2019-08-20T17:46:58.4241524Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c71c-701e-0068-51f8-ea3a51000000\nTime:2019-04-04T15:12:45.9688900Z" } } }, @@ -17418,13 +10031,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81e4e49c-c372-11e9-b4ab-44032c851686" + "1a028a36-56ec-11e9-98a6-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:46 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:bISP5Ol4D+TPYD0ta5Ybw17Ebd8GxbauTubj1MKisb4=" + "SharedKey sdkteststore2:PVaUuyKvtdrqMZZNlVcpNQLYA9QU1kxGWESjzKDgN5g=" ] } }, @@ -17434,29 +10047,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596661F1F0E\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:45 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFE5A3B78\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:46 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "kPzKWo4J2zRaerzJw2Z2xg==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -17480,13 +10093,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81f05674-c372-11e9-a484-44032c851686" + "1a2d4058-56ec-11e9-a628-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:46 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:oyLddcBj+iVceEOZoqE3E9y2bf2OZP1jYzdLZEZGULA=" + "SharedKey sdkteststore2:fcVB77Kogjr3XSh237fwRABsXyNjKDSJJOKwdyZyrXI=" ], "Content-Length": [ "0" @@ -17499,27 +10112,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:45 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de8f5-401e-00ac-4e7f-574597000000\nTime:2019-08-20T17:46:58.5572469Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c7b0-701e-0068-55f8-ea3a51000000\nTime:2019-04-04T15:12:46.4992645Z" } } }, @@ -17539,13 +10152,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "81f86ca2-c372-11e9-a77b-44032c851686" + "1a52a224-56ec-11e9-b9a4-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:46 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:tnQy9IhNBOzKHrDR7Ott+CpU/7ZUjiCDrKMkr7GybVQ=" + "SharedKey sdkteststore2:IjHjfQ85DJsIdqdxpk77XKiP3/9GZgpiGSzV+nT+bXY=" ] } }, @@ -17555,27 +10168,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:46 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de91a-401e-00ac-707f-574597000000\nTime:2019-08-20T17:46:58.6142873Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c7d8-701e-0068-7af8-ea3a51000000\nTime:2019-04-04T15:12:46.7904703Z" } } }, @@ -17607,13 +10220,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8201bc02-c372-11e9-9adf-44032c851686" + "1a7fccca-56ec-11e9-a812-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:46 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:bY5Gtj+1Ra4tusu05O2bYhKeXxyAH8Om4nXmhARWVo4=" + "SharedKey sdkteststore2:qH/GeeQ2NxJt+NY+fQUFWMozfxkQbYR9TTakUcN2i6Q=" ] } }, @@ -17623,29 +10236,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596663C2230\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:46 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFED91FBF\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:47 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "rdYsR2RLvOnr9kOYg2y5NQ==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -17669,13 +10282,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "820ac286-c372-11e9-9f17-44032c851686" + "1aac0cc6-56ec-11e9-bd8f-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:47 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:LFWBY+5I/pKxw3MmBv+WIQjVyfrOu1ZfCVOo0lDd/IQ=" + "SharedKey sdkteststore2:H0+OVbZQ8/Zrjsfb0oINclEq2E0pBmqtpwp1wDQG/No=" ], "Content-Length": [ "0" @@ -17688,27 +10301,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:46 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de94f-401e-00ac-1f7f-574597000000\nTime:2019-08-20T17:46:58.7313701Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c863-701e-0068-6ef8-ea3a51000000\nTime:2019-04-04T15:12:47.3238473Z" } } }, @@ -17728,13 +10341,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "82130300-c372-11e9-b03b-44032c851686" + "1ad08522-56ec-11e9-9fb3-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:47 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:UioNHQOJD7oL1mMPbk48X5r7euTVzPox7yr4JT2lZbo=" + "SharedKey sdkteststore2:96a48LHyqhvM33s+JMGkMfnIrgk1ZdMVd/rI6K3yh58=" ] } }, @@ -17744,27 +10357,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:46 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de95a-401e-00ac-287f-574597000000\nTime:2019-08-20T17:46:58.7884104Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c890-701e-0068-14f8-ea3a51000000\nTime:2019-04-04T15:12:47.6320660Z" } } }, @@ -17796,13 +10409,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "821c4634-c372-11e9-8fe6-44032c851686" + "1b002086-56ec-11e9-995f-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:47 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:+tgEQGeVKMlMIhqlmsiu4czySuXJILtsTvXGNrsXZNA=" + "SharedKey sdkteststore2:75f4jWmnxCi+MpIvWS7Ij6dqUchaSV2LALqH3TrD+S0=" ] } }, @@ -17812,29 +10425,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596665665A6\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:47 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFF5A2778\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:47 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "UJHCaZ8IYHwM3l1BfEkTHQ==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -17858,13 +10471,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "822517cc-c372-11e9-870a-44032c851686" + "1b2d4c28-56ec-11e9-988a-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:47 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:CZn13JpC0XnXhV+3xEFUlxobODKO24NbyKJobG3qpOg=" + "SharedKey sdkteststore2:t1UVRvkDg1SZJi3i42454+qzKPCrPQwATzbfqGsuw6Q=" ], "Content-Length": [ "0" @@ -17877,27 +10490,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:47 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de97a-401e-00ac-407f-574597000000\nTime:2019-08-20T17:46:58.9054928Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c8e7-701e-0068-67f8-ea3a51000000\nTime:2019-04-04T15:12:48.1534333Z" } } }, @@ -17917,13 +10530,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "822d99ca-c372-11e9-a34e-44032c851686" + "1b4f03d2-56ec-11e9-add7-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:48 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:JPdXM45kJJwrdzLYkONNHPwo2NkL9KECdauuLyTdBtA=" + "SharedKey sdkteststore2:IeiDHTN09hB0VtKfQ62CoWNlzZwsRgrHU9zFY1bu2gw=" ] } }, @@ -17933,27 +10546,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:47 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de992-401e-00ac-547f-574597000000\nTime:2019-08-20T17:46:58.9605317Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c91c-701e-0068-1af8-ea3a51000000\nTime:2019-04-04T15:12:48.4446395Z" } } }, @@ -17985,13 +10598,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "82367d46-c372-11e9-bd92-44032c851686" + "1b7c09a8-56ec-11e9-8cec-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "Thu, 04 Apr 2019 15:12:48 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:D6j6/po+OnhhMT07uTIVXop0EhsKI/dWKJtHZqwCsKE=" + "SharedKey sdkteststore2:Gwm2n8L8bczC9lo0ym8L5Gjt9UihmGjO2APmxL55AA4=" ] } }, @@ -18001,29 +10614,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D725966671457D\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:48 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B90FFFD4C537\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:48 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "Vx+oh7HSZQSJ/EMS4CWYdQ==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -18047,13 +10660,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "823fdf88-c372-11e9-a487-44032c851686" + "1ba7ae3e-56ec-11e9-a6d0-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:48 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ekw/OceRkjtyG7lgDjjFg7Mp8gFyWI+pNVvB30bYlT8=" + "SharedKey sdkteststore2:8MlQdkGZQyVF1dqPVmre5XuBZNmyhhdTMlkGSm8ZnlE=" ], "Content-Length": [ "0" @@ -18066,27 +10679,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:48 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8de9d4-401e-00ac-0c7f-574597000000\nTime:2019-08-20T17:46:59.0836196Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c9ac-701e-0068-1ef8-ea3a51000000\nTime:2019-04-04T15:12:48.9630059Z" } } }, @@ -18106,13 +10719,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8248b924-c372-11e9-a7f3-44032c851686" + "1bcac68a-56ec-11e9-babe-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:49 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:dhBH8ZtJZrANHlnhWRCMLOfN9vaKXaWHM7Thnoxr9Jc=" + "SharedKey sdkteststore2:c1x9b6oxooGAsQi7ZmbYOnM2xYucPQXmyzH+caB4bcI=" ] } }, @@ -18122,27 +10735,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:48 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8de9ea-401e-00ac-1e7f-574597000000\nTime:2019-08-20T17:46:59.1416607Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118ca00-701e-0068-6df8-ea3a51000000\nTime:2019-04-04T15:12:49.2542118Z" } } }, @@ -18174,13 +10787,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "82525618-c372-11e9-84ff-44032c851686" + "1bf78ac2-56ec-11e9-9e14-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:49 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:EARC47wmD6K78Xf2aLF74ONWXcvPVO/8Ay9A4EALlxM=" + "SharedKey sdkteststore2:r2s1/ztaR2G3eQ39K+4PDBMytMzapsX2caCAJ2Be9zs=" ] } }, @@ -18190,29 +10803,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D72596668D8528\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:48 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B91000555779\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:49 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ "sLKLnAZ4LgaLVKq3l8hvhw==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -18236,13 +10849,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "825c4118-c372-11e9-b559-44032c851686" + "1c289bd0-56ec-11e9-9592-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:49 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:803MP01txGMeSWWdWQYX6fRajrQU2TYHk4/T8wPPipQ=" + "SharedKey sdkteststore2:T0myBu6aK39YQttqSbajBsivyVu8Y+4v4S2ti1A2BjA=" ], "Content-Length": [ "0" @@ -18255,27 +10868,27 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:49 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:1b8dea0f-401e-00ac-407f-574597000000\nTime:2019-08-20T17:46:59.2627459Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118ca50-701e-0068-34f8-ea3a51000000\nTime:2019-04-04T15:12:49.8146079Z" } } }, @@ -18295,13 +10908,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "82640948-c372-11e9-bd15-44032c851686" + "1c4c8202-56ec-11e9-ac0a-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:49 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kRH7irBX3VIpPr0DdP/H18gqyCrnWUTk6ugdwfUfmYo=" + "SharedKey sdkteststore2:Mla7qwGEQ+SwL+2ta0Zfg2YwznabAd1xXycZeVi6+6M=" ] } }, @@ -18311,27 +10924,27 @@ "message": "The specified blob does not exist." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:49 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "BlobNotFound" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" - ], "Content-Length": [ "215" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:1b8dea19-401e-00ac-477f-574597000000\nTime:2019-08-20T17:46:59.3217877Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118ca81-701e-0068-61f8-ea3a51000000\nTime:2019-04-04T15:12:50.1238260Z" } } }, @@ -18339,7 +10952,7 @@ "request": { "method": "PUT", "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json", - "body": "{\r\n \"pool\": {\r\n \"id\": \"blobsource1\",\r\n \"displayName\": \"Blender Ubuntu standard pool\",\r\n \"vmSize\": \"Standard_D1_v2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\" : \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\",\r\n \"targetLowPriorityNodes\": \"0\",\r\n \"enableAutoScale\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"sleep 1\",\r\n \"waitForSuccess\": true,\r\n \"maxTaskRetryCount\": 0,\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\r\n \"filePath\": \"setup-linux-pool.sh\"\r\n }\r\n ]\r\n }\r\n }\r\n}", + "body": "{\r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"apiVersion\": \"2018-08-01\",\r\n \"properties\": {\r\n \"id\": \"blobsource\",\r\n \"displayName\": \"Blender Ubuntu standard pool\",\r\n \"vmSize\": \"Standard_D1_v2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\",\r\n \"targetLowPriorityNodes\": \"0\",\r\n \"enableAutoScale\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"sleep 1\",\r\n \"waitForSuccess\": true,\r\n \"maxTaskRetryCount\": 0,\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\r\n \"filePath\": \"setup-linux-pool.sh\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" @@ -18351,25 +10964,25 @@ "BlockBlob" ], "x-ms-meta-lastmodified": [ - "1566231778.058535" + "1553636329.0467827" ], "Content-MD5": [ - "8QUSX+KCWV/drjPRRW4cpA==" + "GqZFE1K6vOAb3BZx8aiwVA==" ], "Content-Length": [ - "990" + "1165" ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "826d1e1a-c372-11e9-9e88-44032c851686" + "1c7b8226-56ec-11e9-a8d7-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:i8cXonXbgca6hMBplsXz3LdRX5FXBYKBXy+ydBhdLPM=" + "SharedKey sdkteststore2:ueG6xUCRJGVaBTTdCtVOgV0h4zqLXHuKx/3Z9k+KhJM=" ] } }, @@ -18379,29 +10992,29 @@ "message": "Created" }, "headers": { - "x-ms-version": [ - "2017-07-29" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "ETag": [ - "\"0x8D7259666A88C11\"" + "Date": [ + "Thu, 04 Apr 2019 15:12:49 GMT" ], - "x-ms-request-server-encrypted": [ - "true" + "ETag": [ + "\"0x8D6B91000D1F15B\"" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Thu, 04 Apr 2019 15:12:50 GMT" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Content-Length": [ + "0" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:58 GMT" + "x-ms-request-server-encrypted": [ + "true" ], "Content-MD5": [ - "8QUSX+KCWV/drjPRRW4cpA==" + "GqZFE1K6vOAb3BZx8aiwVA==" ], - "Content-Length": [ - "0" + "x-ms-version": [ + "2017-07-29" ] }, "body": { @@ -18412,11 +11025,11 @@ { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2019-08-01", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-batch/7.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -18428,10 +11041,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + ], + "Content-Type": [ + "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "82998366-c372-11e9-9e3b-44032c851686" + "1ddb0638-56ec-11e9-b854-44032c851686" ], "accept-language": [ "en-US" @@ -18444,40 +11060,42 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json; charset=utf-8" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:12:52 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ - "nosniff" + "Transfer-Encoding": [ + "chunked" ], - "content-length": [ - "2729" + "Vary": [ + "Accept-Encoding" ], - "x-ms-original-request-ids": [ - "3b657330-ec08-41c6-8ef2-7e18f8e8b064", - "4f86fc36-4ea9-4941-b558-9768b236889e" + "X-Content-Type-Options": [ + "nosniff" ], - "Cache-Control": [ - "no-cache" + "Expires": [ + "-1" ], - "Pragma": [ - "no-cache" + "content-length": [ + "686" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/byossc\",\"name\":\"byossc\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"southcentralus\",\"properties\":{\"accountEndpoint\":\"byossc.southcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"poolAllocationMode\":\"UserSubscription\",\"keyVaultReference\":{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.KeyVault/vaults/byossc\",\"url\":\"https://byossc.vault.azure.net/\"}}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"dedicatedCoreQuotaPerVMFamily\":[{\"name\":\"standardA0_A7Family\",\"coreQuota\":20},{\"name\":\"standardDv2Family\",\"coreQuota\":20},{\"name\":\"standardA8_A11Family\",\"coreQuota\":0},{\"name\":\"standardDFamily\",\"coreQuota\":0},{\"name\":\"standardGFamily\",\"coreQuota\":0},{\"name\":\"basicAFamily\",\"coreQuota\":0},{\"name\":\"standardFFamily\",\"coreQuota\":0},{\"name\":\"standardNVFamily\",\"coreQuota\":0},{\"name\":\"standardNVPromoFamily\",\"coreQuota\":0},{\"name\":\"standardNCFamily\",\"coreQuota\":0},{\"name\":\"standardNCPromoFamily\",\"coreQuota\":0},{\"name\":\"standardHFamily\",\"coreQuota\":0},{\"name\":\"standardHPromoFamily\",\"coreQuota\":0},{\"name\":\"standardAv2Family\",\"coreQuota\":0},{\"name\":\"standardMSFamily\",\"coreQuota\":0},{\"name\":\"standardDv3Family\",\"coreQuota\":0},{\"name\":\"standardEv3Family\",\"coreQuota\":0},{\"name\":\"standardDSFamily\",\"coreQuota\":0},{\"name\":\"standardDSv2Family\",\"coreQuota\":0},{\"name\":\"standardDSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSFamily\",\"coreQuota\":0},{\"name\":\"standardESv3Family\",\"coreQuota\":0},{\"name\":\"standardGSFamily\",\"coreQuota\":0},{\"name\":\"standardLSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv2Family\",\"coreQuota\":0},{\"name\":\"standardNDSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSv2Family\",\"coreQuota\":0},{\"name\":\"standardHBSFamily\",\"coreQuota\":0},{\"name\":\"standardHCSFamily\",\"coreQuota\":0}],\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-07-16T21:55:40.4909987Z\"},\"poolAllocationMode\":\"BatchService\"},\"tags\":{\"rawr\":\"test\"}}]}" + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" } } }, @@ -18488,7 +11106,7 @@ "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -18500,13 +11118,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "83058346-c372-11e9-90b3-44032c851686" + "1e3b03fe-56ec-11e9-970b-44032c851686" ], "accept-language": [ "en-US" @@ -18522,38 +11140,38 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "Date": [ + "Thu, 04 Apr 2019 15:12:52 GMT" ], - "Vary": [ - "Accept-Encoding" + "Pragma": [ + "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:46:59 GMT" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Content-Type": [ + "application/json" ], - "X-Content-Type-Options": [ - "nosniff" + "Cache-Control": [ + "no-cache" ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Transfer-Encoding": [ "chunked" ], - "Cache-Control": [ - "no-cache" + "Vary": [ + "Accept-Encoding" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "X-Content-Type-Options": [ + "nosniff" ], - "Pragma": [ - "no-cache" + "Expires": [ + "-1" ], "content-length": [ "288" @@ -18580,13 +11198,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "8342107a-c372-11e9-9429-44032c851686" + "1e7cf49c-56ec-11e9-bee6-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:47:00 GMT" + "Thu, 04 Apr 2019 15:12:53 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:vTeL6mjkIJba50FLFSeujlnzlhMOEpcAd9H/4SmCVII=" + "SharedKey sdkteststore2:NaMAK67Ah941tZzrX9u0gjiZJWQOmSIBaBMYk8Iv/KA=" ] } }, @@ -18596,24 +11214,24 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Date": [ + "Thu, 04 Apr 2019 15:12:53 GMT" + ], + "Content-Type": [ + "application/xml" + ], "Transfer-Encoding": [ "chunked" ], - "Date": [ - "Tue, 20 Aug 2019 17:47:00 GMT" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffbatch-applicationTemplate-parameters.jsonTue, 20 Aug 2019 17:46:56 GMT0x8D7259664CFA65D1377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonTue, 20 Aug 2019 17:46:56 GMT0x8D7259664F3133A219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonTue, 20 Aug 2019 17:46:56 GMT0x8D72596650DA4E3146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonTue, 20 Aug 2019 17:46:56 GMT0x8D72596652884BA187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonTue, 20 Aug 2019 17:46:57 GMT0x8D72596654783FB206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonTue, 20 Aug 2019 17:46:57 GMT0x8D7259665628AED740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonTue, 20 Aug 2019 17:46:57 GMT0x8D72596657F3FDC240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonTue, 20 Aug 2019 17:46:57 GMT0x8D72596659935291363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonTue, 20 Aug 2019 17:46:57 GMT0x8D7259665B43C134072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonTue, 20 Aug 2019 17:46:57 GMT0x8D7259665CE7F92254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonTue, 20 Aug 2019 17:46:58 GMT0x8D7259665E89BF13565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonTue, 20 Aug 2019 17:46:58 GMT0x8D72596660418241245application/octet-stream9iVvz/Pf/FsbJv0miSuvzw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonTue, 20 Aug 2019 17:46:58 GMT0x8D72596661F1F0E1140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonTue, 20 Aug 2019 17:46:58 GMT0x8D72596663C22301117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonTue, 20 Aug 2019 17:46:58 GMT0x8D72596665665A652application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonTue, 20 Aug 2019 17:46:59 GMT0x8D725966671457D1685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonTue, 20 Aug 2019 17:46:59 GMT0x8D72596668D85281675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonTue, 20 Aug 2019 17:46:59 GMT0x8D7259666A88C11990application/octet-stream8QUSX+KCWV/drjPRRW4cpA==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufeffbatch-applicationTemplate-parameters.jsonThu, 04 Apr 2019 15:12:36 GMT0x8D6B90FF8B568471377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonThu, 04 Apr 2019 15:12:37 GMT0x8D6B90FF92BE68E219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonThu, 04 Apr 2019 15:12:38 GMT0x8D6B90FF9A94405146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonThu, 04 Apr 2019 15:12:39 GMT0x8D6B90FFA2A99DE187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonThu, 04 Apr 2019 15:12:39 GMT0x8D6B90FFA9F430F206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonThu, 04 Apr 2019 15:12:40 GMT0x8D6B90FFB165DB3740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonThu, 04 Apr 2019 15:12:41 GMT0x8D6B90FFB8CDBFB240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonThu, 04 Apr 2019 15:12:42 GMT0x8D6B90FFC06680D1363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonThu, 04 Apr 2019 15:12:43 GMT0x8D6B90FFC7E462A4072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonThu, 04 Apr 2019 15:12:43 GMT0x8D6B90FFCEF1E17254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonThu, 04 Apr 2019 15:12:44 GMT0x8D6B90FFD6C545A3565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonThu, 04 Apr 2019 15:12:45 GMT0x8D6B90FFDE284781252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonThu, 04 Apr 2019 15:12:46 GMT0x8D6B90FFE5A3B781140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonThu, 04 Apr 2019 15:12:47 GMT0x8D6B90FFED91FBF1117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonThu, 04 Apr 2019 15:12:47 GMT0x8D6B90FFF5A277852application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonThu, 04 Apr 2019 15:12:48 GMT0x8D6B90FFFD4C5371685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonThu, 04 Apr 2019 15:12:49 GMT0x8D6B910005557791675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonThu, 04 Apr 2019 15:12:50 GMT0x8D6B91000D1F15B1165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -18633,13 +11251,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "836bfcc8-c372-11e9-8fca-44032c851686" + "1ef848be-56ec-11e9-a7da-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:47:01 GMT" + "Thu, 04 Apr 2019 15:12:54 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:b0bewNaXwslaFD2Ok2av6z7YJqQSlDTVLu9HAmesEAI=" + "SharedKey sdkteststore2:C1cLPFNT0xpNfJYYXeua44WsN86L0NqjF1wMBqABqQo=" ], "Content-Length": [ "0" @@ -18652,38 +11270,38 @@ "message": "The specified container already exists." }, "headers": { + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Thu, 04 Apr 2019 15:12:53 GMT" + ], "Content-Type": [ "application/xml" ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Tue, 20 Aug 2019 17:47:00 GMT" - ], "Content-Length": [ "230" + ], + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:b37acef4-001e-0045-2a7f-57b991000000\nTime:2019-08-20T17:47:01.0495638Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:6f5a3064-201e-0016-4ef8-eaa59e000000\nTime:2019-04-04T15:12:54.4954587Z" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2019-08-01.10.0&timeout=30", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", "body": "{\"id\": \"helloworld-job3\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"helloworld-pool3\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\", \"usesTaskDependencies\": true}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -18695,13 +11313,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "8374fd80-c372-11e9-baed-44032c851686" + "1f195298-56ec-11e9-9149-44032c851686" ], "accept-language": [ "en-US" @@ -18720,38 +11338,38 @@ "message": "Created" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:47:00 GMT" + "Thu, 04 Apr 2019 15:12:54 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "X-Content-Type-Options": [ - "nosniff" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "ETag": [ - "0x8D7259667CE5072" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:47:01 GMT" + "0x8D6B91003A26A83" ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Thu, 04 Apr 2019 15:12:55 GMT" ], "Transfer-Encoding": [ "chunked" ], "request-id": [ - "fa5e7cfa-07c4-43e0-8fec-8d1349635ceb" + "8d45767a-00d0-4ac4-9f84-66f609e79199" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { @@ -18762,11 +11380,11 @@ { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/addtaskcollection?api-version=2019-08-01.10.0", - "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=qjkdzdBo7dp66dBpwq1MzHYDaUFOkLn2OBE7PJVR8/o%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=5ggJXnam3lSRp5pN29cQ3s3M2%2B6K4elM6ZTK7TBjy0U%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=FF66MuydtAug8VyNO/jJmorJ7%2B%2BTtcfDqgeQTJFJr/k%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=M2Z7ZLvIzdRYEf9%2BnZUCcA8ekhAnMy8hVAzJMBXJXF0%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=zCEvBTq3iOotefeoSMGul54bLYIDOxgzn6C01kZACEA%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=brAyKdOfJVDB1uA0q7LlOVJNDIq3abJBPtYkIsScFzY%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=w4OupUnlhDLNJQVa6ISGpE5IwvDNjCqu/6PCaAjQBsM%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=A2vjvhldjW0QFavTNuWu5dAgwITtP/SjUQGAaRBE54Q%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=i%2BYgbj78cFrcKJOcXFIYHE3TQgorojM9zbHJbTbIT%2B4%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=EJbQk0h1IsKo%2Bs5n4faamwDKNkGiTUNNJgUkq9LvCso%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=l8eFtrkubdXTb2639IRmav77LwsaPg15nZ4hBUwRx0s%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=2D57fqug%2B5bY617zxZvfKMXpm7tE6qbQkUYH/qhUeQs%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=fGvx1JC7jhfMydOrP91FmBDGRiTZ%2BRcXH5kch/XmsGU%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=uco6p/1Grz4Tot2vIUBxc6SLJLmrtMC1K/y6twl/xE8%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=wdkt74joqZjY7wPQJFe8j5yq9uSK4WMLisQgQCSuZ6c%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=r&sv=2017-07-29&sr=b&sig=60aoV/Dp48M1Y8hSOFaCSWtgB/PlhznKSjeBkh8jsbo%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-08-20T17%3A32%3A00Z&se=2019-08-27T17%3A47%3A00Z&sp=r&sv=2017-07-29&sr=b&sig=yX1pAuKK7y7V4vsUx5zmeUICpfXIONdalc8RnaygIvA%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-08-20T17%3A32%3A00Z&se=2019-08-27T17%3A47%3A00Z&sp=r&sv=2017-07-29&sr=b&sig=Cf35OizojkYQSSce65zDM732hBEZ%2Bvbaz391CmNmHgw%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-08-20T17%3A32%3A01Z&se=2019-08-27T17%3A47%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=r3A76NHornQOLrIpsQEmKbrSRE6kjMfmfN7LhQ42BrY%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=rVRHV4yKJGnqKffmkOdMg2jc5AH%2BbkCNoSUsZdHhXi4%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=SjCHyDz8CUyaSqIRC1DuXLTcwRNl/Azqr48NHwqX170%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=xUaxo0vUrGFEXgX8Av35BMBgcJwtMGku69xec8e98jo%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=vsnEShV/gLvLD7G3dqhiBQmYC57prY/BpaqKlaGqii8%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=vZ73suh61DBEXedN9/5u4EJVmi7vu3zjdi87nCeOsD0%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=IcyvTrQqAUzKLabIYrEu0muStsStyke3rO%2BTQjCOn1s%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=AlwnXOtb4kqkIFQVbRv1owzqw10MouDDCGOOD%2BbbsAE%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=r5AiNug5n76Bg76kIJPRQ9i6t33CtEo6yRNgySrZIpM%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=27LTg9jAzPnpzVIlKDIcS18m8GVWEC6xsTByj5421S4%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=EBlnr%2B7hLgohbGV2ji%2BQxRNdSUEMOjflyHL6T6%2BJi1E%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=1ads9xkjipuEwv6HI24uyb%2Boo82i7UxJSZicyJniejs%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=vM6foKimvvybM0b9LmDrYFUyOfS7bjFEPLhc6rx0ESE%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=N4OjDAWXhkbP0d%2BXUggqGB5CTP7RkxtFpwEFssadrjU%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=0q8VCek3eNpDqsQlPMQWK9NO5HlUTweExBJkKOmSP9w%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=r4aLX9PG3tLBfx/KY3bh5UBIuynuRl97wvb0wvQXvh8%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=d1ovHjwAZHmHS0jO5I9vSVjfzN9hMCw52sWAcxZjZbs%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=CFuh4D7yOgtWm4k1buINVlPOGs8zN06N6vuD2SY3%2BFE%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=GsNy2rCP460g/oVYLUHUuyXzz9fxN5Bu/EpxFWMs9jQ%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -18778,19 +11396,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "839ca99e-c372-11e9-9861-44032c851686" + "1f74c268-56ec-11e9-8755-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "14598" + "14632" ] } }, @@ -18800,44 +11418,44 @@ "message": "OK" }, "headers": { - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:47:00 GMT" + "Thu, 04 Apr 2019 15:12:56 GMT" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "request-id": [ - "655d112f-a224-4283-bec3-c78b1aebd4eb" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "55156081-66c7-4eb8-8e84-e2b3a1b9a5a0" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D7259667F84623\",\"lastModified\":\"2019-08-20T17:47:01.5860771Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D7259667FDF34C\",\"lastModified\":\"2019-08-20T17:47:01.623278Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D7259668000E6D\",\"lastModified\":\"2019-08-20T17:47:01.6370797Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D725966802F483\",\"lastModified\":\"2019-08-20T17:47:01.6560771Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D725966808E7EA\",\"lastModified\":\"2019-08-20T17:47:01.6950762Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D72596680A207B\",\"lastModified\":\"2019-08-20T17:47:01.7030779Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D72596680BCE0E\",\"lastModified\":\"2019-08-20T17:47:01.714075Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D72596680BA702\",\"lastModified\":\"2019-08-20T17:47:01.7130754Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D72596681061ED\",\"lastModified\":\"2019-08-20T17:47:01.7440749Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D72596680BCE0E\",\"lastModified\":\"2019-08-20T17:47:01.714075Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D72596680BA702\",\"lastModified\":\"2019-08-20T17:47:01.7130754Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D72596680BCE0E\",\"lastModified\":\"2019-08-20T17:47:01.714075Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D72596680A4782\",\"lastModified\":\"2019-08-20T17:47:01.704077Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D72596680BF53A\",\"lastModified\":\"2019-08-20T17:47:01.7150778Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D72596680A6E93\",\"lastModified\":\"2019-08-20T17:47:01.7050771Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D72596680BCE0E\",\"lastModified\":\"2019-08-20T17:47:01.714075Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D72596680BF53A\",\"lastModified\":\"2019-08-20T17:47:01.7150778Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D72596680D54AF\",\"lastModified\":\"2019-08-20T17:47:01.7240751Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D72596680D2D99\",\"lastModified\":\"2019-08-20T17:47:01.7230745Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6B910047128A9\",\"lastModified\":\"2019-04-04T15:12:56.4644009Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6B910047BB01A\",\"lastModified\":\"2019-04-04T15:12:56.5334042Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6B910047E963F\",\"lastModified\":\"2019-04-04T15:12:56.5524031Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6B91004771C20\",\"lastModified\":\"2019-04-04T15:12:56.5034016Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6B91004828DD1\",\"lastModified\":\"2019-04-04T15:12:56.5784017Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6B9100483ED71\",\"lastModified\":\"2019-04-04T15:12:56.5874033Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6B9100482DBEF\",\"lastModified\":\"2019-04-04T15:12:56.5804015Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6B910047E963F\",\"lastModified\":\"2019-04-04T15:12:56.5524031Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6B910047E2967\",\"lastModified\":\"2019-04-04T15:12:56.5496167Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6B910047FF5F9\",\"lastModified\":\"2019-04-04T15:12:56.5614073Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6B91004817C6B\",\"lastModified\":\"2019-04-04T15:12:56.5714027Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6B910047FB16B\",\"lastModified\":\"2019-04-04T15:12:56.5596523Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6B910047FF5F9\",\"lastModified\":\"2019-04-04T15:12:56.5614073Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6B91004801CE3\",\"lastModified\":\"2019-04-04T15:12:56.5624035Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6B9100481A36C\",\"lastModified\":\"2019-04-04T15:12:56.5724012Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6B91004830318\",\"lastModified\":\"2019-04-04T15:12:56.581404Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6B9100481559D\",\"lastModified\":\"2019-04-04T15:12:56.5704093Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6B91004812E8A\",\"lastModified\":\"2019-04-04T15:12:56.569409Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6B9100481A36C\",\"lastModified\":\"2019-04-04T15:12:56.5724012Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "PATCH", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3?api-version=2019-08-01.10.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3?api-version=2018-12-01.8.0", "body": "{\"onAllTasksComplete\": \"terminatejob\"}", "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-batch/8.0.0 Azure-SDK-For-Python batchextensionsclient/7.0.0" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -18849,13 +11467,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU2NjMyMDcyNCwibmJmIjoxNTY2MzIwNzI0LCJleHAiOjE1NjYzMjQ2MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhNQUFBQUJmSVhrS1pUNXN2dGVyVzhpeVgyQ1JCODlJc2dTVFJtZFdPeHR0aFNMVXZzZEtwd0YxTmloNjFtcEdMYjRnNmxES01Md0lMTmtBSkhCblBCSithdU5BPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE1OS4yMiIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJaTnRJSW14ajVlSk9TbnJRTXh1UTFGeGVPOHhiYnVhQmFrU0FYYjRqRE84IiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIzcU02WE1IMS1VeTc1OGREc3VFUUFBIiwidmVyIjoiMS4wIn0.6wF-URC5pN8R6lYNu887Vqul47X3Kpm5g_d0S6tYjtW42KcCv95dvXiWr3_xQ62vDBHLekWJUFTDt-JIa-7Jothw-k4LGIe4OyT3c5VeLMupH5fepX8puj3cfxUAubdUIwq3nw8XHksD979tOyFh_lOCyHPNs69UgpQUufHkX-262eCQjlQoXTigdmxd4uhW7ybcLKxTyIh16K8JI3tHU6lQQDeKGDVqgkXTWqAHWhlHiaZ8SYsfjV07lLS-YnBmjyM16WHnDCaUwDy326rKfbdsAS2r6br2NERDpX_yoq01rFxP1mzQrnokb7sAJBQbV5dqalO3kU0JwvcGwhO3hQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "83e2eb8c-c372-11e9-ba0c-44032c851686" + "207e1390-56ec-11e9-b6d2-44032c851686" ], "accept-language": [ "en-US" @@ -18871,35 +11489,35 @@ "message": "OK" }, "headers": { - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Date": [ - "Tue, 20 Aug 2019 17:47:01 GMT" + "Thu, 04 Apr 2019 15:12:57 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" ], "ETag": [ - "0x8D72596681F6F76" + "0x8D6B91004F9706C" ], - "request-id": [ - "b41e04a0-98b0-441e-9c92-ae47a212604c" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], "Last-Modified": [ - "Tue, 20 Aug 2019 17:47:01 GMT" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" + "Thu, 04 Apr 2019 15:12:57 GMT" ], "Transfer-Encoding": [ "chunked" ], - "X-Content-Type-Options": [ - "nosniff" + "request-id": [ + "ff3875d5-a7bd-4103-aa87-4394cc392cbe" ], "DataServiceVersion": [ "3.0" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { diff --git a/tests/test_live.py b/tests/test_live.py index d3106fe5..d3d91cfd 100644 --- a/tests/test_live.py +++ b/tests/test_live.py @@ -431,8 +431,8 @@ def body(self): expanded_template = self.batch_client.pool.expand_template(json_obj) pool_param = self.batch_client.pool.poolparameter_from_json(expanded_template) self.batch_client.pool.add(pool_param) - self.wait_for_pool_steady(pool_param.id, 5 * 60) - self.batch_client.pool.delete(pool_param.id) + self.wait_for_pool_steady(pool_param.properties.id, 5 * 60) + self.batch_client.pool.delete(pool_param.properties.id) # Batch simple legacy task factory self.cmd("batch job create --template '{}'".format(os.path.join( From f7effab221e82161b3eb09296676d7adadab940a Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Fri, 5 Apr 2019 15:44:11 -0700 Subject: [PATCH 02/13] rerecord tests --- azext/batch/operations/job_operations.py | 6 +- .../test_batch_extensions_live.yaml | 6814 +++++++++-------- tests/recordings/test_batch_upload_live.yaml | 346 +- 3 files changed, 3918 insertions(+), 3248 deletions(-) diff --git a/azext/batch/operations/job_operations.py b/azext/batch/operations/job_operations.py index 56573428..e45b5f74 100644 --- a/azext/batch/operations/job_operations.py +++ b/azext/batch/operations/job_operations.py @@ -192,7 +192,7 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, logging.warning("Invalid apiVersion, defaulting to latest") api_version = None - if isinstance(job, models.PoolTemplate): + if isinstance(job, models.JobTemplate): job = job.properties try: @@ -223,11 +223,11 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, _template_utils, models, **operation_config) - except Exception: + except Exception as e: if original_api_version: self.api_version = original_api_version self._parent.task.api_version = original_api_version - raise + raise e add.metadata = {'url': '/jobs'} def _add(self, job, job_add_options, custom_headers, raw, diff --git a/tests/recordings/test_batch_extensions_live.yaml b/tests/recordings/test_batch_extensions_live.yaml index fe6f3b41..b4e2f5d5 100644 --- a/tests/recordings/test_batch_extensions_live.yaml +++ b/tests/recordings/test_batch_extensions_live.yaml @@ -17,13 +17,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "711d0da2-56eb-11e9-9663-44032c851686" + "541cb888-57f3-11e9-95f5-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "Fri, 05 Apr 2019 22:37:01 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:+/ODo3DgdufKb7Y2zdTbY72BLuRRzuv9A+lJHjLMDuA=" + "SharedKey sdkteststore2:FVwV2mPoFaQ3QwmMk8ZUfkBs5mBQKQCtXk0E/m0nxe4=" ] } }, @@ -33,255 +33,247 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/xml" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:01 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28D8B4440application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28DA3B30405application/octet-streamR9OG6+c3p6+Yz4vUjohK1w==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28DB73EA0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:06:48 GMT0x8D6B90F28DCD3BB4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufeff" } } }, { "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" ], "Connection": [ "keep-alive" ], - "x-ms-version": [ - "2017-07-29" + "client-request-id": [ + "54427d54-57f3-11e9-bbd5-44032c851686" ], - "x-ms-client-request-id": [ - "71489e82-56eb-11e9-811c-44032c851686" + "accept-language": [ + "en-US" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:01 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:MX1h3DZBzYtABdUXiWTU+Izn1ROhMqrnCfUvdvIwdWo=" - ], - "Content-Length": [ - "0" + "SharedKey sdktest2:WNbyJQPcLUKQc4Kj8K6xuLD26ERiTDu/L4VZvXp2qz8=" ] } }, "response": { "status": { - "code": 202, - "message": "Accepted" + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "request-id": [ + "c8a3e73d-c630-44ae-b00e-8561654f9520" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "DataServiceVersion": [ + "3.0" ], - "Content-Length": [ - "0" + "Transfer-Encoding": [ + "chunked" ], - "x-ms-version": [ - "2017-07-29" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "x-ms-delete-type-permanent": [ - "true" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:01 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" } } }, { "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", "headers": { "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" ], "Connection": [ "keep-alive" ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "715150b8-56eb-11e9-9537-44032c851686" + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "client-request-id": [ + "547bff98-57f3-11e9-9f97-44032c851686" ], - "Authorization": [ - "SharedKey sdkteststore2:DFx1i4IQmrtpeD/XIgvHjI3WU9aPDqEj/g77aPSwhoQ=" + "accept-language": [ + "en-US" ], "Content-Length": [ - "0" + "250" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:01 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:n2UVwTSbwVvx0XgIBZ9cZZ0zG8l7+rdIWDJmkWz0NeQ=" ] } }, "response": { "status": { - "code": 202, - "message": "Accepted" + "code": 409, + "message": "The specified pool already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "request-id": [ + "54193fae-15a7-48da-8130-b42cfaf3f3dd" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "DataServiceVersion": [ + "3.0" ], "Content-Length": [ - "0" + "334" ], - "x-ms-version": [ - "2017-07-29" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "x-ms-delete-type-permanent": [ - "true" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:01 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:54193fae-15a7-48da-8130-b42cfaf3f3dd\\nTime:2019-04-05T22:37:01.8910219Z\"\r\n }\r\n}" } } }, { "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" ], "Connection": [ "keep-alive" ], - "x-ms-version": [ - "2017-07-29" + "client-request-id": [ + "549c801a-57f3-11e9-bd23-44032c851686" ], - "x-ms-client-request-id": [ - "715873f6-56eb-11e9-b393-44032c851686" + "accept-language": [ + "en-US" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:01 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:f5EE9cHN5SA54evHk4QATtZkwfafVEFNPjZn2RdD4P0=" - ], - "Content-Length": [ - "0" + "SharedKey sdktest2:RdjZfNDacmWZ6DAo4tQbByjhLTf/A21891AyQaWq9VQ=" ] } }, "response": { "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" - ], - "Content-Length": [ - "0" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" - ] + "code": 200, + "message": "OK" }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", - "body": null, "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "ETag": [ + "0x8D6B84EBB557E6A" ], - "Connection": [ - "keep-alive" + "request-id": [ + "c989e0ec-830f-4703-a6ea-c4cd8e20b43d" ], - "x-ms-version": [ - "2017-07-29" + "Last-Modified": [ + "Wed, 03 Apr 2019 16:09:20 GMT" ], - "x-ms-client-request-id": [ - "716210b4-56eb-11e9-8392-44032c851686" + "DataServiceVersion": [ + "3.0" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "Transfer-Encoding": [ + "chunked" ], - "Authorization": [ - "SharedKey sdkteststore2:wSqFLE0HbDNvh9XNOG829Ww9zhFGIxX73aDOU9LPdGQ=" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "Microsoft-HTTPAPI/2.0" ], - "Content-Length": [ - "0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "x-ms-version": [ - "2017-07-29" + "Date": [ + "Fri, 05 Apr 2019 22:37:02 GMT" ], - "x-ms-delete-type-permanent": [ - "true" + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6B84EBB557E6A\",\"lastModified\":\"2019-04-03T16:09:20.9406058Z\",\"creationTime\":\"2019-04-03T16:09:20.9406058Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-03T16:09:20.9406058Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-03T16:10:47.6983993Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -297,16 +289,16 @@ "keep-alive" ], "client-request-id": [ - "7169b1d0-56eb-11e9-bcb6-44032c851686" + "54bbeffe-57f3-11e9-a5dc-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "Fri, 05 Apr 2019 22:37:02 GMT" ], "Authorization": [ - "SharedKey sdktest2:tCJQH74dBYHcx3oRMsnKyhPGfenaT4HGN9+MkW54l3k=" + "SharedKey sdktest2:Ag0gXXT7rCtCMX0sOM/c/UXCBwchQfw4PEPU6reQpCQ=" ] } }, @@ -316,41 +308,41 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "e87362d5-7c50-4914-ab4e-092341acdfa0" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:02 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "8c41a3c1-0971-4ea8-ad03-60b5bfebe683" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:02 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:09:43.138649Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":42,\"totalTasksSucceeded\":42,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:42.537048Z\",\"endTime\":\"2019-04-04T15:09:43.105634Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", - "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-ubuntu1404\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -364,67 +356,76 @@ "Connection": [ "keep-alive" ], - "Content-Type": [ + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" + ], + "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "719c2028-56eb-11e9-8d26-44032c851686" + "555327dc-57f3-11e9-85b0-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "250" - ], - "ocp-date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "return-client-request-id": [ + "false" ], - "Authorization": [ - "SharedKey sdktest2:ANgsnm5Ew3GKggQNqY4XsGBWxmmZjO1P7Z9bc0PTVS4=" + "Content-Length": [ + "66" ] } }, "response": { "status": { - "code": 409, - "message": "The specified pool already exists." + "code": 201, + "message": "Created" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA173AE74865" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "request-id": [ + "78a067e6-8b84-4f32-85a8-10d47d5180e3" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:05 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Length": [ - "334" - ], - "request-id": [ - "ef355857-7c2e-479c-b0b2-8be240488425" + "Date": [ + "Fri, 05 Apr 2019 22:37:04 GMT" ], - "DataServiceVersion": [ - "3.0" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:ef355857-7c2e-479c-b0b2-8be240488425\\nTime:2019-04-04T15:08:03.6697685Z\"\r\n }\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -438,17 +439,20 @@ "Connection": [ "keep-alive" ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], "client-request-id": [ - "71bd10f8-56eb-11e9-acdc-44032c851686" + "56bfbb52-57f3-11e9-8a32-44032c851686" ], "accept-language": [ "en-US" ], - "ocp-date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:sedRUlM1AWfkTaoF10Wz0bSw2RDDfhC17mMk3Fpl8Vg=" + "Content-Length": [ + "475" ] } }, @@ -458,46 +462,40 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "1a3a7784-e9ea-4dc8-bf57-2d19567d4cf2" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "ETag": [ - "0x8D6B84EBB557E6A" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Wed, 03 Apr 2019 16:09:20 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "3b3e9e42-b03d-4139-9d55-242afe2dba2f" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:05 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6B84EBB557E6A\",\"lastModified\":\"2019-04-03T16:09:20.9406058Z\",\"creationTime\":\"2019-04-03T16:09:20.9406058Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-03T16:09:20.9406058Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-03T16:10:47.6983993Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -513,16 +511,16 @@ "keep-alive" ], "client-request-id": [ - "71dd8b38-56eb-11e9-a335-44032c851686" + "573f0ab6-57f3-11e9-b6ce-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "Fri, 05 Apr 2019 22:37:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:JaLXL7IjomOsPZe6QxX5Kijmf6odogetR/M6+7wuIoA=" + "SharedKey sdktest2:6GIEQh+iZeSslPykRAljMhVuusSx/XeeX9h1sX5EQnA=" ] } }, @@ -532,41 +530,47 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA173AE74865" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:03 GMT" + "request-id": [ + "469c9ce7-d579-46de-a287-177933ab2883" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:05 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "e9d76446-1b2a-400c-96a8-d7739eb309e0" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:06 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:06:56.776976Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":40,\"totalTasksSucceeded\":40,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:06:56.269765Z\",\"endTime\":\"2019-04-04T15:06:56.749611Z\",\"exitCode\":0,\"failureInfo\":{\r\n \"category\":\"UserError\",\"code\":\"FileUploadContainerNotFound\",\"message\":\"One of the specified Azure container(s) was not found while attempting to upload an output file\",\"details\":[\r\n {\r\n \"name\":\"FilePath\",\"value\":\"/mnt/batch/tasks/workitems/ncj-ubuntu1404-1/job-1/myTask/stdout.txt\"\r\n },{\r\n \"name\":\"FilePattern\",\"value\":\"$AZ_BATCH_TASK_DIR/*.txt\"\r\n },{\r\n \"name\":\"FileDestination\",\"value\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A51%3A54Z&se=2019-04-11T15%3A06%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=dbXD2iR5k0JG7VEeoYuGLoskvkPQGeSQxgOtQV1BPvQ%3D\"\r\n }\r\n ]\r\n },\"result\":\"failure\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6BA173AE74865\",\"lastModified\":\"2019-04-05T22:37:05.4753893Z\",\"creationTime\":\"2019-04-05T22:37:05.3909578Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:05.4753893Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:05.4753893Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"ncj-ubuntu1404\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -580,76 +584,61 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "7263af1e-56eb-11e9-b209-44032c851686" + "575d9242-57f3-11e9-85a5-44032c851686" ], "accept-language": [ "en-US" ], - "return-client-request-id": [ - "false" + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:06 GMT" ], - "Content-Length": [ - "66" + "Authorization": [ + "SharedKey sdktest2:scoe9vo6+5MPHnS3JKR2+yzTDaoSNRez+EodBX2suEc=" ] } }, "response": { "status": { - "code": 201, - "message": "Created" + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "3078723a-5d3e-4853-9836-15edb8d6860b" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:05 GMT" + "DataServiceVersion": [ + "3.0" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Transfer-Encoding": [ + "chunked" ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "ETag": [ - "0x8D6B90F56BB5614" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:08:05 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "9654e771-cdc9-4263-b2c2-646be669dcc1" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:06 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"creationTime\":\"2019-04-05T22:37:06.1790639Z\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:06.1790639Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -663,20 +652,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "75549308-56eb-11e9-a528-44032c851686" + "5950e062-57f3-11e9-b0d1-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "481" + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:09 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:v0suwSYTi8S5+/gDhjP13/KI8wpJqO5LbmMBYsmk/8A=" ] } }, @@ -686,40 +672,40 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "c960fb74-3a7a-4669-a58b-3af27cbc77f5" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:10 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "ad13a521-b7e0-4e52-b189-9614a2c28adb" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:10 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"creationTime\":\"2019-04-05T22:37:06.1790639Z\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:07.362269Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:06.817528Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:06.817528Z\",\"endTime\":\"2019-04-05T22:37:07.362269Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -735,16 +721,16 @@ "keep-alive" ], "client-request-id": [ - "75b24824-56eb-11e9-bf5b-44032c851686" + "5998c3ee-57f3-11e9-b608-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:08:10 GMT" + "Fri, 05 Apr 2019 22:37:10 GMT" ], "Authorization": [ - "SharedKey sdktest2:7RhfSYAFko7eRL1uqvOTtpxWTm5AePUbaOHEhhBjkH8=" + "SharedKey sdktest2:PLd0UH7YWK8o9BXPTxa25wwrqvvAvfxn5zfgSx9SJWA=" ] } }, @@ -754,71 +740,65 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:08:10 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F56BB5614" + "0x8D6BA173B52A7AF" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "9a5de812-39c1-442f-8ffc-7a909926e1ae" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:08:05 GMT" + "Fri, 05 Apr 2019 22:37:06 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "39717bf3-8853-409d-ba34-18d65b5b850e" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:10 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6B90F56BB5614\",\"lastModified\":\"2019-04-04T15:08:05.0269716Z\",\"creationTime\":\"2019-04-04T15:08:05.0119435Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:08:05.0269716Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:05.0269716Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"creationTime\":\"2019-04-05T22:37:06.1790639Z\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:07.362269Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:06.817528Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:06.817528Z\",\"endTime\":\"2019-04-05T22:37:07.362269Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" ], "Connection": [ "keep-alive" ], - "client-request-id": [ - "75d4bf52-56eb-11e9-acc7-44032c851686" + "x-ms-version": [ + "2017-07-29" ], - "accept-language": [ - "en-US" + "x-ms-client-request-id": [ + "59c3cbd2-57f3-11e9-a203-44032c851686" ], - "ocp-date": [ - "Thu, 04 Apr 2019 15:08:10 GMT" + "x-ms-date": [ + "Fri, 05 Apr 2019 22:37:10 GMT" ], "Authorization": [ - "SharedKey sdktest2:78qrFP9pWatLX+anivdD4odYqSXX6SFbTNIp1+i1JLs=" + "SharedKey sdkteststore2:gevf9JcDz2z9tHq1VLr8BGCJib7HtIBzM7N+UxVlcAk=" ] } }, @@ -828,40 +808,31 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:08:10 GMT" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ - "application/json;odata=minimalmetadata" + "application/xml" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Date": [ + "Fri, 05 Apr 2019 22:37:10 GMT" ], - "request-id": [ - "216b5469-9bd1-4f28-8402-88839be85aa8" - ], - "DataServiceVersion": [ - "3.0" - ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"creationTime\":\"2019-04-04T15:08:10.2652016Z\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:08:10.2652016Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BFD4A0E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173C01909B394application/octet-streamq5CJBCU+RjEwwBnnq24YiQ==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF92AA00application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF50B2E5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -877,126 +848,52 @@ "keep-alive" ], "client-request-id": [ - "77c0899a-56eb-11e9-ae3d-44032c851686" + "59d1fc78-57f3-11e9-b45a-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "0" + ], "ocp-date": [ - "Thu, 04 Apr 2019 15:08:13 GMT" + "Fri, 05 Apr 2019 22:37:10 GMT" ], "Authorization": [ - "SharedKey sdktest2:43fzrYMtfvdZDI42lHU0DiKuT9/nBwbpXGM3As79d7o=" + "SharedKey sdktest2:/Mm0U4lbGUFvVrvGKLugjxyxvCFQJmbtxYSDzzbapQs=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:08:13 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], "request-id": [ - "6dda2c7c-4155-4317-8508-99ae90b1e9e4" + "25bcc8d7-985a-4466-af56-63ff183bbbba" ], "DataServiceVersion": [ "3.0" ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"creationTime\":\"2019-04-04T15:08:10.2652016Z\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:08:13.100927Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:08:12.529634Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:12.529634Z\",\"endTime\":\"2019-04-04T15:08:13.100927Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "77df5db0-56eb-11e9-b765-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Thu, 04 Apr 2019 15:08:13 GMT" + "Transfer-Encoding": [ + "chunked" ], - "Authorization": [ - "SharedKey sdktest2:H3c1oMjhL5UoC86hGok3aL2R9j23rIFf3quoxF0e/yc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Date": [ - "Thu, 04 Apr 2019 15:08:14 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "ETag": [ - "0x8D6B90F59DAA070" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:08:10 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "f27d5850-dc8d-4e14-b460-ad30dd816153" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:10 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6B90F59DAA070\",\"creationTime\":\"2019-04-04T15:08:10.2652016Z\",\"lastModified\":\"2019-04-04T15:08:10.2652016Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:08:13.100927Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:08:12.529634Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:12.529634Z\",\"endTime\":\"2019-04-04T15:08:13.100927Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" + "string": "" } } }, @@ -1016,13 +913,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a37171b4-56eb-11e9-91d7-44032c851686" + "59f2f202-57f3-11e9-9333-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Fri, 05 Apr 2019 22:37:10 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:+rAbe7nYv6P68rYaZyMUExaErCbt7caQWAB/tJJYst4=" + "SharedKey sdkteststore2:30bo/hM2NIv7M/x3krxu6Du+2m9x5liUAr+WYL2kHf8=" ] } }, @@ -1032,99 +929,31 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:26 GMT" - ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B81C57C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B85BDDF394application/octet-stream09ZeFrrEuTw+twvZivvJqg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B7E1B580application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:08:12 GMT0x8D6B90F5B7A4A145application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a37d2390-56eb-11e9-8348-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Content-Type": [ + "application/xml" ], - "Authorization": [ - "SharedKey sdktest2:QYWIr8j333PDYH1mirqbV1lggYMIPcNttYK9IAZgMYc=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { "Server": [ - "Microsoft-HTTPAPI/2.0" + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "9fc7314a-d126-4267-9fd4-526702fc79dd" + "Fri, 05 Apr 2019 22:37:10 GMT" ], - "DataServiceVersion": [ - "3.0" - ], - "X-Content-Type-Options": [ - "nosniff" + "x-ms-version": [ + "2017-07-29" ] }, "body": { - "string": "" + "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BFD4A0E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173C01909B394application/octet-streamq5CJBCU+RjEwwBnnq24YiQ==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF92AA00application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF50B2E5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", "body": null, "headers": { "User-Agent": [ @@ -1137,47 +966,50 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a3a21dde-56eb-11e9-9737-44032c851686" + "5a0122c6-57f3-11e9-ab39-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:I9zBpCVpKDBrypTTV4KPrfVnotvZJ1Bo7JHZnZZkTiI=" + "SharedKey sdkteststore2:YG22prPvprPAAm7I+fumrEEvRtIkN3cFVsF1qaGp3Oc=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Content-Type": [ - "application/xml" - ], - "Transfer-Encoding": [ - "chunked" + "Fri, 05 Apr 2019 22:37:10 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B81C57C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B85BDDF394application/octet-stream09ZeFrrEuTw+twvZivvJqg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:08:13 GMT0x8D6B90F5B7E1B580application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:08:12 GMT0x8D6B90F5B7A4A145application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "" } } }, { "request": { "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", "body": null, "headers": { "User-Agent": [ @@ -1190,13 +1022,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a3adb8f6-56eb-11e9-8f7b-44032c851686" + "5a09fc74-57f3-11e9-a6af-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Eb5v+EQmw51jE+UKHWE6ev2pW2BDpMF/hxayKWUREmY=" + "SharedKey sdkteststore2:dnGEKuVfqoOTCRAe08oWD/QhzsQ1M+OfzcAoElK1dJg=" ], "Content-Length": [ "0" @@ -1209,20 +1041,20 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:37:10 GMT" ], "x-ms-version": [ "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1233,7 +1065,7 @@ { "request": { "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", "body": null, "headers": { "User-Agent": [ @@ -1246,13 +1078,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a3b4a74c-56eb-11e9-a463-44032c851686" + "5a12d608-57f3-11e9-bf8f-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:DY24qBU2fvH8OoJMdqeeUvVH8Palt1VhQgoEH3NX1g0=" + "SharedKey sdkteststore2:Xg1x8JuSnW+gFP5wBBJnA6vdqIOAjDkasT++1LfTdk8=" ], "Content-Length": [ "0" @@ -1265,20 +1097,20 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "x-ms-version": [ "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1289,7 +1121,7 @@ { "request": { "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", "body": null, "headers": { "User-Agent": [ @@ -1302,13 +1134,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a3bbac14-56eb-11e9-85df-44032c851686" + "5a1be17e-57f3-11e9-b736-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:6jhD+KGSrHmX8fYdVhkMccmrReZYAorLO+2/+TKbAKs=" + "SharedKey sdkteststore2:2oboXg4A+B2q8brOzvS/IaCOkT4d6VTICFJFUgB/A14=" ], "Content-Length": [ "0" @@ -1321,20 +1153,20 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "x-ms-version": [ "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1344,89 +1176,33 @@ }, { "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" ], "Connection": [ "keep-alive" ], - "x-ms-version": [ - "2017-07-29" + "client-request-id": [ + "5a25091e-57f3-11e9-ad98-44032c851686" ], - "x-ms-client-request-id": [ - "a3c2a826-56eb-11e9-b682-44032c851686" + "accept-language": [ + "en-US" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Nrfm6MhNLtJl2SDxALk3ESn7DI1dL7yHov0VQepKqNY=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Content-Length": [ - "0" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a3c9c65e-56eb-11e9-b849-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:18c2Q4hx5CzxVcQ8Jb3Em8We+UtGtvhfK7WWFxRTW6o=" + "SharedKey sdktest2:zC7bVyg+I5+MFV6qfEBMk76q5Hn6OciZvwcKwKqezj8=" ] } }, @@ -1436,26 +1212,26 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "1e31624b-7894-4e14-949e-2bff2c6afdfb" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "149fd806-fd4f-4c7b-ae1c-322da74f31ce" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:11 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -1488,7 +1264,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "a3f5af78-56eb-11e9-965e-44032c851686" + "5a5f069e-57f3-11e9-8817-44032c851686" ], "accept-language": [ "en-US" @@ -1497,10 +1273,10 @@ "277" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:27 GMT" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdktest2:NnnVWiMg/XzZ1b0BqOi7N6LFl1z4J8w/DIX5Ouny6hM=" + "SharedKey sdktest2:U6l+k8zRCijLZ4NUHb2pfAm51bk2svSNHkVo1w5oks0=" ] } }, @@ -1510,33 +1286,33 @@ "message": "The specified pool already exists." }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "93fd87af-95a6-4075-80e2-fd74500abfc0" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:28 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Content-Length": [ + "334" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Length": [ - "334" - ], - "request-id": [ - "c5a5bceb-bcbe-4901-98fd-aaf01fe1e8eb" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:11 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:c5a5bceb-bcbe-4901-98fd-aaf01fe1e8eb\\nTime:2019-04-04T15:09:28.1550387Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:93fd87af-95a6-4075-80e2-fd74500abfc0\\nTime:2019-04-05T22:37:11.8381241Z\"\r\n }\r\n}" } } }, @@ -1559,16 +1335,16 @@ "keep-alive" ], "client-request-id": [ - "a4186f74-56eb-11e9-b9e4-44032c851686" + "5a89e70a-57f3-11e9-b3b0-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:28 GMT" + "Fri, 05 Apr 2019 22:37:11 GMT" ], "Authorization": [ - "SharedKey sdktest2:9I6ZgcApjXL9Rf/l24T2tSzY5qkhD8tS0+/nfAAkM+g=" + "SharedKey sdktest2:RT1VxgGIvVlAlY+SBf2bGyzjCr23cwJIDL0HoOBI+d0=" ] } }, @@ -1578,32 +1354,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:28 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ "0x8D6AE50BA1ADAC6" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "ef990633-aead-4b62-acd0-8d24e2371a75" ], "Last-Modified": [ "Thu, 21 Mar 2019 22:58:26 GMT" ], + "DataServiceVersion": [ + "3.0" + ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "1cfe42e7-5cc7-482b-8698-fc2f308e02b1" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:12 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -1633,16 +1409,16 @@ "keep-alive" ], "client-request-id": [ - "a4364906-56eb-11e9-83b8-44032c851686" + "5ab2a9f4-57f3-11e9-ab95-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:28 GMT" + "Fri, 05 Apr 2019 22:37:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:x5xDW475AbLAgAdvhmQ/sugDDibmnzaPyzl3XA0xQQQ=" + "SharedKey sdktest2:jBA1uVHZEMYiLM4FbPK7UyEVL1FnTpxAoVvgDjkGqdY=" ] } }, @@ -1652,33 +1428,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "237a5fa2-7e09-4e4e-8a58-a9f31c0e3f48" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:28 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "4233fd4f-9cd0-4d84-a360-e704d4ba547d" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:12 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:06:48.397872Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":72,\"totalTasksSucceeded\":72,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:06:47.754914Z\",\"endTime\":\"2019-04-04T15:06:48.366594Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:10:04.6424Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":74,\"totalTasksSucceeded\":74,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:04.055754Z\",\"endTime\":\"2019-04-04T15:10:04.611151Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -1701,13 +1477,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "a48b26a8-56eb-11e9-be66-44032c851686" + "5b1b0a06-57f3-11e9-9607-44032c851686" ], "accept-language": [ "en-US" @@ -1726,35 +1502,35 @@ "message": "Created" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA173F9EAAC3" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:29 GMT" + "request-id": [ + "97fd6fa9-1a63-4af2-9566-1b408d35cd0e" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:13 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "DataServiceId": [ "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "ETag": [ - "0x8D6B90F8900F868" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:29 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "9e169e26-7064-4c0f-9612-c4b3ec3432d0" + "Date": [ + "Fri, 05 Apr 2019 22:37:13 GMT" ], - "DataServiceVersion": [ - "3.0" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "X-Content-Type-Options": [ "nosniff" @@ -1769,7 +1545,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -1784,19 +1560,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "a4d10b5e-56eb-11e9-a9f1-44032c851686" + "5b77c022-57f3-11e9-b9dd-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "486" + "480" ] } }, @@ -1806,33 +1582,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "861aa538-8190-4db3-9344-1e47b0e71f09" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:29 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "e079cce7-0bfa-4e4c-b93a-9b936ae50cb8" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:14 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, @@ -1855,16 +1631,16 @@ "keep-alive" ], "client-request-id": [ - "a5256946-56eb-11e9-ac29-44032c851686" + "5c1d8c7a-57f3-11e9-a92c-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:29 GMT" + "Fri, 05 Apr 2019 22:37:14 GMT" ], "Authorization": [ - "SharedKey sdktest2:apE+BrygSCyz+XYUrl2S9OUoY5lRc5zNyoaVrPK5E1E=" + "SharedKey sdktest2:2hpzW+DPady1JA6qgkFnUgjMqjnASQEQM2rYSnGPgx4=" ] } }, @@ -1874,39 +1650,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:29 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F8900F868" + "0x8D6BA173F9EAAC3" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "2d97034b-1361-410f-8cc0-2965deb4c449" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:29 GMT" + "Fri, 05 Apr 2019 22:37:13 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "8fd5d5ec-22ee-44f1-8abd-2615d69d04e6" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:14 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6B90F8900F868\",\"lastModified\":\"2019-04-04T15:09:29.3694056Z\",\"creationTime\":\"2019-04-04T15:09:29.3563591Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:29.3694056Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:29.3694056Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6BA173F9EAAC3\",\"lastModified\":\"2019-04-05T22:37:13.3881027Z\",\"creationTime\":\"2019-04-05T22:37:13.3741185Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:13.3881027Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:13.3881027Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, @@ -1929,16 +1705,16 @@ "keep-alive" ], "client-request-id": [ - "a541db40-56eb-11e9-80e8-44032c851686" + "5c3b9ca4-57f3-11e9-b71a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:30 GMT" + "Fri, 05 Apr 2019 22:37:14 GMT" ], "Authorization": [ - "SharedKey sdktest2:IrOaPzxN5SvNnaPEbHkJs6z2WXThO2Gc3MP1TjkR+4I=" + "SharedKey sdktest2:b6vYKt4p4JpqxejVGDJPn4KbzIH6T2Wbja8WzoqDDfQ=" ] } }, @@ -1948,33 +1724,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "8bd4c9d2-009c-4956-8c7e-4522634d4d76" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:30 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "56a68c42-18ae-458d-9420-753436f5e0dc" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:14 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"creationTime\":\"2019-04-04T15:09:29.898083Z\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:30.535896Z\",\"previousState\":\"active\",\"previousStateTransitionTime\":\"2019-04-04T15:09:29.898083Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"creationTime\":\"2019-04-05T22:37:14.4236141Z\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:14.999001Z\",\"previousState\":\"active\",\"previousStateTransitionTime\":\"2019-04-05T22:37:14.4236141Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -1997,16 +1773,16 @@ "keep-alive" ], "client-request-id": [ - "a7356042-56eb-11e9-ac9a-44032c851686" + "5e28c4ca-57f3-11e9-9f80-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "Fri, 05 Apr 2019 22:37:17 GMT" ], "Authorization": [ - "SharedKey sdktest2:/JpBqfBsMbgIoJep67x9Af+kriqUhSOOTTOHElkApp4=" + "SharedKey sdktest2:MXa4ye6drS6dXTiYDY+foBaYluTEfSRqDakhzoZz8wk=" ] } }, @@ -2016,33 +1792,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "6b8696eb-9af5-4ab1-b61e-e4a6170ed81b" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "d15495e0-74df-4dcb-9fb5-c0763433d079" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:18 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"creationTime\":\"2019-04-04T15:09:29.898083Z\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:31.47929Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:30.807417Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:30.807417Z\",\"endTime\":\"2019-04-04T15:09:31.47929Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"creationTime\":\"2019-04-05T22:37:14.4236141Z\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:15.894316Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:15.30199Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:15.30199Z\",\"endTime\":\"2019-04-05T22:37:15.894316Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -2065,16 +1841,16 @@ "keep-alive" ], "client-request-id": [ - "a7579034-56eb-11e9-8338-44032c851686" + "5e581214-57f3-11e9-837d-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "Fri, 05 Apr 2019 22:37:18 GMT" ], "Authorization": [ - "SharedKey sdktest2:0vzPm7aOxxuySSxe4hddpJGR7SHz0VYMPsNbP2FWTHc=" + "SharedKey sdktest2:hra/ArfEB128G50E74BZIMC52DVUhLell6+kMTajJKQ=" ] } }, @@ -2084,39 +1860,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F8951A3DE" + "0x8D6BA17403CAC6D" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "c08328c2-4a5b-4a6f-96cc-bd918797cc0e" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:29 GMT" + "Fri, 05 Apr 2019 22:37:14 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "590905a0-5487-49d6-bede-c561704721a6" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:18 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6B90F8951A3DE\",\"creationTime\":\"2019-04-04T15:09:29.898083Z\",\"lastModified\":\"2019-04-04T15:09:29.898083Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:31.47929Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:30.807417Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-04T15%3A08%3A02Z&se=2019-04-05T15%3A08%3A02Z&sp=rw&sv=2017-07-29&sr=c&sig=Kv6K%2BACuxXWRDgjfQj/Yu%2Bwe0Pxgpvlmh9HsQJhG/%2B8%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:30.807417Z\",\"endTime\":\"2019-04-04T15:09:31.47929Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"creationTime\":\"2019-04-05T22:37:14.4236141Z\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:15.894316Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:15.30199Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:15.30199Z\",\"endTime\":\"2019-04-05T22:37:15.894316Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" } } }, @@ -2136,13 +1912,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a77bb186-56eb-11e9-8c1b-44032c851686" + "5e842b38-57f3-11e9-a1db-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "Fri, 05 Apr 2019 22:37:18 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:IQrrjKlUK/YsqWIyLALdc7w2PErQjPXBPaNHhvYY6lw=" + "SharedKey sdkteststore2:XJtDndfXXEH34I4QVdfy/pSyhKmIKXkCM1vuhlzNIIc=" ] } }, @@ -2152,24 +1928,24 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/xml" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:18 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A0C4F0A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A110AD0405application/octet-stream1zmWW59Nlz26LWsuqAh3hA==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A12438E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:09:31 GMT0x8D6B90F8A15032B4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740E932B80application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740EA9285405application/octet-streamE9THmMV6eEEIW5fkU9DQfg==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740EBCB3F0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740ED2B154application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -2192,7 +1968,7 @@ "keep-alive" ], "client-request-id": [ - "a786da24-56eb-11e9-9bce-44032c851686" + "5e8feb18-57f3-11e9-8fa2-44032c851686" ], "accept-language": [ "en-US" @@ -2201,10 +1977,10 @@ "0" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "Fri, 05 Apr 2019 22:37:18 GMT" ], "Authorization": [ - "SharedKey sdktest2:fXz7DEp95nA9bBndkotl0Y6DgfVnKxeO/kEz7R9KfdQ=" + "SharedKey sdktest2:p2HiQnMvbaBrv6MkGFQKXf6T3wan4fL8BHiITbIg73E=" ] } }, @@ -2214,23 +1990,23 @@ "message": "Accepted" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:34 GMT" + "request-id": [ + "934a7045-0364-4664-b8ef-bcfe0b98e907" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "c5b48d74-b750-4537-84e7-b2f0c4e389dc" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "DataServiceVersion": [ - "3.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:18 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -2257,13 +2033,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "a7a3f69c-56eb-11e9-9c8f-44032c851686" + "5eb10cae-57f3-11e9-8744-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:34 GMT" + "Fri, 05 Apr 2019 22:37:18 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:886QpSHO05FocW3fiXkRo8zb4W5Otgt5kdTAnpoG+rk=" + "SharedKey sdkteststore2:0bNYVoPGNdfoNYBzUsxBKEYwIZzq7gaACJ58H0bMKnY=" ] } }, @@ -2273,27 +2049,27 @@ "message": "The specified container does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "Content-Length": [ + "225" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerNotFound" ], - "Content-Length": [ - "225" + "Date": [ + "Fri, 05 Apr 2019 22:37:18 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerNotFoundThe specified container does not exist.\nRequestId:a20d8833-c01e-00b6-1ff8-ea6af8000000\nTime:2019-04-04T15:09:34.1549572Z" + "string": "\ufeffContainerNotFoundThe specified container does not exist.\nRequestId:b31cb981-001e-0023-5800-ec0bcb000000\nTime:2019-04-05T22:37:18.8705697Z" } } }, @@ -2316,16 +2092,16 @@ "keep-alive" ], "client-request-id": [ - "a7ab5ef0-56eb-11e9-a1bd-44032c851686" + "5ebaf758-57f3-11e9-9728-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:34 GMT" + "Fri, 05 Apr 2019 22:37:18 GMT" ], "Authorization": [ - "SharedKey sdktest2:SaIrXTPiMbsW0Hfucjg7ExEBgiFqZ+n1DgP9nNsq7gU=" + "SharedKey sdktest2:/gfqWdsZr18YzItX4w9h0jHDcEHR5j6JSRCicqQTjN4=" ] } }, @@ -2335,26 +2111,26 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "07fd894a-2aa9-4c70-9788-914efa868664" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:33 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "a8d3c5a6-069c-4862-b828-17d47103b849" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:18 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -2387,7 +2163,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "a7f66b22-56eb-11e9-a1f3-44032c851686" + "5ee5d90a-57f3-11e9-9016-44032c851686" ], "accept-language": [ "en-US" @@ -2396,10 +2172,10 @@ "250" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:34 GMT" + "Fri, 05 Apr 2019 22:37:19 GMT" ], "Authorization": [ - "SharedKey sdktest2:0XgkQY3wyc12WSCner538Ulo5IwUDEIWOLYCo9w92X0=" + "SharedKey sdktest2:jiQeu8uPOXwjZxYMFmMOjlpNxK2ykPqVxbZbFPeuTjM=" ] } }, @@ -2409,33 +2185,33 @@ "message": "The specified pool already exists." }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "26c08d88-735d-4f16-93a3-a1708de7ebab" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:34 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Content-Length": [ + "334" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Length": [ - "334" - ], - "request-id": [ - "03c948f2-9762-41ca-bf2d-e4a05469157d" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:19 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:03c948f2-9762-41ca-bf2d-e4a05469157d\\nTime:2019-04-04T15:09:34.9964821Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:26c08d88-735d-4f16-93a3-a1708de7ebab\\nTime:2019-04-05T22:37:19.4488585Z\"\r\n }\r\n}" } } }, @@ -2458,16 +2234,16 @@ "keep-alive" ], "client-request-id": [ - "a831a55a-56eb-11e9-b230-44032c851686" + "5f135174-57f3-11e9-b162-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:35 GMT" + "Fri, 05 Apr 2019 22:37:19 GMT" ], "Authorization": [ - "SharedKey sdktest2:Oj2kt1LE9U1Prp8uH040w/jgeWQfNy2tceKqXyxzJwg=" + "SharedKey sdktest2:2yseYLO7/zLrE9NE81cOHB0XjL1Enk10l1GosMKiEps=" ] } }, @@ -2477,32 +2253,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:34 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ "0x8D6B84EBB557E6A" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "41f81ee9-0764-4b88-90fa-7e068887facb" ], "Last-Modified": [ "Wed, 03 Apr 2019 16:09:20 GMT" ], + "DataServiceVersion": [ + "3.0" + ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "ed17bd01-6705-4c54-b52a-0c4f3175b657" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:19 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -2532,16 +2308,16 @@ "keep-alive" ], "client-request-id": [ - "a870d6e4-56eb-11e9-b68c-44032c851686" + "5f317992-57f3-11e9-a377-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:35 GMT" + "Fri, 05 Apr 2019 22:37:19 GMT" ], "Authorization": [ - "SharedKey sdktest2:nJPsEhkE7Twcuy7I6rR/hEUpDtQznHYKS45E4XfyZZk=" + "SharedKey sdktest2:WFp27FyRqxGO4aTHJz/KHtY5NX8i+kLGM2o6LncETz0=" ] } }, @@ -2551,33 +2327,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "af1a4fba-8238-4e47-bd7f-d143cc6913f9" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:35 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "6b798641-6681-428d-9bae-521d79199ebe" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:19 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:08:13.127925Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":41,\"totalTasksSucceeded\":41,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:08:12.529634Z\",\"endTime\":\"2019-04-04T15:08:13.100927Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-05T22:37:07.397589Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":43,\"totalTasksSucceeded\":43,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:06.817528Z\",\"endTime\":\"2019-04-05T22:37:07.362269Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -2600,13 +2376,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "a9d76606-56eb-11e9-b258-44032c851686" + "5f8565e2-57f3-11e9-a341-44032c851686" ], "accept-language": [ "en-US" @@ -2619,14 +2395,11 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:38 GMT" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Pragma": [ - "no-cache" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2634,11 +2407,17 @@ "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:21 GMT" ], "Vary": [ "Accept-Encoding" @@ -2646,9 +2425,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "686" ] @@ -2677,13 +2453,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "aa4bd7c8-56eb-11e9-8a47-44032c851686" + "60a5c7ec-57f3-11e9-afaa-44032c851686" ], "accept-language": [ "en-US" @@ -2699,29 +2475,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:38 GMT" - ], - "Pragma": [ - "no-cache" - ], "x-ms-ratelimit-remaining-subscription-writes": [ "1199" ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], "Content-Type": [ "application/json" ], "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:21 GMT" ], "Vary": [ "Accept-Encoding" @@ -2729,9 +2508,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "288" ] @@ -2757,13 +2533,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "aa8ec946-56eb-11e9-8550-44032c851686" + "60ea009a-57f3-11e9-999f-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:39 GMT" + "Fri, 05 Apr 2019 22:37:22 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:uEq4Pk9/mTPmRufU2AVBFnunhxMp/1FKXenTHsm2dI8=" + "SharedKey sdkteststore2:8EawBVR0O0PcL4neu/iYFjEe8HErjFry6xcBiX3ht+M=" ], "Content-Length": [ "0" @@ -2776,21 +2552,21 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:39 GMT" - ], "ETag": [ - "\"0x8D6B90F8F0703F7\"" + "\"0x8D6BA174533FD55\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:39 GMT" + "Fri, 05 Apr 2019 22:37:22 GMT" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:21 GMT" + ], "x-ms-version": [ "2017-07-29" ] @@ -2819,13 +2595,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "aad9f3cc-56eb-11e9-807e-44032c851686" + "610c8e64-57f3-11e9-a630-44032c851686" ], "accept-language": [ "en-US" @@ -2844,35 +2620,35 @@ "message": "Created" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1745D9BD83" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:40 GMT" + "request-id": [ + "0739b3fa-ee0c-4c4b-8e5e-6d95512eb090" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:23 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "DataServiceId": [ "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "ETag": [ - "0x8D6B90F8F779C7A" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:40 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "016b0454-fe8a-485b-9bce-1b32d005b4e2" + "Date": [ + "Fri, 05 Apr 2019 22:37:23 GMT" ], - "DataServiceVersion": [ - "3.0" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "X-Content-Type-Options": [ "nosniff" @@ -2887,7 +2663,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -2902,19 +2678,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "ab49a510-56eb-11e9-b205-44032c851686" + "61b24dc0-57f3-11e9-ba1c-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "473" + "469" ] } }, @@ -2924,33 +2700,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "779f8118-8777-4697-b828-f3870a842357" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:40 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "0f0da1f3-2b0a-40fe-b36f-d14eb808ed21" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:24 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, @@ -2973,16 +2749,16 @@ "keep-alive" ], "client-request-id": [ - "abb4bd9a-56eb-11e9-8e05-44032c851686" + "6242f678-57f3-11e9-a812-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:40 GMT" + "Fri, 05 Apr 2019 22:37:24 GMT" ], "Authorization": [ - "SharedKey sdktest2:ZIoBIiCJxOZJ7TK/SXtGHb8015nrHM7CoBPzrYEWm70=" + "SharedKey sdktest2:n2hGembRQktj/YKjWJG9wuSB1S5ipfxfTbFkOygpb8M=" ] } }, @@ -2992,39 +2768,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:41 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F8F779C7A" + "0x8D6BA1745D9BD83" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "4352fedb-9495-41a4-9313-466dc442ff69" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:40 GMT" + "Fri, 05 Apr 2019 22:37:23 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "3f3d2d69-cb50-425b-a561-806bf0e91457" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:25 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6B90F8F779C7A\",\"lastModified\":\"2019-04-04T15:09:40.2132602Z\",\"creationTime\":\"2019-04-04T15:09:40.1992634Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:40.2132602Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:40.2132602Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6BA1745D9BD83\",\"lastModified\":\"2019-04-05T22:37:23.8415747Z\",\"creationTime\":\"2019-04-05T22:37:23.8265755Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:23.8415747Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:23.8415747Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, @@ -3047,16 +2823,16 @@ "keep-alive" ], "client-request-id": [ - "abf483ee-56eb-11e9-b544-44032c851686" + "6265c062-57f3-11e9-b56a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:41 GMT" + "Fri, 05 Apr 2019 22:37:25 GMT" ], "Authorization": [ - "SharedKey sdktest2:Pr5jwXSuMzG5jBNRc6LRNbhVnVvhT4R3cDUzqu+x3ik=" + "SharedKey sdktest2:6h8GQyRTL442P5aVGCXy24GJ8/TP+SKY6mxFWOqrHvs=" ] } }, @@ -3066,33 +2842,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "b25785ae-8638-41c0-ba5d-791b414eb65e" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:41 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "8cdd91b4-df1a-4439-828f-1c4692084872" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:25 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"creationTime\":\"2019-04-04T15:09:40.8769095Z\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:09:40.8769095Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"creationTime\":\"2019-04-05T22:37:24.7203268Z\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:24.7203268Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -3115,16 +2891,16 @@ "keep-alive" ], "client-request-id": [ - "ae07053a-56eb-11e9-82e8-44032c851686" + "6459f9b4-57f3-11e9-b7b4-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:44 GMT" + "Fri, 05 Apr 2019 22:37:28 GMT" ], "Authorization": [ - "SharedKey sdktest2:TJzAO3KdMYcLJPhPj95SiUyTttc+aBxETEFq2A4NzEg=" + "SharedKey sdktest2:mwsPEs7BVOm1Q9iVVNdmbauZol0XjA5W3PlWLO8Tvug=" ] } }, @@ -3134,33 +2910,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "3efb4547-6faa-4590-aa8f-3d98ae80a8b9" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:45 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "758f4d5d-5851-48ad-ba6a-95a48e8f1bf5" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:28 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"creationTime\":\"2019-04-04T15:09:40.8769095Z\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:43.105634Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:42.537048Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:42.537048Z\",\"endTime\":\"2019-04-04T15:09:43.105634Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"creationTime\":\"2019-04-05T22:37:24.7203268Z\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:26.285009Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:25.785858Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:25.785858Z\",\"endTime\":\"2019-04-05T22:37:26.285009Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -3183,16 +2959,16 @@ "keep-alive" ], "client-request-id": [ - "ae507bec-56eb-11e9-9e24-44032c851686" + "6487e706-57f3-11e9-b8d2-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:45 GMT" + "Fri, 05 Apr 2019 22:37:28 GMT" ], "Authorization": [ - "SharedKey sdktest2:SqCWlVEkmA2wmeR8KcY2RGa23D/JXFMZ0wV6o63e27I=" + "SharedKey sdktest2:UR65sgQOF6/ltXDbWGC82cco0SGVoTUJPxMJ/hn1DTw=" ] } }, @@ -3202,39 +2978,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:45 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F8FDCE047" + "0x8D6BA17465FD3C4" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "da0f3d3e-2e3a-4f08-be35-ad22d14b04ba" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:09:40 GMT" + "Fri, 05 Apr 2019 22:37:24 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "9158c1a3-c5f0-41db-ba15-26519b835151" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:28 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6B90F8FDCE047\",\"creationTime\":\"2019-04-04T15:09:40.8769095Z\",\"lastModified\":\"2019-04-04T15:09:40.8769095Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:09:43.105634Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:09:42.537048Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A54%3A39Z&se=2019-04-11T15%3A09%3A39Z&sp=w&sv=2017-07-29&sr=c&sig=62az3%2BrrHre9yOKN/bXXYzwVTULqptJP1VY%2BdmY5Pyo%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:42.537048Z\",\"endTime\":\"2019-04-04T15:09:43.105634Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"creationTime\":\"2019-04-05T22:37:24.7203268Z\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:26.285009Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:25.785858Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:25.785858Z\",\"endTime\":\"2019-04-05T22:37:26.285009Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" } } }, @@ -3254,13 +3030,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "b38624c6-56eb-11e9-bdd5-44032c851686" + "64b40010-57f3-11e9-8cb5-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" + "Fri, 05 Apr 2019 22:37:28 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:9YnnHA7vHadVd6BlfvtC8DDKzRjQAUqfVuXhRoEVQWM=" + "SharedKey sdkteststore2:Nntpd1LlV8e0V43zQs3S0snLAIVmHRL3xIhHeBexLXs=" ] } }, @@ -3270,24 +3046,24 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:53 GMT" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/xml" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9127B35F0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F912B5D87400application/octet-streamTlzFVlFpmm4TCPHFJKNLJg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9123E21C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:09:42 GMT0x8D6B90F911EFF315application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747457D8A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747494EC9400application/octet-streamNCkp7BpxUe/Sf01fzS2msw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA174741D3590application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA17473DDB035application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -3310,7 +3086,7 @@ "keep-alive" ], "client-request-id": [ - "b3a7c13e-56eb-11e9-985f-44032c851686" + "64c194a2-57f3-11e9-9641-44032c851686" ], "accept-language": [ "en-US" @@ -3319,10 +3095,10 @@ "0" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "Authorization": [ - "SharedKey sdktest2:VbqJ2dEoIkrVMV2F2HvxmFT1iuk5NKH/7tWgyHDPRSY=" + "SharedKey sdktest2:uzxOh7c84OXhpLjjUPtdq65JEE0pwWjLObMq4iyqx/8=" ] } }, @@ -3332,23 +3108,23 @@ "message": "Accepted" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" + "request-id": [ + "52089649-5021-40cf-a3e5-540adebd46cd" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "d77072d5-a27c-47fb-907b-754725f61a52" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "DataServiceVersion": [ - "3.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:29 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -3375,13 +3151,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "b3e13436-56eb-11e9-9893-44032c851686" + "64e1519c-57f3-11e9-a7b6-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:T/CkTq+8JPmsEhYdN1+eLssaYeyhkesW4+iIQIVM4kQ=" + "SharedKey sdkteststore2:8HUk83O4/KFOZB4Z7Ar41VDGViWeicO2u7pXufnh1T8=" ] } }, @@ -3391,24 +3167,24 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/xml" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9127B35F0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F912B5D87400application/octet-streamTlzFVlFpmm4TCPHFJKNLJg==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:09:43 GMT0x8D6B90F9123E21C0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:09:42 GMT0x8D6B90F911EFF315application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747457D8A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747494EC9400application/octet-streamNCkp7BpxUe/Sf01fzS2msw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA174741D3590application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA17473DDB035application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -3428,13 +3204,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "b401db88-56eb-11e9-bb0d-44032c851686" + "64ee982c-57f3-11e9-a885-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:qolgfApApioo+V09kjgdmkXfKgdmEeUigFCGs7fkTKQ=" + "SharedKey sdkteststore2:zf6Dbqz8SdlFNGS/Hfbins+hATyRSmsvThJouwQkdm0=" ], "Content-Length": [ "0" @@ -3447,20 +3223,20 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "x-ms-version": [ "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3484,13 +3260,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "b421bf00-56eb-11e9-b865-44032c851686" + "64f74ab0-57f3-11e9-a603-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:13tGefP/+hvmtHn/frV2tL49RxTV5sCetTogeuR15yA=" + "SharedKey sdkteststore2:GYkDtwqHLG3hBpxd3yTYLZJbtCXYdZM71G0Tvkz4EoY=" ], "Content-Length": [ "0" @@ -3503,20 +3279,20 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:54 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "x-ms-version": [ "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3540,13 +3316,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "b43dfc70-56eb-11e9-a8cf-44032c851686" + "64ff87f0-57f3-11e9-b966-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kB6fsphI74tyRvvrKJGMj+m3o1hO4OeZ3FNmDihyFVQ=" + "SharedKey sdkteststore2:Gfks22U4TRlU5d04FHkByALaNmnyuj6FJ93hA9jclhA=" ], "Content-Length": [ "0" @@ -3559,20 +3335,20 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "x-ms-version": [ "2017-07-29" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3596,13 +3372,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "b458fe34-56eb-11e9-a3ad-44032c851686" + "65081386-57f3-11e9-9b92-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" + "Fri, 05 Apr 2019 22:37:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Iqe/IFnDf0HXigSyug79e9zQ03ltJGZFC2MNsRi0k68=" + "SharedKey sdkteststore2:Kd3xgmRxwPsZsAnE87gyVLrGPC6A+iTJAh6wwhio2RM=" ], "Content-Length": [ "0" @@ -3615,31 +3391,830 @@ "message": "Accepted" }, "headers": { + "x-ms-delete-type-permanent": [ + "true" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" + "Date": [ + "Fri, 05 Apr 2019 22:37:29 GMT" + ], + "x-ms-version": [ + "2017-07-29" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "6511895c-57f3-11e9-b6f5-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:29 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:d43O2nI3p74upxpLn1EAuM8l8LuHXO2TG/XbNSI3sps=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "request-id": [ + "39582c71-f98d-49fe-bead-64083295d310" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:29 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "65467c00-57f3-11e9-be83-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "277" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:29 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:1ckhEcnUKLZJILtfZqVIGmftc7wICDBaFdAeocH1tXs=" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified pool already exists." + }, + "headers": { + "request-id": [ + "9afd5515-bcc5-4837-a18e-5aaceb9a85df" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Length": [ + "334" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:30 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:9afd5515-bcc5-4837-a18e-5aaceb9a85df\\nTime:2019-04-05T22:37:30.0858605Z\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "656bb868-57f3-11e9-9585-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:30 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:knkfiDLSgRtFGdlQpskcWaZLOnzZmHBr/KdW3wTxmD8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6AE50BA1ADAC6" + ], + "request-id": [ + "c83fb442-5a67-4ca9-a3f5-9661d92c995c" + ], + "Last-Modified": [ + "Thu, 21 Mar 2019 22:58:26 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:30 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6AE50BA1ADAC6\",\"lastModified\":\"2019-03-21T22:58:26.2442694Z\",\"creationTime\":\"2019-03-19T17:19:57.2061915Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-03-19T17:19:57.2061915Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-03-21T22:59:46.7342494Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":2,\"targetDedicatedNodes\":2,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "658b7440-57f3-11e9-a42a-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:30 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:t7EfmJwuy92w3CwkAAICJMaVs2c1KNlKSDmQeTfOgWA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "request-id": [ + "8ae89b2c-49e2-4f9d-b73a-cc6560980ffe" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:30 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-05T22:37:15.925574Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":75,\"totalTasksSucceeded\":75,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:15.30199Z\",\"endTime\":\"2019-04-05T22:37:15.894316Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "65ff92c8-57f3-11e9-89f6-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "no-cache" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:31 GMT" + ], + "Vary": [ + "Accept-Encoding" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "664b1aae-57f3-11e9-97c6-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json" + ], + "Cache-Control": [ + "no-cache" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:31 GMT" + ], + "Vary": [ + "Accept-Encoding" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "66705602-57f3-11e9-aa93-44032c851686" + ], + "x-ms-date": [ + "Fri, 05 Apr 2019 22:37:31 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:CiDzFAqYNoAVvrXq+2bL1jGDq4Y657Izhu5gnQl3CNM=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:31 GMT" + ], + "x-ms-version": [ + "2017-07-29" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:2fed15a0-001e-006c-5600-eccfd3000000\nTime:2019-04-05T22:37:32.0044926Z" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-windows-2012-r2-1\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "668f2886-57f3-11e9-be15-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "78" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BA174B03955C" + ], + "request-id": [ + "dd31a461-6897-454a-8f52-e94980dd80e0" + ], + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "66db9ad2-57f3-11e9-b8c6-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "474" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "request-id": [ + "c99feb2a-2ab9-4a72-9f52-798d4d09aaf4" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "67160bcc-57f3-11e9-9b6c-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:E0rgcu/3mMy6qcx7emkorMHqR8I7GTBe5pE4x9MurlM=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BA174B03955C" + ], + "request-id": [ + "58b74d0a-d34e-4bcc-bcda-260f18923360" + ], + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6BA174B03955C\",\"lastModified\":\"2019-04-05T22:37:32.504406Z\",\"creationTime\":\"2019-04-05T22:37:32.4884287Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:32.504406Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:32.504406Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "6737eb9c-57f3-11e9-8e42-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:37:33 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:0cJrFJ0uKsMrNFWO+I4BS2wYKXUwQYp7lrNv3qISnfA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "request-id": [ + "86605fe6-47d8-4d11-b930-d467f53fa9f6" + ], + "DataServiceVersion": [ + "3.0" ], - "Content-Length": [ - "0" + "Transfer-Encoding": [ + "chunked" ], - "x-ms-version": [ - "2017-07-29" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "x-ms-delete-type-permanent": [ - "true" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:37:33 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"creationTime\":\"2019-04-05T22:37:32.8640664Z\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:32.8640664Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -3655,16 +4230,16 @@ "keep-alive" ], "client-request-id": [ - "b478f9e4-56eb-11e9-b1ac-44032c851686" + "69367a80-57f3-11e9-9f2a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" + "Fri, 05 Apr 2019 22:37:36 GMT" ], "Authorization": [ - "SharedKey sdktest2:mW7YmVn/9bfWjJVL0F3DDk4n1eX6QJ6elWM47YKvlBc=" + "SharedKey sdktest2:992/GfETjO1M8bCjKGcQZ73NnzMaRt/GcChnBM94Iss=" ] } }, @@ -3674,41 +4249,41 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "0f6107ae-b8b2-48e2-899e-a626345ac2ce" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:55 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "7f9b66a4-95a9-4bcf-ad86-e6cf4573dea9" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:36 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"creationTime\":\"2019-04-05T22:37:32.8640664Z\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:35.905629Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:35.343149Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:35.343149Z\",\"endTime\":\"2019-04-05T22:37:35.905629Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", - "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -3722,66 +4297,119 @@ "Connection": [ "keep-alive" ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "b4ea7600-56eb-11e9-9c7d-44032c851686" + "69615b0a-57f3-11e9-ae74-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "277" - ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:56 GMT" + "Fri, 05 Apr 2019 22:37:36 GMT" ], "Authorization": [ - "SharedKey sdktest2:0VR+UgRTyiZk0fI+V7kFI+Cu1dlDUzSBrZiwso+PmPk=" + "SharedKey sdktest2:vUNnWPbGB4btH7JfHzAjrJJ1eUO/Q8mhE7PUgOFVh0o=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified pool already exists." + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA174B3A7698" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:56 GMT" + "request-id": [ + "8ce6a786-74af-471f-9a53-14991a7987e1" + ], + "Last-Modified": [ + "Fri, 05 Apr 2019 22:37:32 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Length": [ - "334" - ], - "request-id": [ - "da379b76-6e43-4224-8e40-98a07e63550a" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:37:36 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:da379b76-6e43-4224-8e40-98a07e63550a\\nTime:2019-04-04T15:09:56.7400082Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"creationTime\":\"2019-04-05T22:37:32.8640664Z\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:35.905629Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:35.343149Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:35.343149Z\",\"endTime\":\"2019-04-05T22:37:35.905629Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "698536c8-57f3-11e9-84c6-44032c851686" + ], + "x-ms-date": [ + "Fri, 05 Apr 2019 22:38:09 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Q5nEGHgBYMLFDsvx7fr/qyOnx4ivXEaMmE7rD+8yjwI=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Transfer-Encoding": [ + "chunked" + ], + "Content-Type": [ + "application/xml" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:09 GMT" + ], + "x-ms-version": [ + "2017-07-29" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CD6C5240application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CD824EC411application/octet-streamf7PAVMLcaivA5/jnq2zl5w==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CD936970application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CDA96634application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -3797,66 +4425,60 @@ "keep-alive" ], "client-request-id": [ - "b526cd28-56eb-11e9-a8f2-44032c851686" + "7ce6331a-57f3-11e9-9949-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "0" + ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:56 GMT" + "Fri, 05 Apr 2019 22:38:09 GMT" ], "Authorization": [ - "SharedKey sdktest2:5PNZPAZCQ5U8DV4mFToZBOieVLKE+djAK4XoJCrTwiU=" + "SharedKey sdktest2:k+Q7NcSCqNzPNmymBV8J731OOYMbG0pn/l7O5peKDS4=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "abac5296-006b-42cc-b27c-cab806c3d6c7" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:57 GMT" + "DataServiceVersion": [ + "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Transfer-Encoding": [ + "chunked" ], - "ETag": [ - "0x8D6AE50BA1ADAC6" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 21 Mar 2019 22:58:26 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "09ac7a7c-4a8a-46a4-a049-82192f3bae1c" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:38:09 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6AE50BA1ADAC6\",\"lastModified\":\"2019-03-21T22:58:26.2442694Z\",\"creationTime\":\"2019-03-19T17:19:57.2061915Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-03-19T17:19:57.2061915Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-03-21T22:59:46.7342494Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":2,\"targetDedicatedNodes\":2,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", - "body": null, + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-08-01.7.0", + "body": "{\"id\": \"blobsource\", \"displayName\": \"Blender Ubuntu standard pool\", \"vmSize\": \"Standard_D1_v2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1, \"targetLowPriorityNodes\": 0, \"enableAutoScale\": false, \"startTask\": {\"commandLine\": \"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\", \"resourceFiles\": [{\"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\", \"filePath\": \"setup-linux-pool.sh\"}], \"userIdentity\": {\"autoUser\": {\"scope\": \"pool\", \"elevationLevel\": \"admin\"}}, \"maxTaskRetryCount\": 0, \"waitForSuccess\": true}}", "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -3870,64 +4492,79 @@ "Connection": [ "keep-alive" ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], "client-request-id": [ - "b5634a68-56eb-11e9-8c88-44032c851686" + "7de82836-57f3-11e9-900a-44032c851686" ], "accept-language": [ "en-US" ], + "Content-Length": [ + "759" + ], "ocp-date": [ - "Thu, 04 Apr 2019 15:09:57 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" ], "Authorization": [ - "SharedKey sdktest2:Cb/lm4mTI2vTlHJuh5aSZ/Epa8hvEMHqXjwv5tACtgE=" + "SharedKey sdktest2:DfziTppHB0BLrq0wqzc8nYk4vUUbOEGUaXtncBoghgw=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:09:57 GMT" + "request-id": [ + "064f5a6c-2206-4499-b1be-2d3a90de4091" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "4f761494-4a70-4c5f-8de0-914008a3a58a" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:09:31.510542Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":73,\"totalTasksSucceeded\":73,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:30.807417Z\",\"endTime\":\"2019-04-04T15:09:31.47929Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" + "string": "" } } }, { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -3938,17 +4575,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "b6ea7662-56eb-11e9-b255-44032c851686" + "client-request-id": [ + "7e4bab66-57f3-11e9-aa2e-44032c851686" ], "accept-language": [ "en-US" + ], + "ocp-date": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:WS7ztzW/AFMgC4AytfeaKkJnbPcAcAipjc7VcR/yuNc=" ] } }, @@ -3958,53 +4595,50 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:00 GMT" + "request-id": [ + "9d362bf3-1c49-469e-a683-a61343590684" ], - "Pragma": [ - "no-cache" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ - "application/json; charset=utf-8" + "application/json;odata=minimalmetadata" ], - "Cache-Control": [ - "no-cache" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "Vary": [ - "Accept-Encoding" - ], + "Date": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], "X-Content-Type-Options": [ "nosniff" - ], - "Expires": [ - "-1" - ], - "content-length": [ - "686" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -4015,20 +4649,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "b749fde4-56eb-11e9-8108-44032c851686" + "client-request-id": [ + "803697fa-57f3-11e9-a20b-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "0" + "ocp-date": [ + "Fri, 05 Apr 2019 22:38:15 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:OuAgzCgwC5ZcGCzF12tD90ZC7VQy8wZ+3EpVVZ26SIs=" ] } }, @@ -4038,112 +4669,121 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:00 GMT" + "request-id": [ + "a2082f56-a167-4e14-98bc-e633954f61a7" ], - "Pragma": [ - "no-cache" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ - "application/json" + "application/json;odata=minimalmetadata" ], - "Cache-Control": [ - "no-cache" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "Vary": [ - "Accept-Encoding" + "Date": [ + "Fri, 05 Apr 2019 22:38:15 GMT" ], "X-Content-Type-Options": [ "nosniff" - ], - "Expires": [ - "-1" - ], - "content-length": [ - "288" ] }, "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" ], "Connection": [ "keep-alive" ], - "x-ms-version": [ - "2017-07-29" + "client-request-id": [ + "82214cca-57f3-11e9-a1a8-44032c851686" ], - "x-ms-client-request-id": [ - "b79b14f8-56eb-11e9-a678-44032c851686" + "accept-language": [ + "en-US" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:10:00 GMT" + "ocp-date": [ + "Fri, 05 Apr 2019 22:38:18 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:cowHAkEuTykH7tvS8bvzhs3gDe8C6jV4LYr4OUlxyl4=" - ], - "Content-Length": [ - "0" + "SharedKey sdktest2:9yj2H3iUr1Y2IGdjOcviSj/ywQJzvDJN6dZfpN+F22w=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:00 GMT" + "request-id": [ + "9bf01c8e-5d9c-46ac-a0b7-bd3d898c3e9a" + ], + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ - "application/xml" + "application/json;odata=minimalmetadata" ], - "x-ms-error-code": [ - "ContainerAlreadyExists" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Content-Length": [ - "230" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "x-ms-version": [ - "2017-07-29" + "Date": [ + "Fri, 05 Apr 2019 22:38:18 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:63dfaf2f-901e-0004-47f8-ea9182000000\nTime:2019-04-04T15:10:01.3588109Z" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"ncj-windows-2012-r2-1\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -4157,76 +4797,67 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "b7e7b58a-56eb-11e9-834d-44032c851686" + "840c0f40-57f3-11e9-8c19-44032c851686" ], "accept-language": [ "en-US" ], - "return-client-request-id": [ - "false" + "ocp-date": [ + "Fri, 05 Apr 2019 22:38:21 GMT" ], - "Content-Length": [ - "78" + "Authorization": [ + "SharedKey sdktest2:9s5DYiQ8OsAsa94Lzf0SbhXfBfvIK/DC4Tew0iOfASI=" ] } }, "response": { "status": { - "code": 201, - "message": "Created" + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:02 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], "ETag": [ - "0x8D6B90F9C7736EB" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "f092f76f-81af-4c1e-b44e-02a464036a5d" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:02 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "449d2b55-9b91-4c61-88c5-0247aee2bfa0" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:21 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -4240,20 +4871,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "b84bedb8-56eb-11e9-9cc5-44032c851686" + "85fafa00-57f3-11e9-bd26-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "478" + "ocp-date": [ + "Fri, 05 Apr 2019 22:38:24 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:fdZdQqLvJKox4dxTDDP3evDfIm5p/cgYp3UP2Im5V9w=" ] } }, @@ -4263,40 +4891,46 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:02 GMT" + "request-id": [ + "3e2cc08f-6786-41f4-a496-d85cf8aae599" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "97f680a9-dd37-4290-b53f-e68f4c079ff1" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:24 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -4312,16 +4946,16 @@ "keep-alive" ], "client-request-id": [ - "b89f713e-56eb-11e9-8a1c-44032c851686" + "87e83d86-57f3-11e9-9d34-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:02 GMT" + "Fri, 05 Apr 2019 22:38:28 GMT" ], "Authorization": [ - "SharedKey sdktest2:p6+dfYTdVR20eOvcTZ3AjYlPsd0Dx6cTy52CTQKuKbU=" + "SharedKey sdktest2:4dIo4vUcwr/uSOmvLrq93ZQ5dEI+g4SbYCwe/VEOu6U=" ] } }, @@ -4331,46 +4965,46 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:02 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F9C7736EB" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "0e8f37fe-8134-45d5-be9d-236aeae95e01" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:02 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "277bdaef-6d64-4a93-92c7-72be80e0988c" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:28 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6B90F9C7736EB\",\"lastModified\":\"2019-04-04T15:10:02.0210411Z\",\"creationTime\":\"2019-04-04T15:10:02.0050541Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:02.0210411Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:02.0210411Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -4386,16 +5020,16 @@ "keep-alive" ], "client-request-id": [ - "b8e2339e-56eb-11e9-8752-44032c851686" + "89d52d3e-57f3-11e9-8798-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:03 GMT" + "Fri, 05 Apr 2019 22:38:31 GMT" ], "Authorization": [ - "SharedKey sdktest2:kqJDhzWbzD7/aEvzf+k/XHajfTynYbyaOZ06gsIB3/Y=" + "SharedKey sdktest2:pLCSgFsH2E4Oo8fFrF330IU9xVVW6DyjHOa4N/DkVSA=" ] } }, @@ -4405,40 +5039,46 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:02 GMT" + "request-id": [ + "4aef08a7-9814-40c6-8a5c-8699c389b83c" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "497375cc-4d19-4f35-a8d6-bc49dda05f39" + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:38:31 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"creationTime\":\"2019-04-04T15:10:02.5501564Z\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:02.5501564Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -4454,16 +5094,16 @@ "keep-alive" ], "client-request-id": [ - "baf6a454-56eb-11e9-b41b-44032c851686" + "8bc388c0-57f3-11e9-a435-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:06 GMT" + "Fri, 05 Apr 2019 22:38:34 GMT" ], "Authorization": [ - "SharedKey sdktest2:VAkJNng7A4o8unO7tbl2dAvAoScnZUKaqIxzk8ATEig=" + "SharedKey sdktest2:ccAHcmVtDCb6Eh8t6YE62dkt7EFXM2otiKjWJvMYBRs=" ] } }, @@ -4473,40 +5113,46 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:06 GMT" + "request-id": [ + "73a461c3-f748-4c91-822f-87edf5633c9f" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "b2205ec2-323f-4ca6-b710-8aaf964b5d04" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:34 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"creationTime\":\"2019-04-04T15:10:02.5501564Z\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:10:04.611151Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:10:04.055754Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:04.055754Z\",\"endTime\":\"2019-04-04T15:10:04.611151Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask?api-version=2018-12-01.8.0", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -4522,16 +5168,16 @@ "keep-alive" ], "client-request-id": [ - "bb471112-56eb-11e9-ba08-44032c851686" + "8db4c266-57f3-11e9-9e04-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:07 GMT" + "Fri, 05 Apr 2019 22:38:37 GMT" ], "Authorization": [ - "SharedKey sdktest2:7SdYTlauDmwQUPJvPuW8mtSZoM7MppgFftAns4cMIXE=" + "SharedKey sdktest2:2Fzfs+XfS4SpQ6RPTdAzF23wegBUtx2+3VokyTLLEN0=" ] } }, @@ -4541,65 +5187,71 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:07 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90F9CC7F37C" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "85ca610e-114e-472c-af0b-47358b0989f9" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:02 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "9001ec8d-0aed-4d75-9bca-95162a788e1d" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:37 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6B90F9CC7F37C\",\"creationTime\":\"2019-04-04T15:10:02.5501564Z\",\"lastModified\":\"2019-04-04T15:10:02.5501564Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-04T15:10:04.611151Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-04T15:10:04.055754Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A55%3A01Z&se=2019-04-11T15%3A10%3A01Z&sp=w&sv=2017-07-29&sr=c&sig=bJI%2BWJPjBR/DjxSKKHD7BYSUuVg3x54kMa3%2BHYGo9Ss%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:04.055754Z\",\"endTime\":\"2019-04-04T15:10:04.611151Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" ], "Connection": [ "keep-alive" ], - "x-ms-version": [ - "2017-07-29" + "client-request-id": [ + "8fa47bfe-57f3-11e9-9e63-44032c851686" ], - "x-ms-client-request-id": [ - "cfb69d50-56eb-11e9-a8f8-44032c851686" + "accept-language": [ + "en-US" ], - "x-ms-date": [ - "Thu, 04 Apr 2019 15:10:41 GMT" + "ocp-date": [ + "Fri, 05 Apr 2019 22:38:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:/YRProStARYUg/2+2y8PI7+yO4sKXX2ITBA00RM9EXo=" + "SharedKey sdktest2:NVcVfQb44m3CqyclpWjIXiLy2S4DcKTTHNOlkKyxaUE=" ] } }, @@ -4609,31 +5261,46 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:41 GMT" + "request-id": [ + "84bc352e-0cc9-4ef8-aeaf-b649c3c57c94" ], - "Content-Type": [ - "application/xml" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "x-ms-version": [ - "2017-07-29" + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:41 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" ] }, "body": { - "string": "\ufefffileuploaderr.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD0DC350application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD214EA411application/octet-streamOJCm4+HSfzhBM8Yf6E4NLw==BlockBlobHottrueunlockedavailabletruestderr.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD374BB0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtThu, 04 Apr 2019 15:10:04 GMT0x8D6B90F9DD4AD704application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ @@ -4649,60 +5316,66 @@ "keep-alive" ], "client-request-id": [ - "cfd77e00-56eb-11e9-b777-44032c851686" + "9192ac0a-57f3-11e9-a894-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "0" - ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:41 GMT" + "Fri, 05 Apr 2019 22:38:44 GMT" ], "Authorization": [ - "SharedKey sdktest2:T8th33iQun8RsdlLlNHgqg9LqGCt444tmtpRsiDPaNg=" + "SharedKey sdktest2:P8xCFJoZHPBfYP7M+DqKAt9qd4Egee+UEdp2oxAGtJo=" ] } }, "response": { "status": { - "code": 202, - "message": "Accepted" + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:10:41 GMT" + "request-id": [ + "813076c5-5f92-44b2-821f-b9aab837997a" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "9de38146-d926-4b6c-90d0-60dc1ca93032" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:44 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-08-01.7.0", - "body": "{\"id\": \"blobsource\", \"displayName\": \"Blender Ubuntu standard pool\", \"vmSize\": \"Standard_D1_v2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1, \"targetLowPriorityNodes\": 0, \"enableAutoScale\": false, \"startTask\": {\"commandLine\": \"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\", \"resourceFiles\": [{\"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\", \"filePath\": \"setup-linux-pool.sh\"}], \"userIdentity\": {\"autoUser\": {\"scope\": \"pool\", \"elevationLevel\": \"admin\"}}, \"maxTaskRetryCount\": 0, \"waitForSuccess\": true}}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -4716,68 +5389,59 @@ "Connection": [ "keep-alive" ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "d13968c6-56eb-11e9-a555-44032c851686" + "937fc598-57f3-11e9-aaa4-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "759" - ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:43 GMT" + "Fri, 05 Apr 2019 22:38:47 GMT" ], "Authorization": [ - "SharedKey sdktest2:KkJrW935W5bP0ChaUaGSkbmp5B8ndARtPHmQY5Q+bOk=" + "SharedKey sdktest2:hAI1aOM4KmKF3KJggyBD4Mr+sQioGE6TmxtR7ASPVC8=" ] } }, "response": { "status": { - "code": 201, - "message": "Created" + "code": 200, + "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:44 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "d3b3d3c4-faad-44db-a978-7da159c0a7a5" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "0fda8d2f-13c9-47f3-8340-6a005a4a335d" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:47 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4800,16 +5464,16 @@ "keep-alive" ], "client-request-id": [ - "d1a03138-56eb-11e9-ad2b-44032c851686" + "956bc9de-57f3-11e9-9bcd-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:50 GMT" ], "Authorization": [ - "SharedKey sdktest2:/j5nLWqt79XVhfO8BGe94p9bZjehOqGh74wg7aOuwQg=" + "SharedKey sdktest2:mYwDwWn+9gy8ISOoSGMeejzgnlhPokl+lYxYKTHmIo4=" ] } }, @@ -4819,39 +5483,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:44 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "b9510487-62f8-48e4-90c3-8fa3068d7915" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "422b20ca-7d0a-40bf-aea0-7810defe6653" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:50 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4874,16 +5538,16 @@ "keep-alive" ], "client-request-id": [ - "d3b27a9e-56eb-11e9-a798-44032c851686" + "975732f4-57f3-11e9-98ea-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:48 GMT" + "Fri, 05 Apr 2019 22:38:53 GMT" ], "Authorization": [ - "SharedKey sdktest2:6S2IWjHc+dl00J2NOlJ0UQjWT/W1hbNyUzlbBII7NYE=" + "SharedKey sdktest2:F7YBu9Ghk6xI86HyoavLpbvIQ7mmMX7d52Jp0v1Lk0w=" ] } }, @@ -4893,39 +5557,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:48 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "f869649f-3993-4961-9ed5-6bc0a1332489" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "27bdbf5d-1512-4b50-b2ab-4be9edf3e058" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:38:54 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4948,16 +5612,16 @@ "keep-alive" ], "client-request-id": [ - "d5cb6110-56eb-11e9-b960-44032c851686" + "9944d1e8-57f3-11e9-aa66-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:51 GMT" + "Fri, 05 Apr 2019 22:38:57 GMT" ], "Authorization": [ - "SharedKey sdktest2:bhNlF5/qRSnzrO/XDKpTnueCIgORLuPDTNvk12oE16I=" + "SharedKey sdktest2:THEMUHtqsvwLpuxzQDPTespVJbXTn6zmK83uLNCSPEA=" ] } }, @@ -4967,39 +5631,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:51 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "39202d2d-7003-4c1f-95aa-83deb239e7bd" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "8907dbe5-d8fe-48ea-a3e6-20e3b5858ccf" + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:38:57 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5022,16 +5686,16 @@ "keep-alive" ], "client-request-id": [ - "d7e3ec82-56eb-11e9-9c84-44032c851686" + "9b310cda-57f3-11e9-ac96-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:55 GMT" + "Fri, 05 Apr 2019 22:39:00 GMT" ], "Authorization": [ - "SharedKey sdktest2:dHxrbgJkwk8vQh24FF4v5sMPIv1xsvKhTCGTjg11oXU=" + "SharedKey sdktest2:jE0yNj1Fpj65F/90HogTh9IVnLS6hDI68EXaB0FILwM=" ] } }, @@ -5041,39 +5705,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:55 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "bf42a4ee-6839-4555-827f-65b9edd4106f" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "30e261a3-9c24-4edb-985f-ae79c4c09e64" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:00 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5096,16 +5760,16 @@ "keep-alive" ], "client-request-id": [ - "d9f6bf36-56eb-11e9-9c53-44032c851686" + "9d226b2e-57f3-11e9-abeb-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:10:58 GMT" + "Fri, 05 Apr 2019 22:39:03 GMT" ], "Authorization": [ - "SharedKey sdktest2:WxY94iQlDTSyBtJ9bMdKmhil1R1/gjYrkLT2QSs68tM=" + "SharedKey sdktest2:ntW+7O9sMtrqtWC+WSmEJxM6JcOh7VnGQ8FjJuyn/DA=" ] } }, @@ -5115,39 +5779,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:10:58 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "ecea2427-250f-4228-9ee5-fd2e14231ea2" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "8dedabb0-535f-4464-b3c4-f10cdd1b02be" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:03 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5170,16 +5834,16 @@ "keep-alive" ], "client-request-id": [ - "dc0d754a-56eb-11e9-95f0-44032c851686" + "9f0fbfd8-57f3-11e9-b70c-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:02 GMT" + "Fri, 05 Apr 2019 22:39:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:FgezyNlxDC19hBcQLSfMq2piIlmPeb2LcJxXwFR5v2g=" + "SharedKey sdktest2:nMlSsvGgubhl6+pbgKjQAfjn0Gbv0BSgUrCeMN5tcXY=" ] } }, @@ -5189,39 +5853,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:02 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "9c9bf1e2-812d-409a-a15f-59db079af9ef" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "443aaa64-39c2-4224-8aff-5415aeed7256" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:06 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5244,16 +5908,16 @@ "keep-alive" ], "client-request-id": [ - "de1fbafa-56eb-11e9-9e03-44032c851686" + "a0f98fb4-57f3-11e9-8e4e-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:05 GMT" + "Fri, 05 Apr 2019 22:39:10 GMT" ], "Authorization": [ - "SharedKey sdktest2:jU2o/JBWymRfaqz4IVVlf88CDAOpMrGvBTPxmdRKJPA=" + "SharedKey sdktest2:RKSbHxGd/cAyLUE7g3A+/PcWsb2my0aTTgTkrs6Fny0=" ] } }, @@ -5263,39 +5927,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:05 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "98632ce7-83e8-4778-88bc-6b0c2d0066a3" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "a6582a7c-7212-4a00-8ede-9ddb9e447b27" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:10 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5318,16 +5982,16 @@ "keep-alive" ], "client-request-id": [ - "e035e19e-56eb-11e9-b667-44032c851686" + "a2efc100-57f3-11e9-9820-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:09 GMT" + "Fri, 05 Apr 2019 22:39:13 GMT" ], "Authorization": [ - "SharedKey sdktest2:cGkZq7FuXPTLrVrvziVLusYBBFKc9XFl1MuwJiPlIKE=" + "SharedKey sdktest2:WLXdIb2b+1bc5GlGcZAixewBCa67WCU3R1TwfXuRNXg=" ] } }, @@ -5337,39 +6001,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:09 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "a6026958-4240-4f44-8b1c-790255568bb0" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "23792e22-2300-42a4-a813-79ac11151ce1" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:13 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5392,16 +6056,16 @@ "keep-alive" ], "client-request-id": [ - "e24d27dc-56eb-11e9-ae92-44032c851686" + "a4dd630a-57f3-11e9-b01d-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:12 GMT" + "Fri, 05 Apr 2019 22:39:16 GMT" ], "Authorization": [ - "SharedKey sdktest2:z6aShcFokOYvKZJMyn5hgwoz5j3425bRZovr4yf69FA=" + "SharedKey sdktest2:40x9hVkpuQGFSdTnXUmJ1ROTw8rL0S1ra7mYvXmjzuc=" ] } }, @@ -5411,39 +6075,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:12 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "6b66a3c8-aeb1-4c52-9383-5258aa47c6b4" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "7c44f75c-d77e-4c57-bf95-75f80ef78bf1" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:16 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5466,16 +6130,16 @@ "keep-alive" ], "client-request-id": [ - "e461456c-56eb-11e9-8fd6-44032c851686" + "a6c87a6e-57f3-11e9-ba03-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:16 GMT" + "Fri, 05 Apr 2019 22:39:19 GMT" ], "Authorization": [ - "SharedKey sdktest2:r09wLPMlPdyLZPw+DPOXTK2y2ltNykdgjMpX4LrjDtM=" + "SharedKey sdktest2:Vr9tKT+jvjROh6yGX+CI5cnhfCoOb8FCxLLt2CiO4nU=" ] } }, @@ -5485,39 +6149,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:16 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "2c179e4c-6168-4158-bde6-cd788f3810cd" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "19be186a-ea67-4052-868f-052b8f95f316" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:19 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5540,16 +6204,16 @@ "keep-alive" ], "client-request-id": [ - "e670d510-56eb-11e9-aa44-44032c851686" + "a8b2e774-57f3-11e9-92f7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:19 GMT" + "Fri, 05 Apr 2019 22:39:23 GMT" ], "Authorization": [ - "SharedKey sdktest2:K4K9YZsrjIvZxnVPUbjobfzpTfolZ+gg4H27g7Cl6Bk=" + "SharedKey sdktest2:QQatKy8ZC1o6Tj2D/5Di2drIL1FpZF4dVPPBtkMdiNQ=" ] } }, @@ -5559,39 +6223,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:19 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "37a330b0-5da5-4724-8976-4ea09a733826" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "50a19e83-cf42-4fac-8d0b-e958d8906070" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:22 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5614,16 +6278,16 @@ "keep-alive" ], "client-request-id": [ - "e885cb5a-56eb-11e9-b64a-44032c851686" + "aaa01392-57f3-11e9-983a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:22 GMT" + "Fri, 05 Apr 2019 22:39:26 GMT" ], "Authorization": [ - "SharedKey sdktest2:SlCxIP7VYUEv2nrP/JltV8snOpQKTUtj3yyo2sfUrYQ=" + "SharedKey sdktest2:ZLnqhmcMymtecMacrzRLOQFcNBU4XcJ9zwe/zHxemcc=" ] } }, @@ -5633,39 +6297,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:23 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "098dc5e7-c5b4-4d06-80fe-2099530f870d" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "f544911f-01e1-4ec2-b85d-bc01bbd1f10a" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:26 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5688,16 +6352,16 @@ "keep-alive" ], "client-request-id": [ - "eaa98222-56eb-11e9-89f7-44032c851686" + "ac8fec34-57f3-11e9-bf8a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:26 GMT" + "Fri, 05 Apr 2019 22:39:29 GMT" ], "Authorization": [ - "SharedKey sdktest2:PaM/rxOEvkXmAVoiGGcMi1mg32kWEsc8qRASd2SMJis=" + "SharedKey sdktest2:EPSGTqVerOM2nxK6CtxSaM3X+NhCoEq+xcsUSc0NJBM=" ] } }, @@ -5707,39 +6371,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:26 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "b5bba471-c5c8-470e-8ae1-f4c2b7fb3908" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "7eee4795-4c8c-4e27-b75f-6f96650035e1" + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "DataServiceVersion": [ - "3.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:29 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5762,16 +6426,16 @@ "keep-alive" ], "client-request-id": [ - "ecbfd5cc-56eb-11e9-93bd-44032c851686" + "ae7e55c6-57f3-11e9-a2d2-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:30 GMT" + "Fri, 05 Apr 2019 22:39:32 GMT" ], "Authorization": [ - "SharedKey sdktest2:HZh6OSQ5MDbUG2z7t7ekWxF1sVZVM6lNne1pbnWMpTs=" + "SharedKey sdktest2:xGtDezJ4N3Ruesbjcol8f+8f3Zs/MgWXr1U8nFv23uI=" ] } }, @@ -5781,39 +6445,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:30 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "b0703017-d242-4819-bdd2-8864733999bf" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "7b7069b7-df0e-4484-9ed8-00000aeb582c" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:32 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5836,16 +6500,16 @@ "keep-alive" ], "client-request-id": [ - "eedb0c58-56eb-11e9-8aaf-44032c851686" + "b06b185c-57f3-11e9-937a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:33 GMT" + "Fri, 05 Apr 2019 22:39:35 GMT" ], "Authorization": [ - "SharedKey sdktest2:IdQwSRwGl4RuazIrvnErQIDj4dFVC2kWflkk6h5ruvk=" + "SharedKey sdktest2:FZRchmFHHIg/WguS6yS+Usku6td+AX286rxkAcyKLrY=" ] } }, @@ -5855,39 +6519,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:34 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "98afc87c-4eae-4f05-97c6-7ddb96f47078" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "fc4071d1-c77e-40de-9884-94046deb3ba4" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:36 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5910,16 +6574,16 @@ "keep-alive" ], "client-request-id": [ - "f0f9b96c-56eb-11e9-9996-44032c851686" + "b257bd4c-57f3-11e9-aaf3-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:37 GMT" + "Fri, 05 Apr 2019 22:39:39 GMT" ], "Authorization": [ - "SharedKey sdktest2:P3iB50dTkknvPJ4n3ZtiaCA60zdWFwOPDzJz+J9GA9s=" + "SharedKey sdktest2:WLoELp25iTfRkUxcNAVwkCzj5oUj5e6u5dUQja3dd+o=" ] } }, @@ -5929,39 +6593,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:37 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "fbe65089-a759-4d12-a055-9c72baed2754" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "b661d065-31ae-443f-8b27-934ae62ba28c" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:39 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5984,16 +6648,16 @@ "keep-alive" ], "client-request-id": [ - "f31256e2-56eb-11e9-b199-44032c851686" + "b449bfe4-57f3-11e9-8313-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:40 GMT" + "Fri, 05 Apr 2019 22:39:42 GMT" ], "Authorization": [ - "SharedKey sdktest2:+KqCpJTHAskbloq/2WY8YhKyebfhJuyb/o0fQ0akMwA=" + "SharedKey sdktest2:rBhuC4iZZZ2vBOd9elExXGH98XaJEj9GvD1iTf/tyAk=" ] } }, @@ -6003,39 +6667,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:41 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "649e05c4-cf39-415a-8f86-aad743d3e3e1" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "bb23965f-a822-4941-a174-2ddc9ae88846" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:41 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6058,16 +6722,16 @@ "keep-alive" ], "client-request-id": [ - "f5446062-56eb-11e9-b8a6-44032c851686" + "b638065e-57f3-11e9-a92a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:44 GMT" + "Fri, 05 Apr 2019 22:39:45 GMT" ], "Authorization": [ - "SharedKey sdktest2:fBLnGRR6r6T4PxRn6a18ulSwOeeOmygbLB4oVCGHeho=" + "SharedKey sdktest2:u5oRCxDnUSJvqUn4xKpddmcy1f1tlEDsJVt0moVeNwE=" ] } }, @@ -6077,39 +6741,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:44 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "59bef4f4-f3a3-428f-af86-21684023e8ef" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "1c509584-5f0a-4f6b-8e9a-d754b28d1ae8" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:45 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6132,16 +6796,16 @@ "keep-alive" ], "client-request-id": [ - "f7689ef6-56eb-11e9-89e8-44032c851686" + "b823a49a-57f3-11e9-b2aa-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:47 GMT" + "Fri, 05 Apr 2019 22:39:48 GMT" ], "Authorization": [ - "SharedKey sdktest2:EBdGjmV1TWfYgN/BpKToZFtaUazkmrdBXq3LE1CsE74=" + "SharedKey sdktest2:ZzbqXn11k+yUtPm3LGcH5ToscsRfYbQs1ehSyrLZkAQ=" ] } }, @@ -6151,39 +6815,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:48 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "509cdd1d-1536-4297-88d9-e0266899ec3e" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "ba863723-736f-463a-beb7-68118b3ab8be" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:49 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6206,16 +6870,16 @@ "keep-alive" ], "client-request-id": [ - "f97bac9c-56eb-11e9-9a61-44032c851686" + "ba10a5b6-57f3-11e9-babb-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:51 GMT" + "Fri, 05 Apr 2019 22:39:52 GMT" ], "Authorization": [ - "SharedKey sdktest2:/L2xyLxewnsZykWDU/uv0erEA9sNNvDhpXABsdIiGsQ=" + "SharedKey sdktest2:nmKlWemGjQv19VHeoUkmmzifnjkHFUUgK8eaQaEmnQ8=" ] } }, @@ -6225,39 +6889,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:51 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "798a4975-b6ca-43ca-8d4f-2fbc0597dc23" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "37649647-693e-437a-970c-4dacfd5b742a" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:52 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6280,16 +6944,16 @@ "keep-alive" ], "client-request-id": [ - "fb8feac0-56eb-11e9-baca-44032c851686" + "bbfd76d8-57f3-11e9-b5b9-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:54 GMT" + "Fri, 05 Apr 2019 22:39:55 GMT" ], "Authorization": [ - "SharedKey sdktest2:ZHTmLWjJaXI0sKN5YRltvqG36RYBHP9YiRn/2Bu675o=" + "SharedKey sdktest2:5Cm5Sm7Yf0U3wIxv/BlJVrovfujYBP1oeJqfdWz0h3Q=" ] } }, @@ -6299,39 +6963,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:55 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "da7ac043-b8ce-4a79-ba62-623a3aa437f3" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "b56f9ca0-3411-4e4e-9378-8a1ac0b0f289" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:55 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6354,16 +7018,16 @@ "keep-alive" ], "client-request-id": [ - "fda54c0c-56eb-11e9-8497-44032c851686" + "bdee81f0-57f3-11e9-8280-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:11:58 GMT" + "Fri, 05 Apr 2019 22:39:58 GMT" ], "Authorization": [ - "SharedKey sdktest2:xecFLc1ziUznVIs6L6X3BFX3xjyIHpm/pGoBOMw1y/M=" + "SharedKey sdktest2:i6g0VPnSAPFtwVsxWWLzHDtHpHeJxoPbPooZFhLk4Ek=" ] } }, @@ -6373,39 +7037,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:11:58 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "9e7bb097-fb98-4bb8-b17a-d5e6d489caf2" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "4e5c24d0-d035-438b-8b80-6b767d3b8bd5" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:39:58 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6428,16 +7092,16 @@ "keep-alive" ], "client-request-id": [ - "ffb8913a-56eb-11e9-b95b-44032c851686" + "bfda18c6-57f3-11e9-95ae-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:01 GMT" + "Fri, 05 Apr 2019 22:40:01 GMT" ], "Authorization": [ - "SharedKey sdktest2:cgzH1Fma1wriXpqTDDsRhdayaO/Sv65sHnsMLCGOAoQ=" + "SharedKey sdktest2:+qnTAXUXJmX3AnX+K+FJ2tHmKSpCwBEAXL4LXli1HKE=" ] } }, @@ -6447,39 +7111,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA1762705BEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:12:02 GMT" + "request-id": [ + "2ba455c5-5825-4715-9d2b-5ce2e3ad85a8" + ], + "Last-Modified": [ + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], - "ETag": [ - "0x8D6B90FB5CA950F" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "26b1ee02-794e-4ae2-8331-3e549f0eece2" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:40:02 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6502,16 +7166,16 @@ "keep-alive" ], "client-request-id": [ - "01cd23b4-56ec-11e9-9f9f-44032c851686" + "c1c70536-57f3-11e9-b675-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:05 GMT" + "Fri, 05 Apr 2019 22:40:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:4Qg6utBPRz7hnfDagldEYmfikfXcYhzi2CmwQ1rJu20=" + "SharedKey sdktest2:atPYL+5gHNUJmoNmzgKO/b0RnXMMBn/bpm/8K1gzsP0=" ] } }, @@ -6521,39 +7185,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:05 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "4248d16a-9e41-4dc5-99f3-39295bfdb752" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "e9b0e00b-fada-4431-a216-b2f51712db26" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:04 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6576,16 +7240,16 @@ "keep-alive" ], "client-request-id": [ - "03e3af78-56ec-11e9-a78c-44032c851686" + "c3bb3400-57f3-11e9-a960-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:08 GMT" + "Fri, 05 Apr 2019 22:40:08 GMT" ], "Authorization": [ - "SharedKey sdktest2:6bCgVtfltHLOQiVDDNp9Ibx9zwzXJQNHcv4caCJiNJA=" + "SharedKey sdktest2:8ohr6UlOHfdStlgJFtQZSndnsAFgXwDTe19DWHmKFTI=" ] } }, @@ -6595,39 +7259,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:08 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "6ed94e68-0be4-4b36-873f-44a49cb9666e" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "777ad216-9d24-4c45-a7c3-4d658fc42c76" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:08 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6650,16 +7314,16 @@ "keep-alive" ], "client-request-id": [ - "05fb6e48-56ec-11e9-8db1-44032c851686" + "c5a9b68a-57f3-11e9-87e4-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:12 GMT" + "Fri, 05 Apr 2019 22:40:11 GMT" ], "Authorization": [ - "SharedKey sdktest2:Eyv4ZUbMnFYsD5BN01/cwIk8RCW5d1sfiXi0gvFydcA=" + "SharedKey sdktest2:VNY63fw/mc65MX+myNgfmwc8HoghP9gsPrX+yOUqLX4=" ] } }, @@ -6669,39 +7333,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:12 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "8a044d13-d021-41d3-8790-9b38e4793a5c" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "cdf4b633-163a-4aad-a2dd-b906715d0f76" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:11 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6724,16 +7388,16 @@ "keep-alive" ], "client-request-id": [ - "08153d46-56ec-11e9-8e36-44032c851686" + "c79e9d78-57f3-11e9-a4e5-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:15 GMT" + "Fri, 05 Apr 2019 22:40:14 GMT" ], "Authorization": [ - "SharedKey sdktest2:uv6CDiNQvwBJqYRBnFkqTbr3q8xrl7xyDCGFkjYpe7M=" + "SharedKey sdktest2:YbprduhQXYRSUbnd6hlaGc0FMn7i5Ubr7I8zEcn2NIQ=" ] } }, @@ -6743,39 +7407,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:16 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "e2212771-c934-43cc-b8da-6e8d66a1ffda" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "78978220-7fdf-4ee3-803b-fb7a8021ec1a" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:15 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6798,16 +7462,16 @@ "keep-alive" ], "client-request-id": [ - "0a2e31de-56ec-11e9-b81a-44032c851686" + "c9902068-57f3-11e9-b3d9-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:19 GMT" + "Fri, 05 Apr 2019 22:40:18 GMT" ], "Authorization": [ - "SharedKey sdktest2:58Ou/Hn81CUJe1rcmSJwuPOPkYQe4SfCr39t5vWdJY8=" + "SharedKey sdktest2:mRNOAHtuu/cv9mBXezUQQIKQUi8wOYn+ze3N8ZtJOrM=" ] } }, @@ -6817,39 +7481,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:19 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "21f7af4e-e6d3-49cc-8bdd-984e5a27c582" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "b16a375e-b294-4d2c-918c-4c6a8a0d4460" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:18 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6872,16 +7536,16 @@ "keep-alive" ], "client-request-id": [ - "0c453002-56ec-11e9-b53d-44032c851686" + "cb7d6c02-57f3-11e9-803a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:22 GMT" + "Fri, 05 Apr 2019 22:40:21 GMT" ], "Authorization": [ - "SharedKey sdktest2:QoVDCx1JRNWAGxmIEfCPR0hr2h67KVJZztbOZr4hG2U=" + "SharedKey sdktest2:8PKUBjLMlKHFgsrcBWd7DqemtZ2ARRizQJ/D1sK/g0A=" ] } }, @@ -6891,39 +7555,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:23 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "5b268b9d-fec7-4e0f-8444-99934f6ae225" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "749c22b0-adf3-454f-bb91-706d02c7cff5" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:21 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6946,16 +7610,16 @@ "keep-alive" ], "client-request-id": [ - "0e54c506-56ec-11e9-99df-44032c851686" + "cd68b7ac-57f3-11e9-8b5a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:26 GMT" + "Fri, 05 Apr 2019 22:40:24 GMT" ], "Authorization": [ - "SharedKey sdktest2:lCjYfWAaUS5PPJDog5Y8GNUMKQpX8qYpnormIho0TSQ=" + "SharedKey sdktest2:C0nbu8HbqvLe6wstP130xyaLLP7kaxd2L2gAvg8xd+4=" ] } }, @@ -6965,39 +7629,39 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:26 GMT" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], "ETag": [ - "0x8D6B90FB5CA950F" + "0x8D6BA1762705BEB" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "7897e526-1a86-476c-9cc3-5e54a5d2a006" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:10:44 GMT" + "Fri, 05 Apr 2019 22:38:11 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "b64e9b4b-81b9-49e4-a454-e88b9e3595c6" + "Content-Type": [ + "application/json;odata=minimalmetadata" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:24 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6B90FB5CA950F\",\"lastModified\":\"2019-04-04T15:10:44.5104399Z\",\"creationTime\":\"2019-04-04T15:10:44.5104399Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-04T15:10:44.5104399Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-04T15:12:25.7957516Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-05T22:40:22.8442034Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -7020,7 +7684,7 @@ "keep-alive" ], "client-request-id": [ - "0ea0f47e-56ec-11e9-b4da-44032c851686" + "cd87f180-57f3-11e9-8efb-44032c851686" ], "accept-language": [ "en-US" @@ -7029,10 +7693,10 @@ "0" ], "ocp-date": [ - "Thu, 04 Apr 2019 15:12:26 GMT" + "Fri, 05 Apr 2019 22:40:24 GMT" ], "Authorization": [ - "SharedKey sdktest2:PHJSny7m0xFeiHXa10BufenCX0kR/nviZwrD07usQmA=" + "SharedKey sdktest2:YEwp1MCNKQfa+n+3xME0Y2HXq/PlN5TR1WPpKSMaZa4=" ] } }, @@ -7042,23 +7706,23 @@ "message": "Accepted" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:27 GMT" + "request-id": [ + "8df9e219-22db-458d-9c1a-d419bcfd2350" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "7a813a74-ade6-4e12-8473-865027a641e7" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "DataServiceVersion": [ - "3.0" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:25 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -7088,13 +7752,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "10184d1a-56ec-11e9-8782-44032c851686" + "cdf7969e-57f3-11e9-925e-44032c851686" ], "accept-language": [ "en-US" @@ -7107,14 +7771,11 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:28 GMT" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Pragma": [ - "no-cache" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json; charset=utf-8" @@ -7122,11 +7783,17 @@ "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:24 GMT" ], "Vary": [ "Accept-Encoding" @@ -7134,9 +7801,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "686" ] @@ -7165,13 +7829,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "1072e5e2-56ec-11e9-8071-44032c851686" + "ce37290c-57f3-11e9-a7d2-44032c851686" ], "accept-language": [ "en-US" @@ -7187,29 +7851,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:29 GMT" - ], - "Pragma": [ - "no-cache" - ], "x-ms-ratelimit-remaining-subscription-writes": [ "1199" ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], "Content-Type": [ "application/json" ], - "Cache-Control": [ + "Cache-Control": [ + "no-cache" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Pragma": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Expires": [ + "-1" ], - "Transfer-Encoding": [ - "chunked" + "Date": [ + "Fri, 05 Apr 2019 22:40:25 GMT" ], "Vary": [ "Accept-Encoding" @@ -7217,9 +7884,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "288" ] @@ -7248,13 +7912,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "10c32c4c-56ec-11e9-b835-44032c851686" + "ce6b8134-57f3-11e9-910a-44032c851686" ], "accept-language": [ "en-US" @@ -7273,35 +7937,35 @@ "message": "Created" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA17B2C7F836" ], - "Date": [ - "Thu, 04 Apr 2019 15:12:31 GMT" + "request-id": [ + "a801b672-cad1-4159-b944-788c82a42137" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:40:26 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "DataServiceId": [ "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "ETag": [ - "0x8D6B90FF5700193" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:31 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "136d1de6-f773-4adb-8af5-521db9bc8d2f" + "Date": [ + "Fri, 05 Apr 2019 22:40:26 GMT" ], - "DataServiceVersion": [ - "3.0" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "X-Content-Type-Options": [ "nosniff" @@ -7331,13 +7995,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "11420bd8-56ec-11e9-a6e7-44032c851686" + "ce9fee06-57f3-11e9-bd94-44032c851686" ], "accept-language": [ "en-US" @@ -7353,33 +8017,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "be6ac268-a513-4dfd-beb3-8aba0fbcd356" ], - "Date": [ - "Thu, 04 Apr 2019 15:12:31 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "ac2322cf-a3cf-4d9b-97d9-f7b3a0b8d249" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:40:26 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6B90FF5B68AEA\",\"lastModified\":\"2019-04-04T15:12:31.7532906Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BA17B2F563BA\",\"lastModified\":\"2019-04-05T22:40:26.8944314Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" } } }, @@ -7402,13 +8066,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "118edca2-56ec-11e9-9e5e-44032c851686" + "ced03450-57f3-11e9-a595-44032c851686" ], "accept-language": [ "en-US" @@ -7424,32 +8088,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:32 GMT" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" - ], "ETag": [ - "0x8D6B90FF63A267E" + "0x8D6BA17B34F5504" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "acd4ca5d-f98d-41ab-b7dd-e969ba7eccdf" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:32 GMT" + "Fri, 05 Apr 2019 22:40:27 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "10afd807-dc6f-4235-9730-4c3eaaa02703" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:27 GMT" ], "X-Content-Type-Options": [ "nosniff" @@ -7479,13 +8143,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "132a683a-56ec-11e9-9e12-44032c851686" + "cf5ca546-57f3-11e9-a646-44032c851686" ], "accept-language": [ "en-US" @@ -7498,14 +8162,11 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:34 GMT" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Pragma": [ - "no-cache" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json; charset=utf-8" @@ -7513,11 +8174,17 @@ "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:27 GMT" ], "Vary": [ "Accept-Encoding" @@ -7525,9 +8192,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "686" ] @@ -7556,13 +8220,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "139255de-56ec-11e9-a4e8-44032c851686" + "cf9f2ba8-57f3-11e9-a93e-44032c851686" ], "accept-language": [ "en-US" @@ -7578,17 +8242,14 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:35 GMT" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" ], - "Pragma": [ - "no-cache" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1198" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json" @@ -7596,11 +8257,17 @@ "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:27 GMT" ], "Vary": [ "Accept-Encoding" @@ -7608,9 +8275,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "288" ] @@ -7636,13 +8300,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "13d3f870-56ec-11e9-9cd3-44032c851686" + "cfc68d7a-57f3-11e9-95ef-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:35 GMT" + "Fri, 05 Apr 2019 22:40:28 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:MDx6QEB1x78PjSocOpUiOddoVsCQjv5N/t+cy7FikiM=" + "SharedKey sdkteststore2:ToKSo9G5BAQjJtkLY8ZKWRaODFyvJrE0Q5n6bR1jBPQ=" ], "Content-Length": [ "0" @@ -7655,21 +8319,21 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:35 GMT" - ], "ETag": [ - "\"0x8D6B90FF8609139\"" + "\"0x8D6BA17B414B66E\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Fri, 05 Apr 2019 22:40:28 GMT" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" + ], "x-ms-version": [ "2017-07-29" ] @@ -7695,13 +8359,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1435df24-56ec-11e9-9930-44032c851686" + "cfedb000-57f3-11e9-9d34-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Fri, 05 Apr 2019 22:40:28 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:pOqOEXbgGUSkBaV0uFfDpJamn1fNSDcd7W+IGXh1tII=" + "SharedKey sdkteststore2:i+wTEGL+cGh02GAH2T8FvjLPoLOrowz7VWOKqaZlpmY=" ] } }, @@ -7711,27 +8375,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:35 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118bf66-701e-0068-59f8-ea3a51000000\nTime:2019-04-04T15:12:36.5192166Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb57fa-401e-0024-3b00-ecfd4e000000\nTime:2019-04-05T22:40:28.8604903Z" } } }, @@ -7763,13 +8427,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "146280d2-56ec-11e9-9717-44032c851686" + "cffa0cb6-57f3-11e9-a612-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Fri, 05 Apr 2019 22:40:28 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:eLF3bzzIqfNYH5V+ApxdFKP58Fhi73HVZq76aEcdVxQ=" + "SharedKey sdkteststore2:DTGzu8na3waewLFnGkr4sk3h1eOPWZVneX8INz02iwk=" ] } }, @@ -7779,27 +8443,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" - ], "ETag": [ - "\"0x8D6B90FF8B56847\"" + "\"0x8D6BA17B42C1F9F\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Fri, 05 Apr 2019 22:40:28 GMT" + ], + "Content-MD5": [ + "GhvIqLxdhgZSxhi6CdQjLQ==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "GhvIqLxdhgZSxhi6CdQjLQ==" - ], "x-ms-version": [ "2017-07-29" ] @@ -7825,13 +8489,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "14885c64-56ec-11e9-b928-44032c851686" + "d004464a-57f3-11e9-9252-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:aKzbsqSXP14zDe/z3oGCY/MN4YVaQYGWSbP1MYFSEv8=" + "SharedKey sdkteststore2:eBcnc942M9VggThumUYE3P6AbQ6b6yN9qU/KhtV4tXE=" ], "Content-Length": [ "0" @@ -7844,27 +8508,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118bf99-701e-0068-05f8-ea3a51000000\nTime:2019-04-04T15:12:37.0265752Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5819-401e-0024-5800-ecfd4e000000\nTime:2019-04-05T22:40:28.9945840Z" } } }, @@ -7884,13 +8548,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "14ad58dc-56ec-11e9-be30-44032c851686" + "d00de33a-57f3-11e9-8d5f-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:SWiahxfspxj/GtzCjU2aTGN1hZXPn3atzlGyp+6Ioo8=" + "SharedKey sdkteststore2:ca2sLhMivGD3xAvryZP7Q+kiDdh6bk6CHuDN8Cw4ecI=" ] } }, @@ -7900,27 +8564,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118bfd5-701e-0068-38f8-ea3a51000000\nTime:2019-04-04T15:12:37.3037712Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5825-401e-0024-6200-ecfd4e000000\nTime:2019-04-05T22:40:29.0606301Z" } } }, @@ -7952,13 +8616,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "14d822b0-56ec-11e9-9ba3-44032c851686" + "d018de6e-57f3-11e9-8fae-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:yDOyaiC670tyCK8qEPUtRXLLH3jmE/sQhytOVv9p4CI=" + "SharedKey sdkteststore2:bw0iIlHn0BBe2DeVQYwIiYV8J6FX3bF26WDmaw5EfCU=" ] } }, @@ -7968,27 +8632,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:36 GMT" - ], "ETag": [ - "\"0x8D6B90FF92BE68E\"" + "\"0x8D6BA17B44AF7EA\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" + ], + "Content-MD5": [ + "xbCZcjm1pOMcwR8Td2yo9w==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "xbCZcjm1pOMcwR8Td2yo9w==" - ], "x-ms-version": [ "2017-07-29" ] @@ -8014,13 +8678,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "14fee61e-56ec-11e9-adcb-44032c851686" + "d0233e8c-57f3-11e9-90cb-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:FF7OAYaVGG91iopXI/Q4dNyvS+LeCVh9EF+nwNmI800=" + "SharedKey sdkteststore2:qb0NDMMq2DN6E7qGcmu2d7VMr+WBU2w8zhtk+uctcO4=" ], "Content-Length": [ "0" @@ -8033,27 +8697,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c005-701e-0068-60f8-ea3a51000000\nTime:2019-04-04T15:12:37.8111294Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb584f-401e-0024-0a00-ecfd4e000000\nTime:2019-04-05T22:40:29.1977259Z" } } }, @@ -8073,13 +8737,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1525acfe-56ec-11e9-aedb-44032c851686" + "d02cb5fe-57f3-11e9-be22-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:bVtjVRMv2pgr/AJUOWoYW7cYGFNBvtweW7L6YpUCgno=" + "SharedKey sdkteststore2:HFVtrq2MTPId2FOAicJwxsVfN0iNRDfz55paT1Vo+EM=" ] } }, @@ -8089,27 +8753,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c026-701e-0068-7ef8-ea3a51000000\nTime:2019-04-04T15:12:38.0743158Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5864-401e-0024-1c00-ecfd4e000000\nTime:2019-04-05T22:40:29.2637721Z" } } }, @@ -8141,13 +8805,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "154e1b9e-56ec-11e9-9fd5-44032c851686" + "d0373d00-57f3-11e9-bfc8-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:zQI8s4rWnLnFJpBEU4CE49NjiBF0vd1SwsrmdI2Cmm8=" + "SharedKey sdkteststore2:bi4xMs7I+yFrSk+WBYsqeaWRilwPOTjPlipkZuwkY9A=" ] } }, @@ -8157,27 +8821,27 @@ "message": "Created" }, "headers": { + "ETag": [ + "\"0x8D6BA17B469A91E\"" + ], + "Last-Modified": [ + "Fri, 05 Apr 2019 22:40:29 GMT" + ], + "Content-MD5": [ + "HBCHz/rBYi8V9ILMKx0o+g==" + ], + "Content-Length": [ + "0" + ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Date": [ - "Thu, 04 Apr 2019 15:12:37 GMT" - ], - "ETag": [ - "\"0x8D6B90FF9A94405\"" - ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:38 GMT" - ], - "Content-Length": [ - "0" + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "HBCHz/rBYi8V9ILMKx0o+g==" - ], "x-ms-version": [ "2017-07-29" ] @@ -8203,13 +8867,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "157d5762-56ec-11e9-8e89-44032c851686" + "d041eb4c-57f3-11e9-a607-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:IzZ9p3i1o2sBtgt2+BO9VbH5oNRB2TC/jRcgiQnYjfw=" + "SharedKey sdkteststore2:Jv7IK3RgC0xc4id7Lb3lkO33ogZ+HrC7KPnW25F0FJc=" ], "Content-Length": [ "0" @@ -8222,27 +8886,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c076-701e-0068-3bf8-ea3a51000000\nTime:2019-04-04T15:12:38.6597296Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5895-401e-0024-4800-ecfd4e000000\nTime:2019-04-05T22:40:29.4158779Z" } } }, @@ -8262,13 +8926,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "15a6645e-56ec-11e9-9629-44032c851686" + "d04e463e-57f3-11e9-aab5-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kLH6MqyQTEtwyfbPo4xtuliv2LsqEUDS+c/tQSfOVS0=" + "SharedKey sdkteststore2:cyP34Fn73YcpjhpCNR4efdeA3pWNMsMpBjpNgIhQhb4=" ] } }, @@ -8278,27 +8942,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c09c-701e-0068-5df8-ea3a51000000\nTime:2019-04-04T15:12:38.9339230Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb58ae-401e-0024-6000-ecfd4e000000\nTime:2019-04-05T22:40:29.4899297Z" } } }, @@ -8330,13 +8994,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "15d16a0a-56ec-11e9-83f0-44032c851686" + "d059e040-57f3-11e9-af71-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:9mLWHmEOWrpksph6Djvd/kyKUvgE2l7hVnsuVvbyyhk=" + "SharedKey sdkteststore2:01ht9vTw5hsKy3VoTuXZGDWXbR1eQ/gzfHXOkkXWWFA=" ] } }, @@ -8346,27 +9010,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" - ], "ETag": [ - "\"0x8D6B90FFA2A99DE\"" + "\"0x8D6BA17B48BB650\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" + ], + "Content-MD5": [ + "PFiBkLMhFseOyDvKgJXaRA==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "PFiBkLMhFseOyDvKgJXaRA==" - ], "x-ms-version": [ "2017-07-29" ] @@ -8392,13 +9056,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "15fd9726-56ec-11e9-87e6-44032c851686" + "d064196c-57f3-11e9-b72b-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:O3qfLZ9YwG2CYP9kgSbJySOEDGeIxGGNi8dOpKVA36E=" + "SharedKey sdkteststore2:E4RmHmNWIrZkodowyPlDzHiaByUjGVmpmXz/DfgKvrU=" ], "Content-Length": [ "0" @@ -8411,27 +9075,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:38 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c0d7-701e-0068-0cf8-ea3a51000000\nTime:2019-04-04T15:12:39.4763072Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb58d9-401e-0024-0400-ecfd4e000000\nTime:2019-04-05T22:40:29.6220220Z" } } }, @@ -8451,13 +9115,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1622f95a-56ec-11e9-9591-44032c851686" + "d06d8e2e-57f3-11e9-bdfa-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:SJh+KOfwdnz1Taw7Qv56PG4mSHpKk8SDmaoMWs0js+c=" + "SharedKey sdkteststore2:mpeF0IGcytutglwO/yIRHN8EPAlEB/yCMObDPMpD5kQ=" ] } }, @@ -8467,27 +9131,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c102-701e-0068-2ef8-ea3a51000000\nTime:2019-04-04T15:12:39.7404935Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb58e9-401e-0024-1200-ecfd4e000000\nTime:2019-04-05T22:40:29.6890692Z" } } }, @@ -8519,13 +9183,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "164bbd40-56ec-11e9-a930-44032c851686" + "d0786386-57f3-11e9-908a-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Zn1efBL16cAkAdl001K3AA0HWEr/WPG7qC2XRszn3f4=" + "SharedKey sdkteststore2:Dkh75mTmhCPZS0PF+F0hU1GvCg6s61t/PgNxqlPQpoc=" ] } }, @@ -8535,27 +9199,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" - ], "ETag": [ - "\"0x8D6B90FFA9F430F\"" + "\"0x8D6BA17B4AA6782\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" + ], + "Content-MD5": [ + "IvRrVHIc/lLy/wSkE22LeA==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:28 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "IvRrVHIc/lLy/wSkE22LeA==" - ], "x-ms-version": [ "2017-07-29" ] @@ -8581,13 +9245,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "16723a12-56ec-11e9-8131-44032c851686" + "d08276f6-57f3-11e9-9692-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Z7mTOhL/Ykw9Bg3e0f4498fBmvu9D0808UMtdqfGd3I=" + "SharedKey sdkteststore2:OTdkd3Y+jzL46dX/9KjdMzpwdtGFZrJ9CpAZztRvyio=" ], "Content-Length": [ "0" @@ -8600,27 +9264,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c193-701e-0068-2bf8-ea3a51000000\nTime:2019-04-04T15:12:40.2288396Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5909-401e-0024-2e00-ecfd4e000000\nTime:2019-04-05T22:40:29.8201608Z" } } }, @@ -8640,13 +9304,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1695cc4a-56ec-11e9-aea6-44032c851686" + "d08bc474-57f3-11e9-8eca-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ovMhOnB524zxFQlRp5n3zMSqHLTabVqN/bmwzobtI+0=" + "SharedKey sdkteststore2:J/a0xh+OWICoRrMC8LC1tRjvZM1f07IRwtcd+3Ahl9I=" ] } }, @@ -8656,27 +9320,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:39 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c1be-701e-0068-4df8-ea3a51000000\nTime:2019-04-04T15:12:40.4970288Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb591d-401e-0024-4200-ecfd4e000000\nTime:2019-04-05T22:40:29.8872073Z" } } }, @@ -8708,13 +9372,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "16bfade6-56ec-11e9-958e-44032c851686" + "d096c10a-57f3-11e9-9cdd-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:9c9n2iM51LY/n9cKG70WWtFebuxJ2zbChWxOyThDYZE=" + "SharedKey sdkteststore2:HaPq/f4JBwF5HqLM2oEJHt0TxEBK946mOCOcCQZ17+4=" ] } }, @@ -8724,27 +9388,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" - ], "ETag": [ - "\"0x8D6B90FFB165DB3\"" + "\"0x8D6BA17B4C8F1B0\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Fri, 05 Apr 2019 22:40:29 GMT" + ], + "Content-MD5": [ + "27HmU8S9AEeu90aG5z1x1A==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "27HmU8S9AEeu90aG5z1x1A==" - ], "x-ms-version": [ "2017-07-29" ] @@ -8770,13 +9434,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "16e971d8-56ec-11e9-a801-44032c851686" + "d0a120e8-57f3-11e9-ae0b-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:y9p2q3UwprbF/B9P/FvOxP3OcS+82oqqeAe4ZlnSrZs=" + "SharedKey sdkteststore2:XvZPtDIzXcR8xUcbz+WerI0dGm24MbZbv0pvvQZ/7sc=" ], "Content-Length": [ "0" @@ -8789,27 +9453,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c21a-701e-0068-19f8-ea3a51000000\nTime:2019-04-04T15:12:41.0053849Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5952-401e-0024-7500-ecfd4e000000\nTime:2019-04-05T22:40:30.0233028Z" } } }, @@ -8829,13 +9493,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "170c2a3a-56ec-11e9-b893-44032c851686" + "d0aabea6-57f3-11e9-9297-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:jNWBfC/DPHCZO2H+P38CMd+nDC04IJCHDDfBEuM0GSU=" + "SharedKey sdkteststore2:wjvxPB54pofFsbnFkMWaRMZ9wkCBDZR2P5T1WEGuuuA=" ] } }, @@ -8845,27 +9509,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c254-701e-0068-4df8-ea3a51000000\nTime:2019-04-04T15:12:41.2745730Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb597d-401e-0024-1e00-ecfd4e000000\nTime:2019-04-05T22:40:30.0903492Z" } } }, @@ -8897,13 +9561,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1735fa46-56ec-11e9-a9f4-44032c851686" + "d0b56c40-57f3-11e9-bebb-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:bZqA4W36fNCtByY/GpbmmbKjCEOWGQQYmmyMLfZucBA=" + "SharedKey sdkteststore2:qjHNVdoFmF21MuYLpKsnii6zQKCzRyKv3l91MBcX4sw=" ] } }, @@ -8913,27 +9577,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:40 GMT" - ], "ETag": [ - "\"0x8D6B90FFB8CDBFB\"" + "\"0x8D6BA17B4E754BF\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" + ], + "Content-MD5": [ + "eSn7zZA04to5Rccq3nxw1A==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "eSn7zZA04to5Rccq3nxw1A==" - ], "x-ms-version": [ "2017-07-29" ] @@ -8959,13 +9623,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "176007e4-56ec-11e9-9a14-44032c851686" + "d0bfa574-57f3-11e9-b72b-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:oKi4Bd3anAXAy+LaH4gBWlJpn5i7snR/C7b8kq3Qezg=" + "SharedKey sdkteststore2:1BAlesCcTuIsKkRW00XJablfKJdsHhZlJygYhDMjydE=" ], "Content-Length": [ "0" @@ -8978,27 +9642,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c2ae-701e-0068-1df8-ea3a51000000\nTime:2019-04-04T15:12:41.7909365Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb59a0-401e-0024-4100-ecfd4e000000\nTime:2019-04-05T22:40:30.2234430Z" } } }, @@ -9018,13 +9682,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "17843280-56ec-11e9-8c81-44032c851686" + "d0c96970-57f3-11e9-a270-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:8Eppqs/Sgb7aB9IbORL9QUyW4293uhwhabr7A5OIrFg=" + "SharedKey sdkteststore2:gPn6utLOvxkMaKtl+xZ1TxxZdw7UgvixxoHyNuLY9Zw=" ] } }, @@ -9034,27 +9698,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c2e4-701e-0068-4cf8-ea3a51000000\nTime:2019-04-04T15:12:42.0621281Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb59b0-401e-0024-5100-ecfd4e000000\nTime:2019-04-05T22:40:30.2904890Z" } } }, @@ -9086,13 +9750,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "17ae2a5c-56ec-11e9-943b-44032c851686" + "d0d4190a-57f3-11e9-935c-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:OPt0Qg/DclFEqWgsNMcajFgEqqdZVGbToFwQ2LcGS/M=" + "SharedKey sdkteststore2:MYkXTYF4nwEdhd08ws8uovWgEUwaFBp3cPnQ4kCCF9A=" ] } }, @@ -9102,27 +9766,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" - ], "ETag": [ - "\"0x8D6B90FFC06680D\"" + "\"0x8D6BA17B506A25D\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" + ], + "Content-MD5": [ + "sWJuTwpMQ9cWToECYRCNiQ==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "sWJuTwpMQ9cWToECYRCNiQ==" - ], "x-ms-version": [ "2017-07-29" ] @@ -9148,13 +9812,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "17d9a764-56ec-11e9-b3dd-44032c851686" + "d0df153a-57f3-11e9-9903-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:6v+84ghEVV07HD05qoul/ftaGpNzy2RoBIAHrALsqEY=" + "SharedKey sdkteststore2:LH0goAZBJg6vGjtpEQ3T0LiKJDVDtxn/dIqScrV2alY=" ], "Content-Length": [ "0" @@ -9167,27 +9831,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:41 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c35e-701e-0068-29f8-ea3a51000000\nTime:2019-04-04T15:12:42.5905012Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb59d1-401e-0024-7000-ecfd4e000000\nTime:2019-04-05T22:40:30.4285855Z" } } }, @@ -9207,13 +9871,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "17febe4a-56ec-11e9-b907-44032c851686" + "d0e88b1a-57f3-11e9-94d2-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:BhnfTlTm2F0Fk+nA3bzil4RjH7cLu1e2ItDjk/b3i7Q=" + "SharedKey sdkteststore2:iTCsQJMFlJAlYKDaZ/tnaqHjRJkNi+CqvaXTkDdOVHc=" ] } }, @@ -9223,27 +9887,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c39b-701e-0068-57f8-ea3a51000000\nTime:2019-04-04T15:12:42.8616929Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb59df-401e-0024-7c00-ecfd4e000000\nTime:2019-04-05T22:40:30.4986345Z" } } }, @@ -9275,13 +9939,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "182a9678-56ec-11e9-8c47-44032c851686" + "d0f422f8-57f3-11e9-ae71-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:PtQxB0Skyy+XntdWtf/zF2znqceGB9SEgE9/FkmpLpw=" + "SharedKey sdkteststore2:9H9skb0iDgnqChVu0jfS9bOjNq9KDzRfrE9q2YbZODc=" ] } }, @@ -9291,27 +9955,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" - ], "ETag": [ - "\"0x8D6B90FFC7E462A\"" + "\"0x8D6BA17B5266540\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" + ], + "Content-MD5": [ + "2ILRwlJk1kyfaTTP253tiA==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "2ILRwlJk1kyfaTTP253tiA==" - ], "x-ms-version": [ "2017-07-29" ] @@ -9337,13 +10001,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "18512328-56ec-11e9-96fe-44032c851686" + "d0fe8336-57f3-11e9-ab2b-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:FMd8d6xmUV4Sz0SJCeXdpvUllZEMR6A65n+ph9Mxt0A=" + "SharedKey sdkteststore2:jdKY1tL3qeffoYXt7FgagDoWI3QKiO7SOgXTCzRIve0=" ], "Content-Length": [ "0" @@ -9354,29 +10018,29 @@ "status": { "code": 409, "message": "The specified container already exists." - }, - "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + }, + "headers": { + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c44b-701e-0068-6bf8-ea3a51000000\nTime:2019-04-04T15:12:43.3540422Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5a17-401e-0024-3200-ecfd4e000000\nTime:2019-04-05T22:40:30.6337289Z" } } }, @@ -9396,13 +10060,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1872678a-56ec-11e9-80cb-44032c851686" + "d1080470-57f3-11e9-bee0-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kDW5g2C03pzLH5qkt2nfL3MphH+orGPZ8AIf7Jz5TMk=" + "SharedKey sdkteststore2:/Q1QGmdFk8TT2bCIdnsnu3nVAoof50OB1bDzOhMnvGc=" ] } }, @@ -9412,27 +10076,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:42 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:29 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c49a-701e-0068-2ff8-ea3a51000000\nTime:2019-04-04T15:12:43.6162266Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5a29-401e-0024-4300-ecfd4e000000\nTime:2019-04-05T22:40:30.7037782Z" } } }, @@ -9464,13 +10128,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "189b2866-56ec-11e9-9187-44032c851686" + "d112ff14-57f3-11e9-9e65-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:zLdfNfikVl69ZKikGDRHuPvsqJN2cCELA4ruxfj/99A=" + "SharedKey sdkteststore2:hXV9v3PhSVRsVyWoCpzH+1a2igTzahAuoR+37sqC0ag=" ] } }, @@ -9480,27 +10144,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" - ], "ETag": [ - "\"0x8D6B90FFCEF1E17\"" + "\"0x8D6BA17B54564B1\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" + ], + "Content-MD5": [ + "acLZykn1NMEO1oxenbC6dw==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "acLZykn1NMEO1oxenbC6dw==" - ], "x-ms-version": [ "2017-07-29" ] @@ -9526,13 +10190,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "18c1ea58-56ec-11e9-9dee-44032c851686" + "d11daea8-57f3-11e9-87cc-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:dxlGgFkbv8jGFJmEs/3jIYKA5t04qiWmX7ABlp9+f8Y=" + "SharedKey sdkteststore2:37pHBme1GNpu+hQNvnh10C/eRnEGmgLwwbHxZ314ILY=" ], "Content-Length": [ "0" @@ -9545,27 +10209,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c534-701e-0068-36f8-ea3a51000000\nTime:2019-04-04T15:12:44.0985676Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5a42-401e-0024-5a00-ecfd4e000000\nTime:2019-04-05T22:40:30.8388722Z" } } }, @@ -9585,13 +10249,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "18e41830-56ec-11e9-b627-44032c851686" + "d1279898-57f3-11e9-9b74-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:TnWzEs6PCLz10ieI3NLW8b+QH5ZbviC0zivkgN2pLkI=" + "SharedKey sdkteststore2:cohkOR8L/66FxS48sH2sEpUnZThJXP96r5TRw3vcM6o=" ] } }, @@ -9601,27 +10265,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:43 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c569-701e-0068-66f8-ea3a51000000\nTime:2019-04-04T15:12:44.3537480Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5a52-401e-0024-6800-ecfd4e000000\nTime:2019-04-05T22:40:30.9109230Z" } } }, @@ -9653,13 +10317,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1910d242-56ec-11e9-89c8-44032c851686" + "d132bfb6-57f3-11e9-bdfc-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:B0XXM6CKexv2ZKPdrQiZbczCDbJAlJ6U5WR72DhP2NM=" + "SharedKey sdkteststore2:6OqkiRB1gHt8mj92zazQvinpqHrO82hAxp3hOY1yIZQ=" ] } }, @@ -9669,27 +10333,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" - ], "ETag": [ - "\"0x8D6B90FFD6C545A\"" + "\"0x8D6BA17B5654E9E\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Fri, 05 Apr 2019 22:40:30 GMT" + ], + "Content-MD5": [ + "BvsOoLG3cYJ873sw8nI4/Q==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "BvsOoLG3cYJ873sw8nI4/Q==" - ], "x-ms-version": [ "2017-07-29" ] @@ -9715,13 +10379,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "19404426-56ec-11e9-b213-44032c851686" + "d13d952e-57f3-11e9-85eb-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:SUpjr8SQS26+PiQCNetbglIFkRqJh2+5Ll9QCFAc+6k=" + "SharedKey sdkteststore2:HbL0cM/52ZyFZ8mW1jDlx441ilMSZwhuExrvTRAEYvk=" ], "Content-Length": [ "0" @@ -9734,27 +10398,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c5f4-701e-0068-59f8-ea3a51000000\nTime:2019-04-04T15:12:44.9251518Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5a75-401e-0024-0900-ecfd4e000000\nTime:2019-04-05T22:40:31.0480188Z" } } }, @@ -9774,13 +10438,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "19624c8a-56ec-11e9-876b-44032c851686" + "d1473240-57f3-11e9-a628-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ynH7vQ5PHYIif2dc5l0N4xDA18KuPtG7T7Bzf+5a8wU=" + "SharedKey sdkteststore2:U1ADIn5v4EdRNLeRySXt6Pp0wCXt8G5RhQJ71JHnbfE=" ] } }, @@ -9790,27 +10454,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c654-701e-0068-29f8-ea3a51000000\nTime:2019-04-04T15:12:45.1983449Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5a98-401e-0024-2700-ecfd4e000000\nTime:2019-04-05T22:40:31.1150666Z" } } }, @@ -9842,13 +10506,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "198c1c80-56ec-11e9-8cf7-44032c851686" + "d1516b4a-57f3-11e9-8758-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Q9hu6dJifqvia62NmFlavIkD46xOyGwekkQdaC8ZVrw=" + "SharedKey sdkteststore2:Ev5BPRRuniS/CUbJq2ayGIvQ0tdOcyf9ncp85OtYmeA=" ] } }, @@ -9858,27 +10522,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:44 GMT" - ], "ETag": [ - "\"0x8D6B90FFDE28478\"" + "\"0x8D6BA17B5838A89\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" + ], + "Content-MD5": [ + "Io6RmJXooduSCCl/iHe+sw==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "Io6RmJXooduSCCl/iHe+sw==" - ], "x-ms-version": [ "2017-07-29" ] @@ -9904,13 +10568,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "19b52846-56ec-11e9-a3fa-44032c851686" + "d15bf3d4-57f3-11e9-b2a6-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:/Y/G8XkRzfKYl7ca7itYE9TkJw7dMSMH6rcNVzY9sTg=" + "SharedKey sdkteststore2:i00nNDwc/wtQ55GjfaiTzB/LGtvE3ucUDlBM9sI6IOI=" ], "Content-Length": [ "0" @@ -9923,27 +10587,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c6ce-701e-0068-11f8-ea3a51000000\nTime:2019-04-04T15:12:45.6956965Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5abd-401e-0024-4b00-ecfd4e000000\nTime:2019-04-05T22:40:31.2481600Z" } } }, @@ -9963,13 +10627,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "19d7cb6c-56ec-11e9-91c8-44032c851686" + "d165efac-57f3-11e9-8018-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:gbEyT0Dp6pAh+8lHbzPc3cFgroyI/dRmKc4B7pfRJok=" + "SharedKey sdkteststore2:Z9teXfuWH6unhbT8ScmP0xobvj5eMTBMd0J+LIbHZuw=" ] } }, @@ -9979,27 +10643,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c71c-701e-0068-51f8-ea3a51000000\nTime:2019-04-04T15:12:45.9688900Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5ad0-401e-0024-5e00-ecfd4e000000\nTime:2019-04-05T22:40:31.3352214Z" } } }, @@ -10031,13 +10695,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1a028a36-56ec-11e9-98a6-44032c851686" + "d1736240-57f3-11e9-96bf-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:PVaUuyKvtdrqMZZNlVcpNQLYA9QU1kxGWESjzKDgN5g=" + "SharedKey sdkteststore2:rosfjWnXTaTY6Cxv/5BDEmKBh7UM9vQwJ1H/Fvhp3fQ=" ] } }, @@ -10047,27 +10711,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" - ], "ETag": [ - "\"0x8D6B90FFE5A3B78\"" + "\"0x8D6BA17B5A5E5EE\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" + ], + "Content-MD5": [ + "kPzKWo4J2zRaerzJw2Z2xg==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "kPzKWo4J2zRaerzJw2Z2xg==" - ], "x-ms-version": [ "2017-07-29" ] @@ -10093,13 +10757,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1a2d4058-56ec-11e9-a628-44032c851686" + "d17e366c-57f3-11e9-9008-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:fcVB77Kogjr3XSh237fwRABsXyNjKDSJJOKwdyZyrXI=" + "SharedKey sdkteststore2:NvyXW7Ju9XTpsG51BX4nlphl6w0OP60dfrox2PqPXAM=" ], "Content-Length": [ "0" @@ -10112,27 +10776,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:45 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c7b0-701e-0068-55f8-ea3a51000000\nTime:2019-04-04T15:12:46.4992645Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5ae4-401e-0024-7000-ecfd4e000000\nTime:2019-04-05T22:40:31.4723185Z" } } }, @@ -10152,13 +10816,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1a52a224-56ec-11e9-b9a4-44032c851686" + "d187df52-57f3-11e9-9364-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:IjHjfQ85DJsIdqdxpk77XKiP3/9GZgpiGSzV+nT+bXY=" + "SharedKey sdkteststore2:x528JfUcZduSVJxxJOugi0J1K3OZr6kg9GDN/XdM2F0=" ] } }, @@ -10168,27 +10832,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c7d8-701e-0068-7af8-ea3a51000000\nTime:2019-04-04T15:12:46.7904703Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5af1-401e-0024-7d00-ecfd4e000000\nTime:2019-04-05T22:40:31.5403677Z" } } }, @@ -10220,13 +10884,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1a7fccca-56ec-11e9-a812-44032c851686" + "d192b5dc-57f3-11e9-ab95-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:qH/GeeQ2NxJt+NY+fQUFWMozfxkQbYR9TTakUcN2i6Q=" + "SharedKey sdkteststore2:X28KlEZ/y/6VeahBrdopI6ZozXdxldTJcZhRTOMUwUc=" ] } }, @@ -10236,27 +10900,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" - ], "ETag": [ - "\"0x8D6B90FFED91FBF\"" + "\"0x8D6BA17B5C55A96\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" + ], + "Content-MD5": [ + "rdYsR2RLvOnr9kOYg2y5NQ==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "rdYsR2RLvOnr9kOYg2y5NQ==" - ], "x-ms-version": [ "2017-07-29" ] @@ -10282,13 +10946,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1aac0cc6-56ec-11e9-bd8f-44032c851686" + "d19dd82c-57f3-11e9-a248-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:H0+OVbZQ8/Zrjsfb0oINclEq2E0pBmqtpwp1wDQG/No=" + "SharedKey sdkteststore2:i4X+Vfkvc0g3/vnuAj7EPCSqM2hInWSEuPnyDu6irDU=" ], "Content-Length": [ "0" @@ -10301,27 +10965,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c863-701e-0068-6ef8-ea3a51000000\nTime:2019-04-04T15:12:47.3238473Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5b12-401e-0024-1e00-ecfd4e000000\nTime:2019-04-05T22:40:31.6794645Z" } } }, @@ -10341,13 +11005,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1ad08522-56ec-11e9-9fb3-44032c851686" + "d1a77630-57f3-11e9-b812-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:96a48LHyqhvM33s+JMGkMfnIrgk1ZdMVd/rI6K3yh58=" + "SharedKey sdkteststore2:tLceUokHQJZS9HQI2RTxcFXkzs4LPmiWXAh8QkjbxAU=" ] } }, @@ -10357,27 +11021,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:46 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:30 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c890-701e-0068-14f8-ea3a51000000\nTime:2019-04-04T15:12:47.6320660Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5b25-401e-0024-2f00-ecfd4e000000\nTime:2019-04-05T22:40:31.7465114Z" } } }, @@ -10409,13 +11073,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1b002086-56ec-11e9-995f-44032c851686" + "d1b24a8c-57f3-11e9-9e19-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:75f4jWmnxCi+MpIvWS7Ij6dqUchaSV2LALqH3TrD+S0=" + "SharedKey sdkteststore2:gvSm7Y3aEiwKda+TTN97hqj/4dQR/TH23S8qs+PE7a8=" ] } }, @@ -10425,27 +11089,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" - ], "ETag": [ - "\"0x8D6B90FFF5A2778\"" + "\"0x8D6BA17B5E78EDB\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" + ], + "Content-MD5": [ + "UJHCaZ8IYHwM3l1BfEkTHQ==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "UJHCaZ8IYHwM3l1BfEkTHQ==" - ], "x-ms-version": [ "2017-07-29" ] @@ -10471,13 +11135,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1b2d4c28-56ec-11e9-988a-44032c851686" + "d1c05466-57f3-11e9-a20a-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:t1UVRvkDg1SZJi3i42454+qzKPCrPQwATzbfqGsuw6Q=" + "SharedKey sdkteststore2:AvdODgiNVrP8Wch2JQTJGdP7KdfJdgMm3ARVTF6c8h0=" ], "Content-Length": [ "0" @@ -10490,27 +11154,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c8e7-701e-0068-67f8-ea3a51000000\nTime:2019-04-04T15:12:48.1534333Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5b51-401e-0024-5700-ecfd4e000000\nTime:2019-04-05T22:40:31.9036226Z" } } }, @@ -10530,13 +11194,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1b4f03d2-56ec-11e9-add7-44032c851686" + "d1c9a462-57f3-11e9-90e3-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" + "Fri, 05 Apr 2019 22:40:31 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:IeiDHTN09hB0VtKfQ62CoWNlzZwsRgrHU9zFY1bu2gw=" + "SharedKey sdkteststore2:G3KY/8OjwsXgWR+4y3bcULNjS83FvBoomN6DzdWa9yo=" ] } }, @@ -10546,27 +11210,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:47 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118c91c-701e-0068-1af8-ea3a51000000\nTime:2019-04-04T15:12:48.4446395Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5b68-401e-0024-6b00-ecfd4e000000\nTime:2019-04-05T22:40:31.9706694Z" } } }, @@ -10598,13 +11262,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1b7c09a8-56ec-11e9-8cec-44032c851686" + "d1d479ca-57f3-11e9-b011-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Gwm2n8L8bczC9lo0ym8L5Gjt9UihmGjO2APmxL55AA4=" + "SharedKey sdkteststore2:rbkaLXP4Vq0YnC03/C/X9ZyHbf5uUawyUj9Eb2Oxn/I=" ] } }, @@ -10614,27 +11278,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" - ], "ETag": [ - "\"0x8D6B90FFFD4C537\"" + "\"0x8D6BA17B6070383\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:48 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" + ], + "Content-MD5": [ + "Vx+oh7HSZQSJ/EMS4CWYdQ==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "Vx+oh7HSZQSJ/EMS4CWYdQ==" - ], "x-ms-version": [ "2017-07-29" ] @@ -10660,13 +11324,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1ba7ae3e-56ec-11e9-a6d0-44032c851686" + "d1df7510-57f3-11e9-aa67-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:8MlQdkGZQyVF1dqPVmre5XuBZNmyhhdTMlkGSm8ZnlE=" + "SharedKey sdkteststore2:X6ayv+10yD7hJyy3IOvGrLvnl9yfeh704l2u83ljI7k=" ], "Content-Length": [ "0" @@ -10679,27 +11343,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118c9ac-701e-0068-1ef8-ea3a51000000\nTime:2019-04-04T15:12:48.9630059Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5ba1-401e-0024-1f00-ecfd4e000000\nTime:2019-04-05T22:40:32.1077656Z" } } }, @@ -10719,13 +11383,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1bcac68a-56ec-11e9-babe-44032c851686" + "d1e8c3e2-57f3-11e9-a7e8-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:c1x9b6oxooGAsQi7ZmbYOnM2xYucPQXmyzH+caB4bcI=" + "SharedKey sdkteststore2:hUYq5tJ5ruEC2Xgklv5FSx80j33vRWskAbjpFAy3Gfc=" ] } }, @@ -10735,27 +11399,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118ca00-701e-0068-6df8-ea3a51000000\nTime:2019-04-04T15:12:49.2542118Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5bb3-401e-0024-3100-ecfd4e000000\nTime:2019-04-05T22:40:32.1788149Z" } } }, @@ -10787,13 +11451,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1bf78ac2-56ec-11e9-9e14-44032c851686" + "d1f45cbe-57f3-11e9-be61-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:r2s1/ztaR2G3eQ39K+4PDBMytMzapsX2caCAJ2Be9zs=" + "SharedKey sdkteststore2:E7A7q6M57VNPLTxP35fcVV4QJUam41vsJy2xzuNYttU=" ] } }, @@ -10803,27 +11467,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:48 GMT" - ], "ETag": [ - "\"0x8D6B91000555779\"" + "\"0x8D6BA17B62789D1\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" + ], + "Content-MD5": [ + "sLKLnAZ4LgaLVKq3l8hvhw==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "sLKLnAZ4LgaLVKq3l8hvhw==" - ], "x-ms-version": [ "2017-07-29" ] @@ -10849,13 +11513,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1c289bd0-56ec-11e9-9592-44032c851686" + "d1ffce3a-57f3-11e9-82e3-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:T0myBu6aK39YQttqSbajBsivyVu8Y+4v4S2ti1A2BjA=" + "SharedKey sdkteststore2:L9/ugZT1OgbKd0leHM5eYitNbpGj0KkkqlgUfyYS5bc=" ], "Content-Length": [ "0" @@ -10868,27 +11532,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:0118ca50-701e-0068-34f8-ea3a51000000\nTime:2019-04-04T15:12:49.8146079Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5bda-401e-0024-5700-ecfd4e000000\nTime:2019-04-05T22:40:32.3219153Z" } } }, @@ -10908,13 +11572,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1c4c8202-56ec-11e9-ac0a-44032c851686" + "d209b96e-57f3-11e9-a1a4-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Mla7qwGEQ+SwL+2ta0Zfg2YwznabAd1xXycZeVi6+6M=" + "SharedKey sdkteststore2:awPEmwnUFjip3Ly2JfpXYSKo1YQDycuTWxcmxYM5F/I=" ] } }, @@ -10924,27 +11588,27 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" + "Content-Length": [ + "215" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "BlobNotFound" ], - "Content-Length": [ - "215" + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:0118ca81-701e-0068-61f8-ea3a51000000\nTime:2019-04-04T15:12:50.1238260Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5bf0-401e-0024-6a00-ecfd4e000000\nTime:2019-04-05T22:40:32.4069743Z" } } }, @@ -10976,13 +11640,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1c7b8226-56ec-11e9-a8d7-44032c851686" + "d2168be8-57f3-11e9-8162-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:50 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ueG6xUCRJGVaBTTdCtVOgV0h4zqLXHuKx/3Z9k+KhJM=" + "SharedKey sdkteststore2:O7JHiFQNXJhrEw+Si0pxk+Kk8Oks47UaE9SeOSU9xKg=" ] } }, @@ -10992,27 +11656,27 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:49 GMT" - ], "ETag": [ - "\"0x8D6B91000D1F15B\"" + "\"0x8D6BA17B6496FE8\"" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:50 GMT" + "Fri, 05 Apr 2019 22:40:32 GMT" + ], + "Content-MD5": [ + "GqZFE1K6vOAb3BZx8aiwVA==" ], "Content-Length": [ "0" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:31 GMT" + ], "x-ms-request-server-encrypted": [ "true" ], - "Content-MD5": [ - "GqZFE1K6vOAb3BZx8aiwVA==" - ], "x-ms-version": [ "2017-07-29" ] @@ -11041,13 +11705,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "1ddb0638-56ec-11e9-b854-44032c851686" + "d260b2f8-57f3-11e9-af46-44032c851686" ], "accept-language": [ "en-US" @@ -11060,14 +11724,11 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:52 GMT" + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" ], - "Pragma": [ - "no-cache" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json; charset=utf-8" @@ -11075,11 +11736,17 @@ "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:32 GMT" ], "Vary": [ "Accept-Encoding" @@ -11087,9 +11754,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "686" ] @@ -11118,13 +11782,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0MzkwMTEzLCJuYmYiOjE1NTQzOTAxMTMsImV4cCI6MTU1NDM5NDAxMywiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBblNVVmQ3NjFBbGdaU1FvZ0lVd2p0dStBS2dxSUVJeG1iUnZidXVrNU01bDFYSEZqakJVS1dabEJTTysyQThFT1ZadTlncFdKdTgxYThJZlQ1aTdDOHc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJRQ09RcElvSjMweXU1UEYyMWtNaEFBIiwidmVyIjoiMS4wIn0.FhdSvEBeayePvnRQCQJFL8YqCObnKOHhii7sp--vgLP7uSVeJHmiX4mgqdiPk8FzdvHB1Osa980z2ApAbKNOd8XoVe-aun_pn0wy1ruHzshHdgpwYdoYXUgabhsXP8pS1eG9t0U6E0G-zO2XxY_y66x11hIptPXPBbg3VDaviQZ_OwCWfBJ7_p3d6CUSmDkSFEvf8U6QJWg6E00FWxZyzDMkk9efw_pQIqy-V5R89y6HFlqwpfG8i-uWj7yCiEEUNueNrAWAj331EYySKY3BMs7vCD98Bbf_FXOoVCkFpwvOviLtZKpDGqXNy2ZPJ8Q8lLEyOKLt0O-zMniWVH2Wng" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "1e3b03fe-56ec-11e9-970b-44032c851686" + "d2911a98-57f3-11e9-b451-44032c851686" ], "accept-language": [ "en-US" @@ -11140,29 +11804,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:52 GMT" - ], - "Pragma": [ - "no-cache" - ], "x-ms-ratelimit-remaining-subscription-writes": [ "1199" ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], "Content-Type": [ "application/json" ], "Cache-Control": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Transfer-Encoding": [ - "chunked" + "Pragma": [ + "no-cache" + ], + "Expires": [ + "-1" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:33 GMT" ], "Vary": [ "Accept-Encoding" @@ -11170,9 +11837,6 @@ "X-Content-Type-Options": [ "nosniff" ], - "Expires": [ - "-1" - ], "content-length": [ "288" ] @@ -11198,13 +11862,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1e7cf49c-56ec-11e9-bee6-44032c851686" + "d2bb5d9a-57f3-11e9-b58d-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:53 GMT" + "Fri, 05 Apr 2019 22:40:33 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:NaMAK67Ah941tZzrX9u0gjiZJWQOmSIBaBMYk8Iv/KA=" + "SharedKey sdkteststore2:fP9kaLz5RMw8yLUvYsOAL398OWCRcdKdaGkzlKuVFCA=" ] } }, @@ -11214,24 +11878,24 @@ "message": "OK" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:53 GMT" + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/xml" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:33 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffbatch-applicationTemplate-parameters.jsonThu, 04 Apr 2019 15:12:36 GMT0x8D6B90FF8B568471377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonThu, 04 Apr 2019 15:12:37 GMT0x8D6B90FF92BE68E219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonThu, 04 Apr 2019 15:12:38 GMT0x8D6B90FF9A94405146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonThu, 04 Apr 2019 15:12:39 GMT0x8D6B90FFA2A99DE187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonThu, 04 Apr 2019 15:12:39 GMT0x8D6B90FFA9F430F206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonThu, 04 Apr 2019 15:12:40 GMT0x8D6B90FFB165DB3740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonThu, 04 Apr 2019 15:12:41 GMT0x8D6B90FFB8CDBFB240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonThu, 04 Apr 2019 15:12:42 GMT0x8D6B90FFC06680D1363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonThu, 04 Apr 2019 15:12:43 GMT0x8D6B90FFC7E462A4072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonThu, 04 Apr 2019 15:12:43 GMT0x8D6B90FFCEF1E17254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonThu, 04 Apr 2019 15:12:44 GMT0x8D6B90FFD6C545A3565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonThu, 04 Apr 2019 15:12:45 GMT0x8D6B90FFDE284781252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonThu, 04 Apr 2019 15:12:46 GMT0x8D6B90FFE5A3B781140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonThu, 04 Apr 2019 15:12:47 GMT0x8D6B90FFED91FBF1117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonThu, 04 Apr 2019 15:12:47 GMT0x8D6B90FFF5A277852application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonThu, 04 Apr 2019 15:12:48 GMT0x8D6B90FFFD4C5371685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonThu, 04 Apr 2019 15:12:49 GMT0x8D6B910005557791675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonThu, 04 Apr 2019 15:12:50 GMT0x8D6B91000D1F15B1165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufeffbatch-applicationTemplate-parameters.jsonFri, 05 Apr 2019 22:40:28 GMT0x8D6BA17B42C1F9F1377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B44AF7EA219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B469A91E146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B48BB650187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B4AA6782206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B4C8F1B0740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B4E754BF240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B506A25D1363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B52665404072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B54564B1254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B5654E9E3565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5838A891252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5A5E5EE1140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5C55A961117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5E78EDB52application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonFri, 05 Apr 2019 22:40:32 GMT0x8D6BA17B60703831685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonFri, 05 Apr 2019 22:40:32 GMT0x8D6BA17B62789D11675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonFri, 05 Apr 2019 22:40:32 GMT0x8D6BA17B6496FE81165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -11251,13 +11915,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1ef848be-56ec-11e9-a7da-44032c851686" + "d2e9c1ac-57f3-11e9-b3de-44032c851686" ], "x-ms-date": [ - "Thu, 04 Apr 2019 15:12:54 GMT" + "Fri, 05 Apr 2019 22:40:33 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:C1cLPFNT0xpNfJYYXeua44WsN86L0NqjF1wMBqABqQo=" + "SharedKey sdkteststore2:SOIi3Lm4Id/B9+YvX6mHaiXJxt0PUA8bSLDvSuxZFWg=" ], "Content-Length": [ "0" @@ -11270,27 +11934,27 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:53 GMT" + "Content-Length": [ + "230" ], "Content-Type": [ "application/xml" ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], "x-ms-error-code": [ "ContainerAlreadyExists" ], - "Content-Length": [ - "230" + "Date": [ + "Fri, 05 Apr 2019 22:40:33 GMT" ], "x-ms-version": [ "2017-07-29" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:6f5a3064-201e-0016-4ef8-eaa59e000000\nTime:2019-04-04T15:12:54.4954587Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:d961ac5f-301e-0046-3700-ecba96000000\nTime:2019-04-05T22:40:33.8549986Z" } } }, @@ -11313,13 +11977,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "1f195298-56ec-11e9-9149-44032c851686" + "d2f3d2b8-57f3-11e9-93a5-44032c851686" ], "accept-language": [ "en-US" @@ -11338,35 +12002,35 @@ "message": "Created" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "ETag": [ + "0x8D6BA17B767AEEB" ], - "Date": [ - "Thu, 04 Apr 2019 15:12:54 GMT" + "request-id": [ + "7de3898b-607e-4527-a300-d0528a6d2292" ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Last-Modified": [ + "Fri, 05 Apr 2019 22:40:34 GMT" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "DataServiceId": [ "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], - "ETag": [ - "0x8D6B91003A26A83" + "Server": [ + "Microsoft-HTTPAPI/2.0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:55 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "8d45767a-00d0-4ac4-9f84-66f609e79199" + "Date": [ + "Fri, 05 Apr 2019 22:40:34 GMT" ], - "DataServiceVersion": [ - "3.0" + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "X-Content-Type-Options": [ "nosniff" @@ -11381,7 +12045,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=rVRHV4yKJGnqKffmkOdMg2jc5AH%2BbkCNoSUsZdHhXi4%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=SjCHyDz8CUyaSqIRC1DuXLTcwRNl/Azqr48NHwqX170%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=xUaxo0vUrGFEXgX8Av35BMBgcJwtMGku69xec8e98jo%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=vsnEShV/gLvLD7G3dqhiBQmYC57prY/BpaqKlaGqii8%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=vZ73suh61DBEXedN9/5u4EJVmi7vu3zjdi87nCeOsD0%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=IcyvTrQqAUzKLabIYrEu0muStsStyke3rO%2BTQjCOn1s%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=AlwnXOtb4kqkIFQVbRv1owzqw10MouDDCGOOD%2BbbsAE%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=r5AiNug5n76Bg76kIJPRQ9i6t33CtEo6yRNgySrZIpM%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=27LTg9jAzPnpzVIlKDIcS18m8GVWEC6xsTByj5421S4%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=EBlnr%2B7hLgohbGV2ji%2BQxRNdSUEMOjflyHL6T6%2BJi1E%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=1ads9xkjipuEwv6HI24uyb%2Boo82i7UxJSZicyJniejs%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=vM6foKimvvybM0b9LmDrYFUyOfS7bjFEPLhc6rx0ESE%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=N4OjDAWXhkbP0d%2BXUggqGB5CTP7RkxtFpwEFssadrjU%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=0q8VCek3eNpDqsQlPMQWK9NO5HlUTweExBJkKOmSP9w%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=r4aLX9PG3tLBfx/KY3bh5UBIuynuRl97wvb0wvQXvh8%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=d1ovHjwAZHmHS0jO5I9vSVjfzN9hMCw52sWAcxZjZbs%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=CFuh4D7yOgtWm4k1buINVlPOGs8zN06N6vuD2SY3%2BFE%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=r&sv=2017-07-29&sr=b&sig=GsNy2rCP460g/oVYLUHUuyXzz9fxN5Bu/EpxFWMs9jQ%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-04T14%3A57%3A54Z&se=2019-04-11T15%3A12%3A54Z&sp=w&sv=2017-07-29&sr=c&sig=jKvEI3afRLPwfBDgFWXgm8Ul0AmVYuGzANj5%2BOr5GSs%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", + "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=CI50BKcHU8zive9cY9u/1XHOC9MuAZmvN7/F482p7qA%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=f/CLdZH0P992LuKBpZUxx%2BuSvTVR20oYylRT%2B3IEqnM%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=eDLMQOU%2BBi%2Bdf9gNyow4y8bEyzBvDniGkJcmwkCYbV8%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=Mqqzvq7Pg7IlraJrbMjLeVirjzVVNKhqyTsuO5zk/RE%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=GLBBKEgB7Hxairw6A%2B4Dc9531eFi4nLerZFEyZIZtVc%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=raxHAp70q9c9GEaNS2AY%2BOroQmhHj9QhOvbmsLgTbGA%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=NHt75A7hXaJ2u0l2BnJ4qJh5lkvkcVMR7WellWVSroo%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=SKyXYnbbRfnrJ1cu4eUJGB2dptlLvOzbgqZ5K2cUViM%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=7f6hfXVjdn437b709a3BXCZyz7dDLanSU81kJ4C9y7Y%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=b3b7Ej0bgVti5UmPVv8S74Ngvir7bbJ181RGrJE4n58%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=eAFeZod3U4Fy/rDrZBqvZ67i%2B2qF0VeKzHdMGbdd1ko%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=UWeEXdAYbnd/QdCLs28JhADxmN3pBYCNXReHVhA6mO4%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=wOO1lm6V8//0PYsIekABdZHaKZ32dN6krRXh4hdJJ14%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=7GYPmtDwyaWaNkWETIcBXHr9MZ3VILFSIqS%2BtZYm2lM%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=Dis6ah%2BeLyg%2BTO0LFS0PMnFukRLgM20L9zzLHCDI3a8%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=opZkx3AA1xto%2BNWpJOmrhocijVb8aWedxvPDLZEo3SU%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=22yRIw86wjMad5BpE/ZOrRmnV9Ze0%2Bdq1XsA7Wj3Ql0%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=4JKhYszXThoNwVp16UvGlBBFtpPz5gxhkjM8zBsWpVQ%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", "headers": { "User-Agent": [ "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -11396,19 +12060,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "1f74c268-56ec-11e9-8755-44032c851686" + "d33fcfc2-57f3-11e9-aa04-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "14632" + "14710" ] } }, @@ -11418,33 +12082,33 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" + "request-id": [ + "54ff6d64-07e5-4edc-9112-58686860fca1" ], - "Date": [ - "Thu, 04 Apr 2019 15:12:56 GMT" + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" ], "Content-Type": [ "application/json;odata=minimalmetadata" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Transfer-Encoding": [ - "chunked" - ], - "request-id": [ - "55156081-66c7-4eb8-8e84-e2b3a1b9a5a0" - ], - "DataServiceVersion": [ - "3.0" + "Date": [ + "Fri, 05 Apr 2019 22:40:35 GMT" ], "X-Content-Type-Options": [ "nosniff" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6B910047128A9\",\"lastModified\":\"2019-04-04T15:12:56.4644009Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6B910047BB01A\",\"lastModified\":\"2019-04-04T15:12:56.5334042Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6B910047E963F\",\"lastModified\":\"2019-04-04T15:12:56.5524031Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6B91004771C20\",\"lastModified\":\"2019-04-04T15:12:56.5034016Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6B91004828DD1\",\"lastModified\":\"2019-04-04T15:12:56.5784017Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6B9100483ED71\",\"lastModified\":\"2019-04-04T15:12:56.5874033Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6B9100482DBEF\",\"lastModified\":\"2019-04-04T15:12:56.5804015Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6B910047E963F\",\"lastModified\":\"2019-04-04T15:12:56.5524031Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6B910047E2967\",\"lastModified\":\"2019-04-04T15:12:56.5496167Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6B910047FF5F9\",\"lastModified\":\"2019-04-04T15:12:56.5614073Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6B91004817C6B\",\"lastModified\":\"2019-04-04T15:12:56.5714027Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6B910047FB16B\",\"lastModified\":\"2019-04-04T15:12:56.5596523Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6B910047FF5F9\",\"lastModified\":\"2019-04-04T15:12:56.5614073Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6B91004801CE3\",\"lastModified\":\"2019-04-04T15:12:56.5624035Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6B9100481A36C\",\"lastModified\":\"2019-04-04T15:12:56.5724012Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6B91004830318\",\"lastModified\":\"2019-04-04T15:12:56.581404Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6B9100481559D\",\"lastModified\":\"2019-04-04T15:12:56.5704093Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6B91004812E8A\",\"lastModified\":\"2019-04-04T15:12:56.569409Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6B9100481A36C\",\"lastModified\":\"2019-04-04T15:12:56.5724012Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6BA17B7F2BC60\",\"lastModified\":\"2019-04-05T22:40:35.265648Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6BA17B7F9E83C\",\"lastModified\":\"2019-04-05T22:40:35.312646Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6BA17B7FCF59A\",\"lastModified\":\"2019-04-05T22:40:35.332649Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6BA17B80050F4\",\"lastModified\":\"2019-04-05T22:40:35.3546484Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6BA17B8050C67\",\"lastModified\":\"2019-04-05T22:40:35.3856615Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6BA17B807F224\",\"lastModified\":\"2019-04-05T22:40:35.40465Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6BA17B8035E26\",\"lastModified\":\"2019-04-05T22:40:35.374647Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6BA17B8061D5D\",\"lastModified\":\"2019-04-05T22:40:35.3926493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6BA17B80692D9\",\"lastModified\":\"2019-04-05T22:40:35.3956569Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6BA17B8061D5D\",\"lastModified\":\"2019-04-05T22:40:35.3926493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6BA17B8061D5D\",\"lastModified\":\"2019-04-05T22:40:35.3926493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6BA17B8066B81\",\"lastModified\":\"2019-04-05T22:40:35.3946497Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6BA17B80978B9\",\"lastModified\":\"2019-04-05T22:40:35.4146489Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6BA17B807826F\",\"lastModified\":\"2019-04-05T22:40:35.4017903Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6BA17B807A3EB\",\"lastModified\":\"2019-04-05T22:40:35.4026475Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6BA17B80978B9\",\"lastModified\":\"2019-04-05T22:40:35.4146489Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6BA17B80AD84D\",\"lastModified\":\"2019-04-05T22:40:35.4236493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6BA17B807CB13\",\"lastModified\":\"2019-04-05T22:40:35.4036499Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BA17B80AD84D\",\"lastModified\":\"2019-04-05T22:40:35.4236493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n }\r\n ]\r\n}" } } }, @@ -11467,13 +12131,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDM5MDA5OSwibmJmIjoxNTU0MzkwMDk5LCJleHAiOjE1NTQzOTM5OTksIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQVIzTkdsNm9UR0ZqYU1kTlZiaVhjb1V5ZlQ3ejRaVTF6aXphalRzZUFhWUJUelNyMWpDaXRLTzI1ei9GRjVzZHFnanlMTXlVakxhK1oyem1OK0g2QWFBPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE0Ny4yNTEiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiUUNPUXBJb0ozMHl1NVBGMk4wRWhBQSIsInZlciI6IjEuMCJ9.LckW7fmMewroQ7e_ObhYBBsOoH9nBZQA9Ddu67P7qawFt4A4oVzp2R6YZh4OWnD6BOkxasvm3ffQutvgHEoHIl8k7Geb-LBcichMkNp-hvEedTwp3EjNnIO05UIL525tax7855yfRMDEShliLOgUYUakFjdvjSbY2yUTqcpEXOE-HtSB3arw077Ecp5uRnM0mPKmHt0swq_p-d5p4Vb6fxRCk75tFhNKG_e3JWiofDqTTdZ6ghcAhB8AyeDu_X5NPGC8tSPTs_d21nZeHWBizGsuIIehv9Bc5Dt2-rJ4wN7cdykjPKc9W0YsnpTagl1ETFgcZa70kvu1Cp9r4iow-w" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "207e1390-56ec-11e9-b6d2-44032c851686" + "d3fbfc3a-57f3-11e9-9787-44032c851686" ], "accept-language": [ "en-US" @@ -11489,32 +12153,32 @@ "message": "OK" }, "headers": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Thu, 04 Apr 2019 15:12:57 GMT" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" - ], "ETag": [ - "0x8D6B91004F9706C" + "0x8D6BA17B85427B0" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "request-id": [ + "b6ac2e90-e510-4e72-a4e2-f903aa340fd6" ], "Last-Modified": [ - "Thu, 04 Apr 2019 15:12:57 GMT" + "Fri, 05 Apr 2019 22:40:35 GMT" + ], + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], - "request-id": [ - "ff3875d5-a7bd-4103-aa87-4394cc392cbe" + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" ], - "DataServiceVersion": [ - "3.0" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Fri, 05 Apr 2019 22:40:35 GMT" ], "X-Content-Type-Options": [ "nosniff" diff --git a/tests/recordings/test_batch_upload_live.yaml b/tests/recordings/test_batch_upload_live.yaml index d1591668..c6a78d08 100644 --- a/tests/recordings/test_batch_upload_live.yaml +++ b/tests/recordings/test_batch_upload_live.yaml @@ -4,11 +4,11 @@ { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2019-08-01", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-batch/7.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -20,10 +20,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" + ], + "Content-Type": [ + "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "620e0246-c36d-11e9-8d5d-44032c851686" + "ae617dc6-57e4-11e9-8051-44032c851686" ], "accept-language": [ "en-US" @@ -36,48 +39,48 @@ "message": "OK" }, "headers": { - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "ETag": [ - "\"0x8D719F74B1A7775\"" - ], "Vary": [ "Accept-Encoding" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" + "Transfer-Encoding": [ + "chunked" ], - "Cache-Control": [ - "no-cache" + "Last-Modified": [ + "Wed, 27 Mar 2019 18:16:27 GMT" + ], + "ETag": [ + "\"0x8D6B2E053F1292B\"" + ], + "Expires": [ + "-1" ], "Date": [ - "Tue, 20 Aug 2019 17:10:18 GMT" + "Fri, 05 Apr 2019 20:52:09 GMT" ], - "Pragma": [ + "Cache-Control": [ "no-cache" ], - "Transfer-Encoding": [ - "chunked" + "Content-Type": [ + "application/json; charset=utf-8" ], - "Expires": [ - "-1" + "X-Content-Type-Options": [ + "nosniff" ], - "Last-Modified": [ - "Mon, 05 Aug 2019 22:50:20 GMT" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Pragma": [ + "no-cache" ], "content-length": [ - "2074" + "674" ] }, "body": { - "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"dedicatedCoreQuotaPerVMFamily\":[{\"name\":\"standardA0_A7Family\",\"coreQuota\":20},{\"name\":\"standardDv2Family\",\"coreQuota\":20},{\"name\":\"standardA8_A11Family\",\"coreQuota\":0},{\"name\":\"standardDFamily\",\"coreQuota\":0},{\"name\":\"standardGFamily\",\"coreQuota\":0},{\"name\":\"basicAFamily\",\"coreQuota\":0},{\"name\":\"standardFFamily\",\"coreQuota\":0},{\"name\":\"standardNVFamily\",\"coreQuota\":0},{\"name\":\"standardNVPromoFamily\",\"coreQuota\":0},{\"name\":\"standardNCFamily\",\"coreQuota\":0},{\"name\":\"standardNCPromoFamily\",\"coreQuota\":0},{\"name\":\"standardHFamily\",\"coreQuota\":0},{\"name\":\"standardHPromoFamily\",\"coreQuota\":0},{\"name\":\"standardAv2Family\",\"coreQuota\":0},{\"name\":\"standardMSFamily\",\"coreQuota\":0},{\"name\":\"standardDv3Family\",\"coreQuota\":0},{\"name\":\"standardEv3Family\",\"coreQuota\":0},{\"name\":\"standardDSFamily\",\"coreQuota\":0},{\"name\":\"standardDSv2Family\",\"coreQuota\":0},{\"name\":\"standardDSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSFamily\",\"coreQuota\":0},{\"name\":\"standardESv3Family\",\"coreQuota\":0},{\"name\":\"standardGSFamily\",\"coreQuota\":0},{\"name\":\"standardLSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv2Family\",\"coreQuota\":0},{\"name\":\"standardNDSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSv2Family\",\"coreQuota\":0},{\"name\":\"standardHBSFamily\",\"coreQuota\":0},{\"name\":\"standardHCSFamily\",\"coreQuota\":0}],\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-07-16T21:55:40.4909987Z\"},\"poolAllocationMode\":\"BatchService\"},\"tags\":{\"rawr\":\"test\"}}" + "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}" } } }, @@ -88,7 +91,7 @@ "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -100,13 +103,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "635f8cc8-c36d-11e9-8f2e-44032c851686" + "aea4c81c-57e4-11e9-aac1-44032c851686" ], "accept-language": [ "en-US" @@ -122,38 +125,38 @@ "message": "OK" }, "headers": { - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], "Vary": [ "Accept-Encoding" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1198" + "Transfer-Encoding": [ + "chunked" ], - "Content-Type": [ - "application/json" + "Date": [ + "Fri, 05 Apr 2019 20:52:10 GMT" + ], + "Expires": [ + "-1" ], "Cache-Control": [ "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:19 GMT" + "Content-Type": [ + "application/json" ], - "Pragma": [ - "no-cache" + "X-Content-Type-Options": [ + "nosniff" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Pragma": [ + "no-cache" ], "content-length": [ "288" @@ -180,13 +183,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "639a9b26-c36d-11e9-bd96-44032c851686" + "aed79924-57e4-11e9-ba90-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Fri, 05 Apr 2019 20:52:10 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:v7Qz3XrJDiV1hh2gPzfDRZpEwaXRSQlIVDDYAJfIxMQ=" + "SharedKey sdkteststore2:a3GZY7lPJOJl8v6m5tnZ8Plxbsrfdk5qhaKlsJ5LY2Y=" ], "Content-Length": [ "0" @@ -199,23 +202,23 @@ "message": "Created" }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Date": [ + "Fri, 05 Apr 2019 20:52:10 GMT" ], - "ETag": [ - "\"0x8D7259147EDD103\"" + "Last-Modified": [ + "Fri, 05 Apr 2019 20:52:10 GMT" ], "Content-Length": [ "0" ], + "ETag": [ + "\"0x8D6BA08931A6C5E\"" + ], "x-ms-version": [ "2017-07-29" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" - ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ] }, "body": { @@ -239,13 +242,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "63bda924-c36d-11e9-9f01-44032c851686" + "aef6b89c-57e4-11e9-870f-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Fri, 05 Apr 2019 20:52:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:5vEpgDf9i7CfmjL971k17Nc+Pk88wELnAFKqF2GpHEY=" + "SharedKey sdkteststore2:fCC2m4DsbvS/99ZcK71pyZO95CPbzjYRCedLu6WyUCQ=" ] } }, @@ -255,11 +258,11 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Date": [ + "Fri, 05 Apr 2019 20:52:10 GMT" ], - "x-ms-version": [ - "2017-07-29" + "Content-Length": [ + "215" ], "x-ms-error-code": [ "BlobNotFound" @@ -267,15 +270,15 @@ "Content-Type": [ "application/xml" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "x-ms-version": [ + "2017-07-29" ], - "Content-Length": [ - "215" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:4bdbf2ca-201e-0095-757a-570533000000\nTime:2019-08-20T17:10:20.3918348Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:9dd6bab5-c01e-00b6-10f1-eb6af8000000\nTime:2019-04-05T20:52:11.0871641Z" } } }, @@ -307,13 +310,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "63c45fe2-c36d-11e9-a84e-44032c851686" + "aefd6f64-57e4-11e9-8892-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Fri, 05 Apr 2019 20:52:11 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:luZ7DbzrTNLthPaTz0OPxcuZVcuucyVjpOYOWE5WUyI=" + "SharedKey sdkteststore2:o8O+O1UXt1LClLVjfAOw3Od7vUqW60MpV4soaSdRkFA=" ] } }, @@ -326,26 +329,26 @@ "x-ms-request-server-encrypted": [ "true" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Date": [ + "Fri, 05 Apr 2019 20:52:10 GMT" ], - "ETag": [ - "\"0x8D7259147FB9423\"" + "Last-Modified": [ + "Fri, 05 Apr 2019 20:52:11 GMT" ], "Content-Length": [ "0" ], - "Content-MD5": [ - "xMpCOKC5I4INzFCab3WEmw==" + "ETag": [ + "\"0x8D6BA08932E394B\"" ], "x-ms-version": [ "2017-07-29" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Content-MD5": [ + "xMpCOKC5I4INzFCab3WEmw==" ] }, "body": { @@ -356,11 +359,11 @@ { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2019-08-01", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-batch/7.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -372,10 +375,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" + ], + "Content-Type": [ + "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "63f757ec-c36d-11e9-abd6-44032c851686" + "af2801fa-57e4-11e9-96f5-44032c851686" ], "accept-language": [ "en-US" @@ -388,48 +394,48 @@ "message": "OK" }, "headers": { - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "ETag": [ - "\"0x8D719F74B1A7775\"" - ], "Vary": [ "Accept-Encoding" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" + "Transfer-Encoding": [ + "chunked" ], - "Cache-Control": [ - "no-cache" + "Last-Modified": [ + "Wed, 27 Mar 2019 18:16:27 GMT" + ], + "ETag": [ + "\"0x8D6B2E053F1292B\"" + ], + "Expires": [ + "-1" ], "Date": [ - "Tue, 20 Aug 2019 17:10:20 GMT" + "Fri, 05 Apr 2019 20:52:10 GMT" ], - "Pragma": [ + "Cache-Control": [ "no-cache" ], - "Transfer-Encoding": [ - "chunked" + "Content-Type": [ + "application/json; charset=utf-8" ], - "Expires": [ - "-1" + "X-Content-Type-Options": [ + "nosniff" ], - "Last-Modified": [ - "Mon, 05 Aug 2019 22:50:20 GMT" + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Pragma": [ + "no-cache" ], "content-length": [ - "2074" + "674" ] }, "body": { - "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"dedicatedCoreQuotaPerVMFamily\":[{\"name\":\"standardA0_A7Family\",\"coreQuota\":20},{\"name\":\"standardDv2Family\",\"coreQuota\":20},{\"name\":\"standardA8_A11Family\",\"coreQuota\":0},{\"name\":\"standardDFamily\",\"coreQuota\":0},{\"name\":\"standardGFamily\",\"coreQuota\":0},{\"name\":\"basicAFamily\",\"coreQuota\":0},{\"name\":\"standardFFamily\",\"coreQuota\":0},{\"name\":\"standardNVFamily\",\"coreQuota\":0},{\"name\":\"standardNVPromoFamily\",\"coreQuota\":0},{\"name\":\"standardNCFamily\",\"coreQuota\":0},{\"name\":\"standardNCPromoFamily\",\"coreQuota\":0},{\"name\":\"standardHFamily\",\"coreQuota\":0},{\"name\":\"standardHPromoFamily\",\"coreQuota\":0},{\"name\":\"standardAv2Family\",\"coreQuota\":0},{\"name\":\"standardMSFamily\",\"coreQuota\":0},{\"name\":\"standardDv3Family\",\"coreQuota\":0},{\"name\":\"standardEv3Family\",\"coreQuota\":0},{\"name\":\"standardDSFamily\",\"coreQuota\":0},{\"name\":\"standardDSv2Family\",\"coreQuota\":0},{\"name\":\"standardDSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSFamily\",\"coreQuota\":0},{\"name\":\"standardESv3Family\",\"coreQuota\":0},{\"name\":\"standardGSFamily\",\"coreQuota\":0},{\"name\":\"standardLSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv2Family\",\"coreQuota\":0},{\"name\":\"standardNDSFamily\",\"coreQuota\":0},{\"name\":\"standardNCSv3Family\",\"coreQuota\":0},{\"name\":\"standardFSv2Family\",\"coreQuota\":0},{\"name\":\"standardHBSFamily\",\"coreQuota\":0},{\"name\":\"standardHCSFamily\",\"coreQuota\":0}],\"dedicatedCoreQuotaPerVMFamilyEnforced\":false,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-07-16T21:55:40.4909987Z\"},\"poolAllocationMode\":\"BatchService\"},\"tags\":{\"rawr\":\"test\"}}" + "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}" } } }, @@ -440,7 +446,7 @@ "body": null, "headers": { "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.1 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -452,13 +458,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTY2MzIwNzE4LCJuYmYiOjE1NjYzMjA3MTgsImV4cCI6MTU2NjMyNDYxOCwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOE1BQUFBT0lvTEVUclJGWnErQmFoaVNrVmhNNXR5QzYwSDZBSDNlZG5vMGJQbTFRYUtvV3Rva01QaDdiZjIvM0VFZ0NHbmo0UFFWY3FHaXdVbkFQYjRONmZwZ1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTU5LjIyIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IjMtaVZMWlVxZzhyWVVFNHlLRXZPSktES0N2Z1I0SVJvQXJhVzlRWmJNRkEiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IlZkQ05pT2w3Z0UyWkw3QTVBMFFPQUEiLCJ2ZXIiOiIxLjAifQ.XjlVAUievRf_e8bKWsAY7Ca1e2RR2FIB4PpXBKa6Vzy5xfZ_c33OFQWkB610FXt-E86jl61B0siTx1aVQQbXt9iAdqcfb27MKeDX_sXi_BjTUIA6xgfRm1CnG8vFq_GpLPy0GIgzuQkaPqPifXIz39SzMavmrLaAp5Ct1j09e9yXwcIxLhSRg_WibgqY22tbcremd_-y9qZex3xEzc798Nz62_AADDKgBjivlwxGX5TpOiEZxhNhD6pS4nlTJ4eiyS7mFRC1nIGB1SMZrgnWjQ5dRcib_7krgdW_4J-kqA-Tg4FGo8aPFBxjMADxfCOF04W2KykUZpLfF_9c2HZGoQ" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "64348c5a-c36d-11e9-bba3-44032c851686" + "af5fb388-57e4-11e9-84f0-44032c851686" ], "accept-language": [ "en-US" @@ -474,38 +480,38 @@ "message": "OK" }, "headers": { - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], "Vary": [ "Accept-Encoding" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "Transfer-Encoding": [ + "chunked" ], - "Content-Type": [ - "application/json" + "Date": [ + "Fri, 05 Apr 2019 20:52:11 GMT" + ], + "Expires": [ + "-1" ], "Cache-Control": [ "no-cache" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "Content-Type": [ + "application/json" ], - "Pragma": [ - "no-cache" + "X-Content-Type-Options": [ + "nosniff" ], - "Transfer-Encoding": [ - "chunked" + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Expires": [ - "-1" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Pragma": [ + "no-cache" ], "content-length": [ "288" @@ -532,13 +538,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "646d2eb6-c36d-11e9-94af-44032c851686" + "af87ced2-57e4-11e9-80da-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "Fri, 05 Apr 2019 20:52:12 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:1isvSPc/8yB/u2FpErFqYsn4rl5T9zNv2dKWniT5ZqY=" + "SharedKey sdkteststore2:yhxbFWAhKJQQBRKRVeohsgencX2+uqILvBbUURqP8Qs=" ], "Content-Length": [ "0" @@ -551,11 +557,11 @@ "message": "The specified container already exists." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Date": [ + "Fri, 05 Apr 2019 20:52:11 GMT" ], - "x-ms-version": [ - "2017-07-29" + "Content-Length": [ + "230" ], "x-ms-error-code": [ "ContainerAlreadyExists" @@ -563,15 +569,15 @@ "Content-Type": [ "application/xml" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "x-ms-version": [ + "2017-07-29" ], - "Content-Length": [ - "230" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:2ba5f07f-801e-00d7-587a-572e27000000\nTime:2019-08-20T17:10:21.6712573Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:e905f121-a01e-00a6-75f1-eb5c1e000000\nTime:2019-04-05T20:52:12.1607504Z" } } }, @@ -591,13 +597,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "64877314-c36d-11e9-b7df-44032c851686" + "afa14b62-57e4-11e9-9672-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "Fri, 05 Apr 2019 20:52:12 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:aAHSeQqJMQfy81sMSEeHBMNxvc4B5Sq9dWqWou4q/7M=" + "SharedKey sdkteststore2:2/Df1STpNSdP3XjcmcwsqxPk1dQONVumhcWvqUgJ0g0=" ] } }, @@ -607,11 +613,11 @@ "message": "The specified blob does not exist." }, "headers": { - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Date": [ + "Fri, 05 Apr 2019 20:52:11 GMT" ], - "x-ms-version": [ - "2017-07-29" + "Content-Length": [ + "215" ], "x-ms-error-code": [ "BlobNotFound" @@ -619,15 +625,15 @@ "Content-Type": [ "application/xml" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "x-ms-version": [ + "2017-07-29" ], - "Content-Length": [ - "215" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ] }, "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:2ba5f090-801e-00d7-677a-572e27000000\nTime:2019-08-20T17:10:21.7162882Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:e905f129-a01e-00a6-7bf1-eb5c1e000000\nTime:2019-04-05T20:52:12.2117871Z" } } }, @@ -659,13 +665,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "648e5078-c36d-11e9-bd72-44032c851686" + "afa92fa2-57e4-11e9-a8ed-44032c851686" ], "x-ms-date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "Fri, 05 Apr 2019 20:52:12 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:CA4y9UdmvqQCSTVMsl3UlY5NEZN/hlYLMW8pBl8xt04=" + "SharedKey sdkteststore2:yAYuYaJqr68Y2WmT8mbpHZmWlwdeEiMu23NBFDqIr2w=" ] } }, @@ -678,26 +684,26 @@ "x-ms-request-server-encrypted": [ "true" ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + "Date": [ + "Fri, 05 Apr 2019 20:52:11 GMT" ], - "ETag": [ - "\"0x8D7259148C5E662\"" + "Last-Modified": [ + "Fri, 05 Apr 2019 20:52:12 GMT" ], "Content-Length": [ "0" ], - "Content-MD5": [ - "xMpCOKC5I4INzFCab3WEmw==" + "ETag": [ + "\"0x8D6BA0893D9DB34\"" ], "x-ms-version": [ "2017-07-29" ], - "Date": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Tue, 20 Aug 2019 17:10:21 GMT" + "Content-MD5": [ + "xMpCOKC5I4INzFCab3WEmw==" ] }, "body": { From c685b918da3c337dfb5e36d4c6799907fb67bd18 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Wed, 10 Apr 2019 09:31:18 -0700 Subject: [PATCH 03/13] fix pylint --- azext/batch/_file_utils.py | 1 - azext/batch/operations/job_operations.py | 35 +++++++++++------------ azext/batch/operations/pool_operations.py | 6 ++-- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/azext/batch/_file_utils.py b/azext/batch/_file_utils.py index d3bc7b44..09fb99eb 100644 --- a/azext/batch/_file_utils.py +++ b/azext/batch/_file_utils.py @@ -340,4 +340,3 @@ def resolve_resource_file(self, resource_file): raise ValueError('Not implemented') return [resource_file] - diff --git a/azext/batch/operations/job_operations.py b/azext/batch/operations/job_operations.py index e45b5f74..bc0254b6 100644 --- a/azext/batch/operations/job_operations.py +++ b/azext/batch/operations/job_operations.py @@ -7,8 +7,6 @@ import importlib import logging -from datetime import datetime as dt -from mock import patch from msrest.exceptions import DeserializationError from azure.batch.operations._job_operations import JobOperations @@ -16,7 +14,7 @@ from .. import _template_utils from .. import _pool_utils from .._file_utils import FileUtils -from ..models.constants import * +from ..models.constants import SupportedRestApi, SupportRestApiToSdkVersion logger = logging.getLogger(__name__) @@ -98,9 +96,9 @@ def jobparameter_from_json(json_data): vendored_models) else: logging.warning("Invalid apiVersion, defaulting to latest") - return ExtendedJobOperations._jobparameter_from_json( - json_data, - models) + return ExtendedJobOperations._jobparameter_from_json( + json_data, + models) @staticmethod def _jobparameter_from_json(json_data, models_impl): @@ -212,22 +210,21 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, **operation_config) self.api_version = original_api_version return ret - else: - return self._add( - job, - job_add_options, - custom_headers, - raw, - threads, - _pool_utils, - _template_utils, - models, - **operation_config) - except Exception as e: + return self._add( + job, + job_add_options, + custom_headers, + raw, + threads, + _pool_utils, + _template_utils, + models, + **operation_config) + except Exception as e: # pylint: disable=broad-except if original_api_version: self.api_version = original_api_version self._parent.task.api_version = original_api_version - raise e + raise e add.metadata = {'url': '/jobs'} def _add(self, job, job_add_options, custom_headers, raw, diff --git a/azext/batch/operations/pool_operations.py b/azext/batch/operations/pool_operations.py index 87bcd683..a90d4e79 100644 --- a/azext/batch/operations/pool_operations.py +++ b/azext/batch/operations/pool_operations.py @@ -13,7 +13,7 @@ from msrest import Serializer, Deserializer from .. import models -from ..models.constants import * +from ..models.constants import SupportedRestApi, SupportRestApiToSdkVersion from .. import _file_utils from .. import _pool_utils from .. import _template_utils @@ -190,7 +190,6 @@ def add(self, pool, pool_add_options=None, custom_headers=None, raw=False, **ope **operation_config) self.api_version = original_api_version return ret - else: return self._add( pool, pool_add_options, @@ -201,7 +200,7 @@ def add(self, pool, pool_add_options=None, custom_headers=None, raw=False, **ope _file_utils, models, **operation_config) - except Exception: + except Exception: # pylint: disable=broad-except if original_api_version: self.api_version = original_api_version raise @@ -257,4 +256,3 @@ def _add(self, return super(ExtendedPoolOperations, self).add(pool, pool_add_options, custom_headers, raw, **operation_config) - From ca779600e1a383e14ce06645f6662feb281ef863 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Wed, 10 Apr 2019 16:48:52 -0700 Subject: [PATCH 04/13] update unit tests --- tests/test_extensions.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/test_extensions.py b/tests/test_extensions.py index 3124ba88..61561aa5 100644 --- a/tests/test_extensions.py +++ b/tests/test_extensions.py @@ -625,12 +625,13 @@ def test_batch_extensions_parse_invalid_parametricsweep(self): utils._expand_parametric_sweep(template) # pylint: disable=protected-access def test_batch_extensions_preserve_resourcefiles(self): - fileutils = file_utils.FileUtils(None) + fileutils = file_utils.FileUtils(MagicMock(spec=BlockBlobService)) request = Mock( resource_files=[ Mock( http_url='abc', - file_path='xyz') + file_path='xyz', + source=None) ]) transformed = utils.post_processing(request, fileutils, pool_utils.PoolOperatingSystemFlavor.LINUX) self.assertEqual(transformed, request) @@ -638,27 +639,26 @@ def test_batch_extensions_preserve_resourcefiles(self): common_resource_files=[ Mock( http_url='abc', - file_path='xyz') + file_path='xyz', + source=None) ], job_manager_task=Mock( resource_files=[ Mock( http_url='foo', - file_path='bar') + file_path='bar', + source=None) ] ) ) transformed = utils.post_processing(request, fileutils, pool_utils.PoolOperatingSystemFlavor.WINDOWS) self.assertEqual(transformed, request) request = [ # pylint: disable=redefined-variable-type - Mock(resource_files=[Mock(http_url='abc', file_path='xyz')]), - Mock(resource_files=[Mock(http_url='abc', file_path='xyz')]) + Mock(resource_files=[Mock(http_url='abc', file_path='xyz', source=None)]), + Mock(resource_files=[Mock(http_url='abc', file_path='xyz', source=None)]) ] transformed = utils.post_processing(request, fileutils, pool_utils.PoolOperatingSystemFlavor.WINDOWS) self.assertEqual(transformed, request) - request = Mock(resource_files=[Mock(http_url='abc', file_path=None)]) - with self.assertRaises(ValueError): - utils.post_processing(request, fileutils, pool_utils.PoolOperatingSystemFlavor.WINDOWS) def test_batch_extensions_validate_parameter(self): content = { From 04a3b389b0f1234328968bb0f9ee2b90b4eb5d24 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Fri, 12 Apr 2019 09:46:36 -0700 Subject: [PATCH 05/13] Update tests --- azext/batch/operations/job_operations.py | 6 +- batch-cli-extensions/azext_batch/custom.py | 3 - .../test_batch_extensions_live.yaml | 12193 ---------------- tests/recordings/test_batch_upload_live.yaml | 715 - 4 files changed, 3 insertions(+), 12914 deletions(-) delete mode 100644 tests/recordings/test_batch_extensions_live.yaml delete mode 100644 tests/recordings/test_batch_upload_live.yaml diff --git a/azext/batch/operations/job_operations.py b/azext/batch/operations/job_operations.py index bc0254b6..3acde8e6 100644 --- a/azext/batch/operations/job_operations.py +++ b/azext/batch/operations/job_operations.py @@ -159,9 +159,9 @@ def add(self, job, job_add_options=None, custom_headers=None, raw=False, """ original_api_version = None api_version = None - vendored_pool_utils = importlib.import_module("azext.batch._pool_utils") - vendored_template_utils = importlib.import_module("azext.batch._template_utils") - vendored_models = importlib.import_module("azext.batch.models") + vendored_pool_utils = None + vendored_template_utils = None + vendored_models = None api_version_raw = getattr(job, 'api_version', None) if api_version_raw: for valid_version in SupportedRestApi: diff --git a/batch-cli-extensions/azext_batch/custom.py b/batch-cli-extensions/azext_batch/custom.py index ad3dd109..8e4c70e4 100644 --- a/batch-cli-extensions/azext_batch/custom.py +++ b/batch-cli-extensions/azext_batch/custom.py @@ -7,7 +7,6 @@ from knack.log import get_logger from knack.prompting import prompt -from azext.batch import _template_utils as templates from azext.batch.errors import CreateTasksErrorException from azext.batch.models import PoolAddParameter, JobAddParameter, JobConstraints from azext.batch.operations import ExtendedPoolOperations, ExtendedJobOperations @@ -51,7 +50,6 @@ def create_pool(client, template=None, parameters=None, json_file=None, id=None, pool = ExtendedPoolOperations.poolparameter_from_json(json_obj) if pool is None: raise ValueError("JSON pool parameter is not in correct format.") - templates.validate_json_object(json_obj, pool) else: if not id: raise ValueError('Please supply template, json_file, or id') @@ -147,7 +145,6 @@ def create_job(client, template=None, parameters=None, json_file=None, id=None, raise if job is None: raise ValueError("JSON job parameter is not in correct format.") - templates.validate_json_object(json_obj, job) else: if not id: raise ValueError('Please supply template, json_file, or id') diff --git a/tests/recordings/test_batch_extensions_live.yaml b/tests/recordings/test_batch_extensions_live.yaml deleted file mode 100644 index b4e2f5d5..00000000 --- a/tests/recordings/test_batch_extensions_live.yaml +++ /dev/null @@ -1,12193 +0,0 @@ -{ - "version": 1, - "interactions": [ - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "541cb888-57f3-11e9-95f5-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:FVwV2mPoFaQ3QwmMk8ZUfkBs5mBQKQCtXk0E/m0nxe4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeff" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "54427d54-57f3-11e9-bbd5-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WNbyJQPcLUKQc4Kj8K6xuLD26ERiTDu/L4VZvXp2qz8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "c8a3e73d-c630-44ae-b00e-8561654f9520" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", - "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "547bff98-57f3-11e9-9f97-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "250" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:n2UVwTSbwVvx0XgIBZ9cZZ0zG8l7+rdIWDJmkWz0NeQ=" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified pool already exists." - }, - "headers": { - "request-id": [ - "54193fae-15a7-48da-8130-b42cfaf3f3dd" - ], - "DataServiceVersion": [ - "3.0" - ], - "Content-Length": [ - "334" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:54193fae-15a7-48da-8130-b42cfaf3f3dd\\nTime:2019-04-05T22:37:01.8910219Z\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "549c801a-57f3-11e9-bd23-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:01 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:RdjZfNDacmWZ6DAo4tQbByjhLTf/A21891AyQaWq9VQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6B84EBB557E6A" - ], - "request-id": [ - "c989e0ec-830f-4703-a6ea-c4cd8e20b43d" - ], - "Last-Modified": [ - "Wed, 03 Apr 2019 16:09:20 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:02 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6B84EBB557E6A\",\"lastModified\":\"2019-04-03T16:09:20.9406058Z\",\"creationTime\":\"2019-04-03T16:09:20.9406058Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-03T16:09:20.9406058Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-03T16:10:47.6983993Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "54bbeffe-57f3-11e9-a5dc-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:02 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:Ag0gXXT7rCtCMX0sOM/c/UXCBwchQfw4PEPU6reQpCQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "e87362d5-7c50-4914-ab4e-092341acdfa0" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:02 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:09:43.138649Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":42,\"totalTasksSucceeded\":42,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:09:42.537048Z\",\"endTime\":\"2019-04-04T15:09:43.105634Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"ncj-ubuntu1404\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "555327dc-57f3-11e9-85b0-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "66" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA173AE74865" - ], - "request-id": [ - "78a067e6-8b84-4f32-85a8-10d47d5180e3" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:05 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:04 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "56bfbb52-57f3-11e9-8a32-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "475" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "1a3a7784-e9ea-4dc8-bf57-2d19567d4cf2" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:05 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "573f0ab6-57f3-11e9-b6ce-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:06 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:6GIEQh+iZeSslPykRAljMhVuusSx/XeeX9h1sX5EQnA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA173AE74865" - ], - "request-id": [ - "469c9ce7-d579-46de-a287-177933ab2883" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:05 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:06 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6BA173AE74865\",\"lastModified\":\"2019-04-05T22:37:05.4753893Z\",\"creationTime\":\"2019-04-05T22:37:05.3909578Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:05.4753893Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:05.4753893Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "575d9242-57f3-11e9-85a5-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:06 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:scoe9vo6+5MPHnS3JKR2+yzTDaoSNRez+EodBX2suEc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "3078723a-5d3e-4853-9836-15edb8d6860b" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:06 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"creationTime\":\"2019-04-05T22:37:06.1790639Z\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:06.1790639Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5950e062-57f3-11e9-b0d1-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:09 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:v0suwSYTi8S5+/gDhjP13/KI8wpJqO5LbmMBYsmk/8A=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "c960fb74-3a7a-4669-a58b-3af27cbc77f5" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"creationTime\":\"2019-04-05T22:37:06.1790639Z\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:07.362269Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:06.817528Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:06.817528Z\",\"endTime\":\"2019-04-05T22:37:07.362269Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5998c3ee-57f3-11e9-b608-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:PLd0UH7YWK8o9BXPTxa25wwrqvvAvfxn5zfgSx9SJWA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA173B52A7AF" - ], - "request-id": [ - "9a5de812-39c1-442f-8ffc-7a909926e1ae" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:06 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BA173B52A7AF\",\"creationTime\":\"2019-04-05T22:37:06.1790639Z\",\"lastModified\":\"2019-04-05T22:37:06.1790639Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:07.362269Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:06.817528Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:06.817528Z\",\"endTime\":\"2019-04-05T22:37:07.362269Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "59c3cbd2-57f3-11e9-a203-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:gevf9JcDz2z9tHq1VLr8BGCJib7HtIBzM7N+UxVlcAk=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BFD4A0E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173C01909B394application/octet-streamq5CJBCU+RjEwwBnnq24YiQ==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF92AA00application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF50B2E5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "59d1fc78-57f3-11e9-b45a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:/Mm0U4lbGUFvVrvGKLugjxyxvCFQJmbtxYSDzzbapQs=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "request-id": [ - "25bcc8d7-985a-4466-af56-63ff183bbbba" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "59f2f202-57f3-11e9-9333-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:30bo/hM2NIv7M/x3krxu6Du+2m9x5liUAr+WYL2kHf8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BFD4A0E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173C01909B394application/octet-streamq5CJBCU+RjEwwBnnq24YiQ==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF92AA00application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:07 GMT0x8D6BA173BF50B2E5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "5a0122c6-57f3-11e9-ab39-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:YG22prPvprPAAm7I+fumrEEvRtIkN3cFVsF1qaGp3Oc=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "5a09fc74-57f3-11e9-a6af-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:dnGEKuVfqoOTCRAe08oWD/QhzsQ1M+OfzcAoElK1dJg=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:10 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "5a12d608-57f3-11e9-bf8f-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Xg1x8JuSnW+gFP5wBBJnA6vdqIOAjDkasT++1LfTdk8=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "5a1be17e-57f3-11e9-b736-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:2oboXg4A+B2q8brOzvS/IaCOkT4d6VTICFJFUgB/A14=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5a25091e-57f3-11e9-ad98-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:zC7bVyg+I5+MFV6qfEBMk76q5Hn6OciZvwcKwKqezj8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "1e31624b-7894-4e14-949e-2bff2c6afdfb" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", - "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "5a5f069e-57f3-11e9-8817-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "277" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:U6l+k8zRCijLZ4NUHb2pfAm51bk2svSNHkVo1w5oks0=" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified pool already exists." - }, - "headers": { - "request-id": [ - "93fd87af-95a6-4075-80e2-fd74500abfc0" - ], - "DataServiceVersion": [ - "3.0" - ], - "Content-Length": [ - "334" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:93fd87af-95a6-4075-80e2-fd74500abfc0\\nTime:2019-04-05T22:37:11.8381241Z\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5a89e70a-57f3-11e9-b3b0-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:RT1VxgGIvVlAlY+SBf2bGyzjCr23cwJIDL0HoOBI+d0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6AE50BA1ADAC6" - ], - "request-id": [ - "ef990633-aead-4b62-acd0-8d24e2371a75" - ], - "Last-Modified": [ - "Thu, 21 Mar 2019 22:58:26 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:12 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6AE50BA1ADAC6\",\"lastModified\":\"2019-03-21T22:58:26.2442694Z\",\"creationTime\":\"2019-03-19T17:19:57.2061915Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-03-19T17:19:57.2061915Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-03-21T22:59:46.7342494Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":2,\"targetDedicatedNodes\":2,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5ab2a9f4-57f3-11e9-ab95-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:12 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:jBA1uVHZEMYiLM4FbPK7UyEVL1FnTpxAoVvgDjkGqdY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "237a5fa2-7e09-4e4e-8a58-a9f31c0e3f48" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:12 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-04T15:10:04.6424Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":74,\"totalTasksSucceeded\":74,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-04T15:10:04.055754Z\",\"endTime\":\"2019-04-04T15:10:04.611151Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"ncj-windows-2012-r2\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "5b1b0a06-57f3-11e9-9607-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "76" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA173F9EAAC3" - ], - "request-id": [ - "97fd6fa9-1a63-4af2-9566-1b408d35cd0e" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:13 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:13 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "5b77c022-57f3-11e9-b9dd-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "480" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "861aa538-8190-4db3-9344-1e47b0e71f09" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:14 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5c1d8c7a-57f3-11e9-a92c-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:14 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:2hpzW+DPady1JA6qgkFnUgjMqjnASQEQM2rYSnGPgx4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA173F9EAAC3" - ], - "request-id": [ - "2d97034b-1361-410f-8cc0-2965deb4c449" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:13 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:14 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6BA173F9EAAC3\",\"lastModified\":\"2019-04-05T22:37:13.3881027Z\",\"creationTime\":\"2019-04-05T22:37:13.3741185Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:13.3881027Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:13.3881027Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5c3b9ca4-57f3-11e9-b71a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:14 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:b6vYKt4p4JpqxejVGDJPn4KbzIH6T2Wbja8WzoqDDfQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "8bd4c9d2-009c-4956-8c7e-4522634d4d76" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:14 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"creationTime\":\"2019-04-05T22:37:14.4236141Z\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:14.999001Z\",\"previousState\":\"active\",\"previousStateTransitionTime\":\"2019-04-05T22:37:14.4236141Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5e28c4ca-57f3-11e9-9f80-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:17 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:MXa4ye6drS6dXTiYDY+foBaYluTEfSRqDakhzoZz8wk=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "6b8696eb-9af5-4ab1-b61e-e4a6170ed81b" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"creationTime\":\"2019-04-05T22:37:14.4236141Z\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:15.894316Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:15.30199Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:15.30199Z\",\"endTime\":\"2019-04-05T22:37:15.894316Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5e581214-57f3-11e9-837d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:hra/ArfEB128G50E74BZIMC52DVUhLell6+kMTajJKQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA17403CAC6D" - ], - "request-id": [ - "c08328c2-4a5b-4a6f-96cc-bd918797cc0e" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:14 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BA17403CAC6D\",\"creationTime\":\"2019-04-05T22:37:14.4236141Z\",\"lastModified\":\"2019-04-05T22:37:14.4236141Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:15.894316Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:15.30199Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-05T22%3A37%3A01Z&se=2019-04-06T22%3A37%3A01Z&sp=rw&sv=2017-07-29&sr=c&sig=wQjXcZFQ9c9TCoqGA53/ojy7K8ATeTouyPt/8a5BdP4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:15.30199Z\",\"endTime\":\"2019-04-05T22:37:15.894316Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "5e842b38-57f3-11e9-a1db-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:XJtDndfXXEH34I4QVdfy/pSyhKmIKXkCM1vuhlzNIIc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740E932B80application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740EA9285405application/octet-streamE9THmMV6eEEIW5fkU9DQfg==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740EBCB3F0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:15 GMT0x8D6BA1740ED2B154application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5e8feb18-57f3-11e9-8fa2-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:p2HiQnMvbaBrv6MkGFQKXf6T3wan4fL8BHiITbIg73E=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "request-id": [ - "934a7045-0364-4664-b8ef-bcfe0b98e907" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "5eb10cae-57f3-11e9-8744-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:0bNYVoPGNdfoNYBzUsxBKEYwIZzq7gaACJ58H0bMKnY=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified container does not exist." - }, - "headers": { - "Content-Length": [ - "225" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerNotFoundThe specified container does not exist.\nRequestId:b31cb981-001e-0023-5800-ec0bcb000000\nTime:2019-04-05T22:37:18.8705697Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5ebaf758-57f3-11e9-9728-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:/gfqWdsZr18YzItX4w9h0jHDcEHR5j6JSRCicqQTjN4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "07fd894a-2aa9-4c70-9788-914efa868664" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:18 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", - "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "5ee5d90a-57f3-11e9-9016-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "250" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:19 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:jiQeu8uPOXwjZxYMFmMOjlpNxK2ykPqVxbZbFPeuTjM=" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified pool already exists." - }, - "headers": { - "request-id": [ - "26c08d88-735d-4f16-93a3-a1708de7ebab" - ], - "DataServiceVersion": [ - "3.0" - ], - "Content-Length": [ - "334" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:19 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:26c08d88-735d-4f16-93a3-a1708de7ebab\\nTime:2019-04-05T22:37:19.4488585Z\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5f135174-57f3-11e9-b162-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:19 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:2yseYLO7/zLrE9NE81cOHB0XjL1Enk10l1GosMKiEps=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6B84EBB557E6A" - ], - "request-id": [ - "41f81ee9-0764-4b88-90fa-7e068887facb" - ], - "Last-Modified": [ - "Wed, 03 Apr 2019 16:09:20 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:19 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6B84EBB557E6A\",\"lastModified\":\"2019-04-03T16:09:20.9406058Z\",\"creationTime\":\"2019-04-03T16:09:20.9406058Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-03T16:09:20.9406058Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-03T16:10:47.6983993Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "5f317992-57f3-11e9-a377-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:19 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WFp27FyRqxGO4aTHJz/KHtY5NX8i+kLGM2o6LncETz0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "af1a4fba-8238-4e47-bd7f-d143cc6913f9" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:19 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-05T22:37:07.397589Z\",\"lastBootTime\":\"2019-04-03T16:10:52.796165Z\",\"allocationTime\":\"2019-04-03T16:10:46.5831067Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":43,\"totalTasksSucceeded\":43,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:06.817528Z\",\"endTime\":\"2019-04-05T22:37:07.362269Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"13.77.204.166\",\"publicFQDN\":\"dnscce427e7-1a3b-4339-b1f6-0a4e37a92468-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-03T16:10:52.796165Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "5f8565e2-57f3-11e9-a341-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:21 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "686" - ] - }, - "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "60a5c7ec-57f3-11e9-afaa-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:21 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "60ea009a-57f3-11e9-999f-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:22 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:8EawBVR0O0PcL4neu/iYFjEe8HErjFry6xcBiX3ht+M=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA174533FD55\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:22 GMT" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:21 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"ncj-ubuntu1404-1\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "610c8e64-57f3-11e9-a630-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "68" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA1745D9BD83" - ], - "request-id": [ - "0739b3fa-ee0c-4c4b-8e5e-6d95512eb090" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:23 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:23 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "61b24dc0-57f3-11e9-ba1c-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "469" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "779f8118-8777-4697-b828-f3870a842357" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:24 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6242f678-57f3-11e9-a812-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:24 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:n2hGembRQktj/YKjWJG9wuSB1S5ipfxfTbFkOygpb8M=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1745D9BD83" - ], - "request-id": [ - "4352fedb-9495-41a4-9313-466dc442ff69" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:23 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:25 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6BA1745D9BD83\",\"lastModified\":\"2019-04-05T22:37:23.8415747Z\",\"creationTime\":\"2019-04-05T22:37:23.8265755Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:23.8415747Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:23.8415747Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6265c062-57f3-11e9-b56a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:25 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:6h8GQyRTL442P5aVGCXy24GJ8/TP+SKY6mxFWOqrHvs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "b25785ae-8638-41c0-ba5d-791b414eb65e" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:25 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"creationTime\":\"2019-04-05T22:37:24.7203268Z\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:24.7203268Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6459f9b4-57f3-11e9-b7b4-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:mwsPEs7BVOm1Q9iVVNdmbauZol0XjA5W3PlWLO8Tvug=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "3efb4547-6faa-4590-aa8f-3d98ae80a8b9" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:28 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"creationTime\":\"2019-04-05T22:37:24.7203268Z\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:26.285009Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:25.785858Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:25.785858Z\",\"endTime\":\"2019-04-05T22:37:26.285009Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6487e706-57f3-11e9-b8d2-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:UR65sgQOF6/ltXDbWGC82cco0SGVoTUJPxMJ/hn1DTw=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA17465FD3C4" - ], - "request-id": [ - "da0f3d3e-2e3a-4f08-be35-ad22d14b04ba" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:24 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:28 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BA17465FD3C4\",\"creationTime\":\"2019-04-05T22:37:24.7203268Z\",\"lastModified\":\"2019-04-05T22:37:24.7203268Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:26.285009Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:25.785858Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A22Z&se=2019-04-12T22%3A37%3A22Z&sp=w&sv=2017-07-29&sr=c&sig=bYwG19KzCuFK9M0rO9SvZiwMVkbjtGdKMd0yS6H9150%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:25.785858Z\",\"endTime\":\"2019-04-05T22:37:26.285009Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_435293e3f6c69c4280cf17b823b53e5451dba344ce46d249c5d5248cfd53ac5b_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "64b40010-57f3-11e9-8cb5-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Nntpd1LlV8e0V43zQs3S0snLAIVmHRL3xIhHeBexLXs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747457D8A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747494EC9400application/octet-streamNCkp7BpxUe/Sf01fzS2msw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA174741D3590application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA17473DDB035application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "64c194a2-57f3-11e9-9641-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:uzxOh7c84OXhpLjjUPtdq65JEE0pwWjLObMq4iyqx/8=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "request-id": [ - "52089649-5021-40cf-a3e5-540adebd46cd" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "64e1519c-57f3-11e9-a7b6-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:8HUk83O4/KFOZB4Z7Ar41VDGViWeicO2u7pXufnh1T8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747457D8A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA1747494EC9400application/octet-streamNCkp7BpxUe/Sf01fzS2msw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA174741D3590application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:26 GMT0x8D6BA17473DDB035application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/fileuploaderr.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "64ee982c-57f3-11e9-a885-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:zf6Dbqz8SdlFNGS/Hfbins+hATyRSmsvThJouwQkdm0=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/fileuploadout.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "64f74ab0-57f3-11e9-a603-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:GYkDtwqHLG3hBpxd3yTYLZJbtCXYdZM71G0Tvkz4EoY=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/stderr.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "64ff87f0-57f3-11e9-b966-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Gfks22U4TRlU5d04FHkByALaNmnyuj6FJ93hA9jclhA=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/stdout.txt", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "65081386-57f3-11e9-9b92-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Kd3xgmRxwPsZsAnE87gyVLrGPC6A+iTJAh6wwhio2RM=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "x-ms-delete-type-permanent": [ - "true" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6511895c-57f3-11e9-b6f5-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:d43O2nI3p74upxpLn1EAuM8l8LuHXO2TG/XbNSI3sps=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "39582c71-f98d-49fe-bead-64083295d310" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", - "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "65467c00-57f3-11e9-be83-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "277" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:29 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:1ckhEcnUKLZJILtfZqVIGmftc7wICDBaFdAeocH1tXs=" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified pool already exists." - }, - "headers": { - "request-id": [ - "9afd5515-bcc5-4837-a18e-5aaceb9a85df" - ], - "DataServiceVersion": [ - "3.0" - ], - "Content-Length": [ - "334" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:30 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:9afd5515-bcc5-4837-a18e-5aaceb9a85df\\nTime:2019-04-05T22:37:30.0858605Z\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "656bb868-57f3-11e9-9585-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:30 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:knkfiDLSgRtFGdlQpskcWaZLOnzZmHBr/KdW3wTxmD8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6AE50BA1ADAC6" - ], - "request-id": [ - "c83fb442-5a67-4ca9-a3f5-9661d92c995c" - ], - "Last-Modified": [ - "Thu, 21 Mar 2019 22:58:26 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:30 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6AE50BA1ADAC6\",\"lastModified\":\"2019-03-21T22:58:26.2442694Z\",\"creationTime\":\"2019-03-19T17:19:57.2061915Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-03-19T17:19:57.2061915Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-03-21T22:59:46.7342494Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":2,\"targetDedicatedNodes\":2,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "658b7440-57f3-11e9-a42a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:30 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:t7EfmJwuy92w3CwkAAICJMaVs2c1KNlKSDmQeTfOgWA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "8ae89b2c-49e2-4f9d-b73a-cc6560980ffe" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:30 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-03-21T23:03:43.298077Z\",\"lastBootTime\":\"2019-03-21T23:03:42.83469Z\",\"allocationTime\":\"2019-03-21T22:59:46.5732462Z\",\"ipAddress\":\"10.0.0.5\",\"affinityId\":\"TVM:tvmps_9019711f43d3532a63564430c03109490eeb79af337e99c9b6484746d941d8f9_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":0,\"totalTasksSucceeded\":0,\"runningTasksCount\":0,\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.1\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50001,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-21T23:03:42.83469Z\",\"version\":\"1.5.3\"\r\n }\r\n },{\r\n \"id\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-05T22:37:15.925574Z\",\"lastBootTime\":\"2019-03-19T17:24:42.5008Z\",\"allocationTime\":\"2019-03-19T17:21:27.8590121Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":75,\"totalTasksSucceeded\":75,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:15.30199Z\",\"endTime\":\"2019-04-05T22:37:15.894316Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.131.90\",\"publicFQDN\":\"dns85011c16-2ba5-459b-ae8c-5323faef5062-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-03-19T17:24:42.5008Z\",\"version\":\"1.5.3\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "65ff92c8-57f3-11e9-89f6-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:31 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "686" - ] - }, - "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "664b1aae-57f3-11e9-97c6-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:31 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "66705602-57f3-11e9-aa93-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:37:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:CiDzFAqYNoAVvrXq+2bL1jGDq4Y657Izhu5gnQl3CNM=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:2fed15a0-001e-006c-5600-eccfd3000000\nTime:2019-04-05T22:37:32.0044926Z" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"ncj-windows-2012-r2-1\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "668f2886-57f3-11e9-be15-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "78" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA174B03955C" - ], - "request-id": [ - "dd31a461-6897-454a-8f52-e94980dd80e0" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "66db9ad2-57f3-11e9-b8c6-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "474" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "c99feb2a-2ab9-4a72-9f52-798d4d09aaf4" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "67160bcc-57f3-11e9-9b6c-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:E0rgcu/3mMy6qcx7emkorMHqR8I7GTBe5pE4x9MurlM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA174B03955C" - ], - "request-id": [ - "58b74d0a-d34e-4bcc-bcda-260f18923360" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6BA174B03955C\",\"lastModified\":\"2019-04-05T22:37:32.504406Z\",\"creationTime\":\"2019-04-05T22:37:32.4884287Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:32.504406Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:32.504406Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "6737eb9c-57f3-11e9-8e42-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:33 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:0cJrFJ0uKsMrNFWO+I4BS2wYKXUwQYp7lrNv3qISnfA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "86605fe6-47d8-4d11-b930-d467f53fa9f6" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:33 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"creationTime\":\"2019-04-05T22:37:32.8640664Z\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:37:32.8640664Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "69367a80-57f3-11e9-9f2a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:36 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:992/GfETjO1M8bCjKGcQZ73NnzMaRt/GcChnBM94Iss=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "0f6107ae-b8b2-48e2-899e-a626345ac2ce" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:36 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"creationTime\":\"2019-04-05T22:37:32.8640664Z\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:35.905629Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:35.343149Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:35.343149Z\",\"endTime\":\"2019-04-05T22:37:35.905629Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "69615b0a-57f3-11e9-ae74-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:37:36 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:vUNnWPbGB4btH7JfHzAjrJJ1eUO/Q8mhE7PUgOFVh0o=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA174B3A7698" - ], - "request-id": [ - "8ce6a786-74af-471f-9a53-14991a7987e1" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:37:32 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:37:36 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BA174B3A7698\",\"creationTime\":\"2019-04-05T22:37:32.8640664Z\",\"lastModified\":\"2019-04-05T22:37:32.8640664Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-05T22:37:35.905629Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-05T22:37:35.343149Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A22%3A32Z&se=2019-04-12T22%3A37%3A32Z&sp=w&sv=2017-07-29&sr=c&sig=iyGAWGhL39sLZGUY66Odm9sTfNlKlIMde8oM7THrDIE%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-05T22:37:35.343149Z\",\"endTime\":\"2019-04-05T22:37:35.905629Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_b26b657ded56caa20e6c46638c41ba102344fb93a39f6b03cbf67e643a125a4a_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "698536c8-57f3-11e9-84c6-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:38:09 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Q5nEGHgBYMLFDsvx7fr/qyOnx4ivXEaMmE7rD+8yjwI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:09 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufefffileuploaderr.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CD6C5240application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CD824EC411application/octet-streamf7PAVMLcaivA5/jnq2zl5w==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CD936970application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 05 Apr 2019 22:37:35 GMT0x8D6BA174CDA96634application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7ce6331a-57f3-11e9-9949-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:09 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:k+Q7NcSCqNzPNmymBV8J731OOYMbG0pn/l7O5peKDS4=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "request-id": [ - "abac5296-006b-42cc-b27c-cab806c3d6c7" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:09 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-08-01.7.0", - "body": "{\"id\": \"blobsource\", \"displayName\": \"Blender Ubuntu standard pool\", \"vmSize\": \"Standard_D1_v2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1, \"targetLowPriorityNodes\": 0, \"enableAutoScale\": false, \"startTask\": {\"commandLine\": \"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\", \"resourceFiles\": [{\"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\", \"filePath\": \"setup-linux-pool.sh\"}], \"userIdentity\": {\"autoUser\": {\"scope\": \"pool\", \"elevationLevel\": \"admin\"}}, \"maxTaskRetryCount\": 0, \"waitForSuccess\": true}}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "7de82836-57f3-11e9-900a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "759" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:DfziTppHB0BLrq0wqzc8nYk4vUUbOEGUaXtncBoghgw=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "064f5a6c-2206-4499-b1be-2d3a90de4091" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "7e4bab66-57f3-11e9-aa2e-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WS7ztzW/AFMgC4AytfeaKkJnbPcAcAipjc7VcR/yuNc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "9d362bf3-1c49-469e-a683-a61343590684" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "803697fa-57f3-11e9-a20b-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:15 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:OuAgzCgwC5ZcGCzF12tD90ZC7VQy8wZ+3EpVVZ26SIs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "a2082f56-a167-4e14-98bc-e633954f61a7" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:15 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "82214cca-57f3-11e9-a1a8-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:18 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:9yj2H3iUr1Y2IGdjOcviSj/ywQJzvDJN6dZfpN+F22w=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "9bf01c8e-5d9c-46ac-a0b7-bd3d898c3e9a" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:18 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "840c0f40-57f3-11e9-8c19-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:21 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:9s5DYiQ8OsAsa94Lzf0SbhXfBfvIK/DC4Tew0iOfASI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "f092f76f-81af-4c1e-b44e-02a464036a5d" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:21 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "85fafa00-57f3-11e9-bd26-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:24 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:fdZdQqLvJKox4dxTDDP3evDfIm5p/cgYp3UP2Im5V9w=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "3e2cc08f-6786-41f4-a496-d85cf8aae599" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:24 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "87e83d86-57f3-11e9-9d34-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:28 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:4dIo4vUcwr/uSOmvLrq93ZQ5dEI+g4SbYCwe/VEOu6U=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "0e8f37fe-8134-45d5-be9d-236aeae95e01" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:28 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "89d52d3e-57f3-11e9-8798-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:31 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:pLCSgFsH2E4Oo8fFrF330IU9xVVW6DyjHOa4N/DkVSA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "4aef08a7-9814-40c6-8a5c-8699c389b83c" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:31 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "8bc388c0-57f3-11e9-a435-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:34 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:ccAHcmVtDCb6Eh8t6YE62dkt7EFXM2otiKjWJvMYBRs=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "73a461c3-f748-4c91-822f-87edf5633c9f" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:34 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "8db4c266-57f3-11e9-9e04-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:37 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:2Fzfs+XfS4SpQ6RPTdAzF23wegBUtx2+3VokyTLLEN0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "85ca610e-114e-472c-af0b-47358b0989f9" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:37 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "8fa47bfe-57f3-11e9-9e63-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:41 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:NVcVfQb44m3CqyclpWjIXiLy2S4DcKTTHNOlkKyxaUE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "84bc352e-0cc9-4ef8-aeaf-b649c3c57c94" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:41 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9192ac0a-57f3-11e9-a894-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:44 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:P8xCFJoZHPBfYP7M+DqKAt9qd4Egee+UEdp2oxAGtJo=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "813076c5-5f92-44b2-821f-b9aab837997a" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:44 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "937fc598-57f3-11e9-aaa4-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:47 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:hAI1aOM4KmKF3KJggyBD4Mr+sQioGE6TmxtR7ASPVC8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "d3b3d3c4-faad-44db-a978-7da159c0a7a5" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:47 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "956bc9de-57f3-11e9-9bcd-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:50 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:mYwDwWn+9gy8ISOoSGMeejzgnlhPokl+lYxYKTHmIo4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "b9510487-62f8-48e4-90c3-8fa3068d7915" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:50 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "975732f4-57f3-11e9-98ea-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:53 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:F7YBu9Ghk6xI86HyoavLpbvIQ7mmMX7d52Jp0v1Lk0w=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "f869649f-3993-4961-9ed5-6bc0a1332489" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:54 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9944d1e8-57f3-11e9-aa66-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:38:57 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:THEMUHtqsvwLpuxzQDPTespVJbXTn6zmK83uLNCSPEA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "39202d2d-7003-4c1f-95aa-83deb239e7bd" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:38:57 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9b310cda-57f3-11e9-ac96-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:00 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:jE0yNj1Fpj65F/90HogTh9IVnLS6hDI68EXaB0FILwM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "bf42a4ee-6839-4555-827f-65b9edd4106f" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:00 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9d226b2e-57f3-11e9-abeb-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:03 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:ntW+7O9sMtrqtWC+WSmEJxM6JcOh7VnGQ8FjJuyn/DA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "ecea2427-250f-4228-9ee5-fd2e14231ea2" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:03 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "9f0fbfd8-57f3-11e9-b70c-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:06 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:nMlSsvGgubhl6+pbgKjQAfjn0Gbv0BSgUrCeMN5tcXY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "9c9bf1e2-812d-409a-a15f-59db079af9ef" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:06 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a0f98fb4-57f3-11e9-8e4e-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:10 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:RKSbHxGd/cAyLUE7g3A+/PcWsb2my0aTTgTkrs6Fny0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "98632ce7-83e8-4778-88bc-6b0c2d0066a3" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:10 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a2efc100-57f3-11e9-9820-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:13 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WLXdIb2b+1bc5GlGcZAixewBCa67WCU3R1TwfXuRNXg=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "a6026958-4240-4f44-8b1c-790255568bb0" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:13 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a4dd630a-57f3-11e9-b01d-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:16 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:40x9hVkpuQGFSdTnXUmJ1ROTw8rL0S1ra7mYvXmjzuc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "6b66a3c8-aeb1-4c52-9383-5258aa47c6b4" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:16 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a6c87a6e-57f3-11e9-ba03-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:19 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:Vr9tKT+jvjROh6yGX+CI5cnhfCoOb8FCxLLt2CiO4nU=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "2c179e4c-6168-4158-bde6-cd788f3810cd" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:19 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "a8b2e774-57f3-11e9-92f7-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:23 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:QQatKy8ZC1o6Tj2D/5Di2drIL1FpZF4dVPPBtkMdiNQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "37a330b0-5da5-4724-8976-4ea09a733826" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:22 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "aaa01392-57f3-11e9-983a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:26 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:ZLnqhmcMymtecMacrzRLOQFcNBU4XcJ9zwe/zHxemcc=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "098dc5e7-c5b4-4d06-80fe-2099530f870d" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:26 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ac8fec34-57f3-11e9-bf8a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:29 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:EPSGTqVerOM2nxK6CtxSaM3X+NhCoEq+xcsUSc0NJBM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "b5bba471-c5c8-470e-8ae1-f4c2b7fb3908" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:29 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ae7e55c6-57f3-11e9-a2d2-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:32 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:xGtDezJ4N3Ruesbjcol8f+8f3Zs/MgWXr1U8nFv23uI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "b0703017-d242-4819-bdd2-8864733999bf" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:32 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b06b185c-57f3-11e9-937a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:35 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:FZRchmFHHIg/WguS6yS+Usku6td+AX286rxkAcyKLrY=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "98afc87c-4eae-4f05-97c6-7ddb96f47078" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:36 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b257bd4c-57f3-11e9-aaf3-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:39 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:WLoELp25iTfRkUxcNAVwkCzj5oUj5e6u5dUQja3dd+o=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "fbe65089-a759-4d12-a055-9c72baed2754" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:39 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b449bfe4-57f3-11e9-8313-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:42 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:rBhuC4iZZZ2vBOd9elExXGH98XaJEj9GvD1iTf/tyAk=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "649e05c4-cf39-415a-8f86-aad743d3e3e1" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:41 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b638065e-57f3-11e9-a92a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:45 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:u5oRCxDnUSJvqUn4xKpddmcy1f1tlEDsJVt0moVeNwE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "59bef4f4-f3a3-428f-af86-21684023e8ef" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:45 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "b823a49a-57f3-11e9-b2aa-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:48 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:ZzbqXn11k+yUtPm3LGcH5ToscsRfYbQs1ehSyrLZkAQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "509cdd1d-1536-4297-88d9-e0266899ec3e" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:49 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "ba10a5b6-57f3-11e9-babb-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:52 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:nmKlWemGjQv19VHeoUkmmzifnjkHFUUgK8eaQaEmnQ8=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "798a4975-b6ca-43ca-8d4f-2fbc0597dc23" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:52 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "bbfd76d8-57f3-11e9-b5b9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:55 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:5Cm5Sm7Yf0U3wIxv/BlJVrovfujYBP1oeJqfdWz0h3Q=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "da7ac043-b8ce-4a79-ba62-623a3aa437f3" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:55 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "bdee81f0-57f3-11e9-8280-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:39:58 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:i6g0VPnSAPFtwVsxWWLzHDtHpHeJxoPbPooZFhLk4Ek=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "9e7bb097-fb98-4bb8-b17a-d5e6d489caf2" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:39:58 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "bfda18c6-57f3-11e9-95ae-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:01 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:+qnTAXUXJmX3AnX+K+FJ2tHmKSpCwBEAXL4LXli1HKE=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "2ba455c5-5825-4715-9d2b-5ce2e3ad85a8" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:02 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c1c70536-57f3-11e9-b675-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:05 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:atPYL+5gHNUJmoNmzgKO/b0RnXMMBn/bpm/8K1gzsP0=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "4248d16a-9e41-4dc5-99f3-39295bfdb752" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:04 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c3bb3400-57f3-11e9-a960-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:08 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:8ohr6UlOHfdStlgJFtQZSndnsAFgXwDTe19DWHmKFTI=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "6ed94e68-0be4-4b36-873f-44a49cb9666e" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:08 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c5a9b68a-57f3-11e9-87e4-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:11 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:VNY63fw/mc65MX+myNgfmwc8HoghP9gsPrX+yOUqLX4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "8a044d13-d021-41d3-8790-9b38e4793a5c" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:11 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c79e9d78-57f3-11e9-a4e5-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:14 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:YbprduhQXYRSUbnd6hlaGc0FMn7i5Ubr7I8zEcn2NIQ=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "e2212771-c934-43cc-b8da-6e8d66a1ffda" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:15 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "c9902068-57f3-11e9-b3d9-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:18 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:mRNOAHtuu/cv9mBXezUQQIKQUi8wOYn+ze3N8ZtJOrM=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "21f7af4e-e6d3-49cc-8bdd-984e5a27c582" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:18 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "cb7d6c02-57f3-11e9-803a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:21 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:8PKUBjLMlKHFgsrcBWd7DqemtZ2ARRizQJ/D1sK/g0A=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "5b268b9d-fec7-4e0f-8444-99934f6ae225" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:21 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "cd68b7ac-57f3-11e9-8b5a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:24 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:C0nbu8HbqvLe6wstP130xyaLLP7kaxd2L2gAvg8xd+4=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA1762705BEB" - ], - "request-id": [ - "7897e526-1a86-476c-9cc3-5e54a5d2a006" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:38:11 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:24 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BA1762705BEB\",\"lastModified\":\"2019-04-05T22:38:11.8048747Z\",\"creationTime\":\"2019-04-05T22:38:11.8048747Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-05T22:38:11.8048747Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-05T22:40:22.8442034Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" - } - } - }, - { - "request": { - "method": "DELETE", - "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "client-request-id": [ - "cd87f180-57f3-11e9-8efb-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ], - "ocp-date": [ - "Fri, 05 Apr 2019 22:40:24 GMT" - ], - "Authorization": [ - "SharedKey sdktest2:YEwp1MCNKQfa+n+3xME0Y2HXq/PlN5TR1WPpKSMaZa4=" - ] - } - }, - "response": { - "status": { - "code": 202, - "message": "Accepted" - }, - "headers": { - "request-id": [ - "8df9e219-22db-458d-9c1a-d419bcfd2350" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:25 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "cdf7969e-57f3-11e9-925e-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:24 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "686" - ] - }, - "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "ce37290c-57f3-11e9-a7d2-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:25 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-08-01.7.0&timeout=30", - "body": "{\"id\": \"job123\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"pool123\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\"}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "ce6b8134-57f3-11e9-910a-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "428" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA17B2C7F836" - ], - "request-id": [ - "a801b672-cad1-4159-b944-788c82a42137" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:26 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:26 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123/addtaskcollection?api-version=2018-08-01.7.0", - "body": "{\"value\": [{\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat {fileName}'\", \"resourceFiles\": [{\"blobSource\": \"https://testacct.blob.core.windows.net/\", \"filePath\": \"location\"}]}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "ce9fee06-57f3-11e9-bd94-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "174" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "be6ac268-a513-4dfd-beb3-8aba0fbcd356" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:26 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BA17B2F563BA\",\"lastModified\":\"2019-04-05T22:40:26.8944314Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "PATCH", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123?api-version=2018-08-01.7.0", - "body": "{\"onAllTasksComplete\": \"terminatejob\"}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "ced03450-57f3-11e9-a595-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "38" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA17B34F5504" - ], - "request-id": [ - "acd4ca5d-f98d-41ab-b7dd-e969ba7eccdf" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:27 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:27 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "cf5ca546-57f3-11e9-a646-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:27 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "686" - ] - }, - "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "cf9f2ba8-57f3-11e9-a93e-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:27 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "cfc68d7a-57f3-11e9-95ef-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:ToKSo9G5BAQjJtkLY8ZKWRaODFyvJrE0Q5n6bR1jBPQ=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B414B66E\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "cfedb000-57f3-11e9-9d34-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:i+wTEGL+cGh02GAH2T8FvjLPoLOrowz7VWOKqaZlpmY=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb57fa-401e-0024-3b00-ecfd4e000000\nTime:2019-04-05T22:40:28.8604903Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json", - "body": "{\r\n \"templateMetadata\": {\r\n \"description\": \"A test application template that makes use of multiple parameters after properly declaring them.\"\r\n },\r\n \"jobManagerTask\": {\r\n \"id\":\"mytask1\",\r\n \"commandLine\":\"myprogram.exe\",\r\n \"resourceFiles\": [ {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"myprogram.exe\"\r\n },\r\n {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/test.txt?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"[parameters('blobName')]\"\r\n } ],\r\n \"environmentSettings\": [ {\r\n \"name\":\"myvariable\",\r\n \"value\":\"myvalue\"\r\n } ],\r\n \"constraints\": {\r\n \"maxWallClockTime\":\"PT1H\",\r\n \"maxTaskRetryCount\":0,\r\n \"retentionTime\":\"PT1H\"\r\n },\r\n \"killJobOnCompletion\":false,\r\n \"runElevated\":false,\r\n \"runExclusive\":true\r\n },\r\n \"metadata\": [ {\r\n \"name\":\"myproperty\",\r\n \"value\":\"[parameters('keyValue')]\"\r\n } ],\r\n \"parameters\": {\r\n \"blobName\" : {\r\n \"type\": \"string\"\r\n },\r\n \"keyValue\" : {\r\n \"type\": \"string\"\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.0615716" - ], - "Content-MD5": [ - "GhvIqLxdhgZSxhi6CdQjLQ==" - ], - "Content-Length": [ - "1377" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "cffa0cb6-57f3-11e9-a612-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:DTGzu8na3waewLFnGkr4sk3h1eOPWZVneX8INz02iwk=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B42C1F9F\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "Content-MD5": [ - "GhvIqLxdhgZSxhi6CdQjLQ==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d004464a-57f3-11e9-9252-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:eBcnc942M9VggThumUYE3P6AbQ6b6yN9qU/KhtV4tXE=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5819-401e-0024-5800-ecfd4e000000\nTime:2019-04-05T22:40:28.9945840Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d00de33a-57f3-11e9-8d5f-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:ca2sLhMivGD3xAvryZP7Q+kiDdh6bk6CHuDN8Cw4ecI=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5825-401e-0024-6200-ecfd4e000000\nTime:2019-04-05T22:40:29.0606301Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json", - "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies the prohibited property 'applicationTemplate'.\"\r\n },\r\n \"applicationTemplateInfo\": {\r\n \"filePath\" : \"sample\\\\path\"\r\n }\r\n}\r\n\r\n\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.252081" - ], - "Content-MD5": [ - "xbCZcjm1pOMcwR8Td2yo9w==" - ], - "Content-Length": [ - "219" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d018de6e-57f3-11e9-8fae-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:bw0iIlHn0BBe2DeVQYwIiYV8J6FX3bF26WDmaw5EfCU=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B44AF7EA\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Content-MD5": [ - "xbCZcjm1pOMcwR8Td2yo9w==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0233e8c-57f3-11e9-90cb-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:qb0NDMMq2DN6E7qGcmu2d7VMr+WBU2w8zhtk+uctcO4=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb584f-401e-0024-0a00-ecfd4e000000\nTime:2019-04-05T22:40:29.1977259Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d02cb5fe-57f3-11e9-be22-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:HFVtrq2MTPId2FOAicJwxsVfN0iNRDfz55paT1Vo+EM=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5864-401e-0024-1c00-ecfd4e000000\nTime:2019-04-05T22:40:29.2637721Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json", - "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies prohibited property 'id'.\"\r\n },\r\n \"id\" : \"jobid\"\r\n}\r\n\r\n\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.252081" - ], - "Content-MD5": [ - "HBCHz/rBYi8V9ILMKx0o+g==" - ], - "Content-Length": [ - "146" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0373d00-57f3-11e9-bfc8-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:bi4xMs7I+yFrSk+WBYsqeaWRilwPOTjPlipkZuwkY9A=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B469A91E\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Content-MD5": [ - "HBCHz/rBYi8V9ILMKx0o+g==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d041eb4c-57f3-11e9-a607-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Jv7IK3RgC0xc4id7Lb3lkO33ogZ+HrC7KPnW25F0FJc=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5895-401e-0024-4800-ecfd4e000000\nTime:2019-04-05T22:40:29.4158779Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d04e463e-57f3-11e9-aab5-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:cyP34Fn73YcpjhpCNR4efdeA3pWNMsMpBjpNgIhQhb4=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb58ae-401e-0024-6000-ecfd4e000000\nTime:2019-04-05T22:40:29.4899297Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json", - "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies prohibited property 'poolInfo'.\"\r\n },\r\n \"poolInfo\": {\r\n \"poolId\" : \"swimming\"\r\n } \r\n}\r\n\r\n\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.253081" - ], - "Content-MD5": [ - "PFiBkLMhFseOyDvKgJXaRA==" - ], - "Content-Length": [ - "187" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d059e040-57f3-11e9-af71-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:01ht9vTw5hsKy3VoTuXZGDWXbR1eQ/gzfHXOkkXWWFA=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B48BB650\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Content-MD5": [ - "PFiBkLMhFseOyDvKgJXaRA==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d064196c-57f3-11e9-b72b-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:E4RmHmNWIrZkodowyPlDzHiaByUjGVmpmXz/DfgKvrU=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb58d9-401e-0024-0400-ecfd4e000000\nTime:2019-04-05T22:40:29.6220220Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d06d8e2e-57f3-11e9-bdfa-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:mpeF0IGcytutglwO/yIRHN8EPAlEB/yCMObDPMpD5kQ=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb58e9-401e-0024-1200-ecfd4e000000\nTime:2019-04-05T22:40:29.6890692Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json", - "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies the prohibited property 'priority'.\"\r\n },\r\n \"displayName\": \"Static Application Template\",\r\n \"priority\": 100\r\n}\r\n\r\n\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.253081" - ], - "Content-MD5": [ - "IvRrVHIc/lLy/wSkE22LeA==" - ], - "Content-Length": [ - "206" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0786386-57f3-11e9-908a-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Dkh75mTmhCPZS0PF+F0hU1GvCg6s61t/PgNxqlPQpoc=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B4AA6782\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Content-MD5": [ - "IvRrVHIc/lLy/wSkE22LeA==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:28 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d08276f6-57f3-11e9-9692-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:OTdkd3Y+jzL46dX/9KjdMzpwdtGFZrJ9CpAZztRvyio=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5909-401e-0024-2e00-ecfd4e000000\nTime:2019-04-05T22:40:29.8201608Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d08bc474-57f3-11e9-8eca-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:J/a0xh+OWICoRrMC8LC1tRjvZM1f07IRwtcd+3Ahl9I=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb591d-401e-0024-4200-ecfd4e000000\nTime:2019-04-05T22:40:29.8872073Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json", - "body": "{\r\n \"templateMetadata\": {\r\n \"description\": \"A test application template that has no parameters and has exactly the same result every time.\"\r\n },\r\n \"jobManagerTask\": {\r\n \"id\": \"jobManager\",\r\n \"displayName\": \"jobManagerDisplay\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"filePath\"\r\n }\r\n ],\r\n \"environmentSettings\": [\r\n {\r\n \"name\": \"name1\",\r\n \"value\": \"value1\"\r\n },\r\n {\r\n \"name\": \"name2\",\r\n \"value\": \"value2\"\r\n }\r\n ],\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"PT1H\"\r\n },\r\n \"killJobOnCompletion\": false,\r\n \"runElevated\": false\r\n }\r\n}\r\n\r\n\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.0625725" - ], - "Content-MD5": [ - "27HmU8S9AEeu90aG5z1x1A==" - ], - "Content-Length": [ - "740" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d096c10a-57f3-11e9-9cdd-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:HaPq/f4JBwF5HqLM2oEJHt0TxEBK946mOCOcCQZ17+4=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B4C8F1B0\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "Content-MD5": [ - "27HmU8S9AEeu90aG5z1x1A==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0a120e8-57f3-11e9-ae0b-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:XvZPtDIzXcR8xUcbz+WerI0dGm24MbZbv0pvvQZ/7sc=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5952-401e-0024-7500-ecfd4e000000\nTime:2019-04-05T22:40:30.0233028Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0aabea6-57f3-11e9-9297-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:wjvxPB54pofFsbnFkMWaRMZ9wkCBDZR2P5T1WEGuuuA=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb597d-401e-0024-1e00-ecfd4e000000\nTime:2019-04-05T22:40:30.0903492Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json", - "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies the unsupported properties'fluxCapacitorModel' and 'vehicleMarque'.\"\r\n },\r\n \"fluxCapacitorModel\": \"DocBrown55\",\r\n \"vehicleMarque\": \"deLorean\"\r\n}\r\n\r\n\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.2540834" - ], - "Content-MD5": [ - "eSn7zZA04to5Rccq3nxw1A==" - ], - "Content-Length": [ - "240" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0b56c40-57f3-11e9-bebb-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:qjHNVdoFmF21MuYLpKsnii6zQKCzRyKv3l91MBcX4sw=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B4E754BF\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Content-MD5": [ - "eSn7zZA04to5Rccq3nxw1A==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0bfa574-57f3-11e9-b72b-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:1BAlesCcTuIsKkRW00XJablfKJdsHhZlJygYhDMjydE=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb59a0-401e-0024-4100-ecfd4e000000\nTime:2019-04-05T22:40:30.2234430Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0c96970-57f3-11e9-a270-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:gPn6utLOvxkMaKtl+xZ1TxxZdw7UgvixxoHyNuLY9Zw=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb59b0-401e-0024-5100-ecfd4e000000\nTime:2019-04-05T22:40:30.2904890Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json", - "body": "{\r\n \"templateMetadata\": {\r\n \"description\": \"A test application template that declares a property with no specified type.\"\r\n },\r\n \"jobManagerTask\": {\r\n \"id\":\"mytask1\",\r\n \"commandLine\":\"myprogram.exe\",\r\n \"resourceFiles\": [ {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"myprogram.exe\"\r\n },\r\n {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/test.txt?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"[parameters('blobName')]\"\r\n } ],\r\n \"environmentSettings\": [ {\r\n \"name\":\"myvariable\",\r\n \"value\":\"myvalue\"\r\n } ],\r\n \"constraints\": {\r\n \"maxWallClockTime\":\"PT1H\",\r\n \"maxTaskRetryCount\":0,\r\n \"retentionTime\":\"PT1H\"\r\n },\r\n \"killJobOnCompletion\":false,\r\n \"runElevated\":false,\r\n \"runExclusive\":true\r\n },\r\n \"metadata\": [ {\r\n \"name\":\"myproperty\",\r\n \"value\":\"[parameters('keyValue')]\"\r\n } ],\r\n \"parameters\": {\r\n \"blobName\" : {\r\n \"defaultValue\": \"name\"\r\n },\r\n \"keyValue\" : {\r\n \"type\": \"string\"\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.0829573" - ], - "Content-MD5": [ - "sWJuTwpMQ9cWToECYRCNiQ==" - ], - "Content-Length": [ - "1363" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0d4190a-57f3-11e9-935c-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:MYkXTYF4nwEdhd08ws8uovWgEUwaFBp3cPnQ4kCCF9A=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B506A25D\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Content-MD5": [ - "sWJuTwpMQ9cWToECYRCNiQ==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0df153a-57f3-11e9-9903-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:LH0goAZBJg6vGjtpEQ3T0LiKJDVDtxn/dIqScrV2alY=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb59d1-401e-0024-7000-ecfd4e000000\nTime:2019-04-05T22:40:30.4285855Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0e88b1a-57f3-11e9-94d2-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:iTCsQJMFlJAlYKDaZ/tnaqHjRJkNi+CqvaXTkDdOVHc=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb59df-401e-0024-7c00-ecfd4e000000\nTime:2019-04-05T22:40:30.4986345Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json", - "body": "{\r\n \"parameters\": {\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"helloworld-job3\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch job\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"helloworld-pool3\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"vmSize\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"STANDARD_D1_V2\",\r\n \"metadata\": {\r\n \"description\": \"The size of the virtual machines that run the application\"\r\n }\r\n },\r\n \"vmCount\": {\r\n \"type\": \"int\",\r\n \"defaultValue\": 1,\r\n \"metadata\": {\r\n \"description\": \"The number of virtual machines\"\r\n }\r\n },\r\n \"testData\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"in\",\r\n \"metadata\": {\r\n \"description\": \"The auto-storage group where the input data is stored\"\r\n }\r\n },\r\n \"outputData\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"output\",\r\n \"metadata\": {\r\n \"description\": \"The auto-storage group where the output data is uploaded\"\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"osType\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-12-01\",\r\n \"properties\": {\r\n \"id\": \"[parameters('jobId')]\",\r\n \"onAllTasksComplete\": \"terminateJob\",\r\n \"poolInfo\": {\r\n \"autoPoolSpecification\": {\r\n \"autoPoolIdPrefix\": \"[parameters('poolId')]\",\r\n \"poolLifetimeOption\": \"job\",\r\n \"keepAlive\": false,\r\n \"pool\": {\r\n \"vmSize\": \"[parameters('vmSize')]\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": \"[variables('osType')]\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"[parameters('vmCount')]\"\r\n }\r\n }\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskPerFile\",\r\n \"source\" : {\r\n \"fileGroup\" : \"[parameters('testData')]\"\r\n },\r\n \"repeatTask\": {\r\n \"commandLine\": \"/bin/bash -c 'cat {fileName}'\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\" : \"{url}\",\r\n \"filePath\" : \"{fileName}\"\r\n }\r\n ],\r\n \"outputFiles\": [\r\n {\r\n \"filePattern\": \"**/stdout.txt\",\r\n \"destination\": {\r\n \"autoStorage\": {\r\n \"path\": \"output-{fileName}\",\r\n \"fileGroup\": \"[parameters('outputData')]\"\r\n }\r\n },\r\n \"uploadOptions\": {\r\n \"uploadCondition\": \"TaskSuccess\"\r\n }\r\n }\r\n ]\r\n },\r\n \"mergeTask\" : {\r\n \"displayName\": \"myMergeTask\",\r\n \"commandLine\": \"/bin/bash -c 'ls'\",\r\n \"resourceFiles\": [\r\n {\r\n \"autoStorageContainerName\": \"fgrp-[parameters('outputData')]\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1552419189.7367494" - ], - "Content-MD5": [ - "2ILRwlJk1kyfaTTP253tiA==" - ], - "Content-Length": [ - "4072" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0f422f8-57f3-11e9-ae71-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:9H9skb0iDgnqChVu0jfS9bOjNq9KDzRfrE9q2YbZODc=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B5266540\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Content-MD5": [ - "2ILRwlJk1kyfaTTP253tiA==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d0fe8336-57f3-11e9-ab2b-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:jdKY1tL3qeffoYXt7FgagDoWI3QKiO7SOgXTCzRIve0=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5a17-401e-0024-3200-ecfd4e000000\nTime:2019-04-05T22:40:30.6337289Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1080470-57f3-11e9-bee0-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:/Q1QGmdFk8TT2bCIdnsnu3nVAoof50OB1bDzOhMnvGc=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:29 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5a29-401e-0024-4300-ecfd4e000000\nTime:2019-04-05T22:40:30.7037782Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json", - "body": "{\r\n \"jobId\": {\r\n \"value\": \"helloworld\"\r\n },\r\n \"poolId\": {\r\n \"value\": \"xplatTestPool\"\r\n },\r\n \"outputFileStorageUrl\": {\r\n \"value\": \"\"\r\n },\r\n \"taskStart\": {\r\n \"value\": 1\r\n },\r\n \"taskEnd\": {\r\n \"value\": 3\r\n } \r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.2550833" - ], - "Content-MD5": [ - "acLZykn1NMEO1oxenbC6dw==" - ], - "Content-Length": [ - "254" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d112ff14-57f3-11e9-9e65-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:hXV9v3PhSVRsVyWoCpzH+1a2igTzahAuoR+37sqC0ag=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B54564B1\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Content-MD5": [ - "acLZykn1NMEO1oxenbC6dw==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d11daea8-57f3-11e9-87cc-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:37pHBme1GNpu+hQNvnh10C/eRnEGmgLwwbHxZ314ILY=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5a42-401e-0024-5a00-ecfd4e000000\nTime:2019-04-05T22:40:30.8388722Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1279898-57f3-11e9-9b74-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:cohkOR8L/66FxS48sH2sEpUnZThJXP96r5TRw3vcM6o=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5a52-401e-0024-6800-ecfd4e000000\nTime:2019-04-05T22:40:30.9109230Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json", - "body": "{\r\n \"parameters\": {\r\n \"inputFileGroup\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"convert_data\",\r\n \"metadata\": {\r\n \"description\": \"The auto-storage group where the input data is stored\"\r\n }\r\n },\r\n \"outputFileStorageUrl\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The SAS URL for a container where outputs will be stored\"\r\n }\r\n },\r\n \"inputType\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"wav\",\r\n \"metadata\": {\r\n \"description\": \"The extension of the input data\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpeg-pool\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch job\"\r\n }\r\n },\r\n \"taskStart\": {\r\n \"type\": \"int\",\r\n \"metadata\": {\r\n \"description\": \"The sweep start parameter\"\r\n }\r\n },\r\n \"taskEnd\": {\r\n \"type\": \"int\",\r\n \"metadata\": {\r\n \"description\": \"The sweep end parameter\"\r\n }\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-12-01\",\r\n \"properties\": {\r\n \"id\": \"[parameters('jobId')]\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"PT5H\",\r\n \"maxTaskRetryCount\": 1\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"[parameters('poolId')]\"\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"parametricSweep\",\r\n \"parameterSets\": [\r\n {\r\n \"start\": \"[parameters('taskStart')]\",\r\n \"end\": \"[parameters('taskEnd')]\",\r\n \"step\": 1\r\n }\r\n ],\r\n \"repeatTask\": {\r\n \"commandLine\": \"ffmpeg -y -i sample{0}.[parameters('inputType')] -acodec libmp3lame output.mp3\",\r\n \"resourceFiles\": [\r\n {\r\n \"source\": { \r\n \"fileGroup\": \"[parameters('inputFileGroup')]\",\r\n \"prefix\": \"sample{0}.[parameters('inputType')]\"\r\n }\r\n }\r\n ],\r\n \"outputFiles\": [\r\n {\r\n \"filePattern\": \"output.mp3\",\r\n \"destination\": {\r\n \"container\": {\r\n \"path\": \"audio{0}.mp3\",\r\n \"containerUrl\": \"[parameters('outputFileStorageUrl')]\"\r\n }\r\n },\r\n \"uploadOptionsa\": {\r\n \"uploadCondition\": \"TaskSuccess\"\r\n }\r\n }\r\n ],\r\n \"packageReferences\": [\r\n {\r\n \"type\": \"aptPackage\",\r\n \"id\": \"ffmpeg\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.1117144" - ], - "Content-MD5": [ - "BvsOoLG3cYJ873sw8nI4/Q==" - ], - "Content-Length": [ - "3565" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d132bfb6-57f3-11e9-bdfc-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:6OqkiRB1gHt8mj92zazQvinpqHrO82hAxp3hOY1yIZQ=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B5654E9E\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "Content-MD5": [ - "BvsOoLG3cYJ873sw8nI4/Q==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d13d952e-57f3-11e9-85eb-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:HbL0cM/52ZyFZ8mW1jDlx441ilMSZwhuExrvTRAEYvk=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5a75-401e-0024-0900-ecfd4e000000\nTime:2019-04-05T22:40:31.0480188Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1473240-57f3-11e9-a628-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:U1ADIn5v4EdRNLeRySXt6Pp0wCXt8G5RhQJ71JHnbfE=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5a98-401e-0024-2700-ecfd4e000000\nTime:2019-04-05T22:40:31.1150666Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json", - "body": "{\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-08-01.7.0\",\r\n \"properties\": {\r\n \"id\": \"job123\",\r\n \"onAllTasksComplete\": \"terminateJob\",\r\n \"poolInfo\": {\r\n \"autoPoolSpecification\": {\r\n \"autoPoolIdPrefix\": \"pool123\",\r\n \"poolLifetimeOption\": \"job\",\r\n \"keepAlive\": false,\r\n \"pool\": {\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\"\r\n }\r\n }\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\": \"1\",\r\n \"commandLine\": \"/bin/bash -c 'cat {fileName}'\",\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"location\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1554328036.8447773" - ], - "Content-MD5": [ - "Io6RmJXooduSCCl/iHe+sw==" - ], - "Content-Length": [ - "1252" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1516b4a-57f3-11e9-8758-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Ev5BPRRuniS/CUbJq2ayGIvQ0tdOcyf9ncp85OtYmeA=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B5838A89\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Content-MD5": [ - "Io6RmJXooduSCCl/iHe+sw==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d15bf3d4-57f3-11e9-b2a6-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:i00nNDwc/wtQ55GjfaiTzB/LGtvE3ucUDlBM9sI6IOI=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5abd-401e-0024-4b00-ecfd4e000000\nTime:2019-04-05T22:40:31.2481600Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d165efac-57f3-11e9-8018-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:Z9teXfuWH6unhbT8ScmP0xobvj5eMTBMd0J+LIbHZuw=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5ad0-401e-0024-5e00-ecfd4e000000\nTime:2019-04-05T22:40:31.3352214Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json", - "body": "{\r\n \"parameters\": {\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch job\"\r\n }\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2030-12-01\",\r\n \"properties\": {\r\n \"fob\": \"[parameters('jobId')]\",\r\n \"ks\": {\r\n \"poolId\": \"[parameters('poolId')]\"\r\n },\r\n \"ls\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\" : \"mytask1\",\r\n \"commandLine\": \"cmd /c echo hello1\"\r\n },\r\n {\r\n \"id\" : \"mytask2\",\r\n \"commandLine\": \"cmd /c echo hello2\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.1238391" - ], - "Content-MD5": [ - "kPzKWo4J2zRaerzJw2Z2xg==" - ], - "Content-Length": [ - "1140" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1736240-57f3-11e9-96bf-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:rosfjWnXTaTY6Cxv/5BDEmKBh7UM9vQwJ1H/Fvhp3fQ=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B5A5E5EE\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Content-MD5": [ - "kPzKWo4J2zRaerzJw2Z2xg==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d17e366c-57f3-11e9-9008-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:NvyXW7Ju9XTpsG51BX4nlphl6w0OP60dfrox2PqPXAM=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5ae4-401e-0024-7000-ecfd4e000000\nTime:2019-04-05T22:40:31.4723185Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d187df52-57f3-11e9-9364-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:x528JfUcZduSVJxxJOugi0J1K3OZr6kg9GDN/XdM2F0=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5af1-401e-0024-7d00-ecfd4e000000\nTime:2019-04-05T22:40:31.5403677Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json", - "body": "{\r\n \"parameters\": {\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch job\"\r\n }\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"properties\": {\r\n \"id\": \"[parameters('jobId')]\",\r\n \"poolInfo\": {\r\n \"poolId\": \"[parameters('poolId')]\"\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\" : \"mytask1\",\r\n \"commandLine\": \"cmd /c echo hello1\"\r\n },\r\n {\r\n \"id\" : \"mytask2\",\r\n \"commandLine\": \"cmd /c echo hello2\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.1388402" - ], - "Content-MD5": [ - "rdYsR2RLvOnr9kOYg2y5NQ==" - ], - "Content-Length": [ - "1117" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d192b5dc-57f3-11e9-ab95-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:X28KlEZ/y/6VeahBrdopI6ZozXdxldTJcZhRTOMUwUc=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B5C55A96\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Content-MD5": [ - "rdYsR2RLvOnr9kOYg2y5NQ==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d19dd82c-57f3-11e9-a248-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:i4X+Vfkvc0g3/vnuAj7EPCSqM2hInWSEuPnyDu6irDU=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5b12-401e-0024-1e00-ecfd4e000000\nTime:2019-04-05T22:40:31.6794645Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1a77630-57f3-11e9-b812-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:tLceUokHQJZS9HQI2RTxcFXkzs4LPmiWXAh8QkjbxAU=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:30 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5b25-401e-0024-2f00-ecfd4e000000\nTime:2019-04-05T22:40:31.7465114Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json", - "body": "{\r\n \"poolName\": {\r\n \"value\": \"testpool1\"\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.2550833" - ], - "Content-MD5": [ - "UJHCaZ8IYHwM3l1BfEkTHQ==" - ], - "Content-Length": [ - "52" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1b24a8c-57f3-11e9-9e19-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:gvSm7Y3aEiwKda+TTN97hqj/4dQR/TH23S8qs+PE7a8=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B5E78EDB\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Content-MD5": [ - "UJHCaZ8IYHwM3l1BfEkTHQ==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1c05466-57f3-11e9-a20a-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:AvdODgiNVrP8Wch2JQTJGdP7KdfJdgMm3ARVTF6c8h0=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5b51-401e-0024-5700-ecfd4e000000\nTime:2019-04-05T22:40:31.9036226Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1c9a462-57f3-11e9-90e3-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:G3KY/8OjwsXgWR+4y3bcULNjS83FvBoomN6DzdWa9yo=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5b68-401e-0024-6b00-ecfd4e000000\nTime:2019-04-05T22:40:31.9706694Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json", - "body": "{\r\n \"parameters\": {\r\n \"vmSize\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The size of the virtual machines that runs the application\"\r\n },\r\n \"defaultValue\": \"STANDARD_D1\",\r\n \"allowedValues\": [\r\n \"STANDARD_A1\",\r\n \"STANDARD_A2\",\r\n \"STANDARD_A3\",\r\n \"STANDARD_A4\",\r\n \"STANDARD_D1\",\r\n \"STANDARD_D2\",\r\n \"STANDARD_D3\",\r\n \"STANDARD_D4\"\r\n ]\r\n },\r\n \"vmCount\": {\r\n \"type\": \"int\",\r\n \"defaultValue\": 3,\r\n \"metadata\": {\r\n \"description\": \"The number of the virtual machines\"\r\n }\r\n },\r\n \"poolName\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool\"\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"osType\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"15.10\",\r\n \"version\": \"latest\"\r\n }\r\n }, \r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"apiVersion\": \"2030-12-01\",\r\n \"properties\": {\r\n \"ls\": \"[parameters('poolName')]\",\r\n \"fob\": {\r\n \"imageReference\": \"[variables('osType')]\",\r\n \"nodeAgentSKUId\": \"batch.node.debian 8\"\r\n },\r\n \"new\": \"[parameters('vmSize')]\",\r\n \"vmCount\": \"[parameters('vmCount')]\",\r\n \"enableAutoScale\": false\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.1398392" - ], - "Content-MD5": [ - "Vx+oh7HSZQSJ/EMS4CWYdQ==" - ], - "Content-Length": [ - "1685" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1d479ca-57f3-11e9-b011-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:rbkaLXP4Vq0YnC03/C/X9ZyHbf5uUawyUj9Eb2Oxn/I=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B6070383\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Content-MD5": [ - "Vx+oh7HSZQSJ/EMS4CWYdQ==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1df7510-57f3-11e9-aa67-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:X6ayv+10yD7hJyy3IOvGrLvnl9yfeh704l2u83ljI7k=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5ba1-401e-0024-1f00-ecfd4e000000\nTime:2019-04-05T22:40:32.1077656Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1e8c3e2-57f3-11e9-a7e8-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:hUYq5tJ5ruEC2Xgklv5FSx80j33vRWskAbjpFAy3Gfc=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5bb3-401e-0024-3100-ecfd4e000000\nTime:2019-04-05T22:40:32.1788149Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json", - "body": "{\r\n \"parameters\": {\r\n \"vmSize\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The size of the virtual machines that runs the application\"\r\n },\r\n \"defaultValue\": \"STANDARD_D1\",\r\n \"allowedValues\": [\r\n \"STANDARD_A1\",\r\n \"STANDARD_A2\",\r\n \"STANDARD_A3\",\r\n \"STANDARD_A4\",\r\n \"STANDARD_D1\",\r\n \"STANDARD_D2\",\r\n \"STANDARD_D3\",\r\n \"STANDARD_D4\"\r\n ]\r\n },\r\n \"vmCount\": {\r\n \"type\": \"int\",\r\n \"defaultValue\": 3,\r\n \"metadata\": {\r\n \"description\": \"The number of the virtual machines\"\r\n }\r\n },\r\n \"poolName\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool\"\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"osType\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"15.10\",\r\n \"version\": \"latest\"\r\n }\r\n }, \r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"properties\": {\r\n \"id\": \"[parameters('poolName')]\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": \"[variables('osType')]\",\r\n \"nodeAgentSKUId\": \"batch.node.debian 8\"\r\n },\r\n \"vmSize\": \"[parameters('vmSize')]\",\r\n \"vmCount\": \"[parameters('vmCount')]\",\r\n \"enableAutoScale\": false\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1551725410.1458392" - ], - "Content-MD5": [ - "sLKLnAZ4LgaLVKq3l8hvhw==" - ], - "Content-Length": [ - "1675" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1f45cbe-57f3-11e9-be61-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:E7A7q6M57VNPLTxP35fcVV4QJUam41vsJy2xzuNYttU=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B62789D1\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Content-MD5": [ - "sLKLnAZ4LgaLVKq3l8hvhw==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d1ffce3a-57f3-11e9-82e3-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:L9/ugZT1OgbKd0leHM5eYitNbpGj0KkkqlgUfyYS5bc=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:92fb5bda-401e-0024-5700-ecfd4e000000\nTime:2019-04-05T22:40:32.3219153Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d209b96e-57f3-11e9-a1a4-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:awPEmwnUFjip3Ly2JfpXYSKo1YQDycuTWxcmxYM5F/I=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Content-Length": [ - "215" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:92fb5bf0-401e-0024-6a00-ecfd4e000000\nTime:2019-04-05T22:40:32.4069743Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json", - "body": "{\r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"apiVersion\": \"2018-08-01\",\r\n \"properties\": {\r\n \"id\": \"blobsource\",\r\n \"displayName\": \"Blender Ubuntu standard pool\",\r\n \"vmSize\": \"Standard_D1_v2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\",\r\n \"targetLowPriorityNodes\": \"0\",\r\n \"enableAutoScale\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"sleep 1\",\r\n \"waitForSuccess\": true,\r\n \"maxTaskRetryCount\": 0,\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\r\n \"filePath\": \"setup-linux-pool.sh\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1553636329.0467827" - ], - "Content-MD5": [ - "GqZFE1K6vOAb3BZx8aiwVA==" - ], - "Content-Length": [ - "1165" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d2168be8-57f3-11e9-8162-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:O7JHiFQNXJhrEw+Si0pxk+Kk8Oks47UaE9SeOSU9xKg=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "\"0x8D6BA17B6496FE8\"" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Content-MD5": [ - "GqZFE1K6vOAb3BZx8aiwVA==" - ], - "Content-Length": [ - "0" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:31 GMT" - ], - "x-ms-request-server-encrypted": [ - "true" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "d260b2f8-57f3-11e9-af46-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:32 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "686" - ] - }, - "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NTAzNTQxLCJuYmYiOjE1NTQ1MDM1NDEsImV4cCI6MTU1NDUwNzQ0MSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBNXp0OHQ4aG9Ya0tBalhkcVJ2cStFMC9KalFZSHNZbVlJenNyTEgzUTVuVHRXSzVKQjVrNGVrRjJ4RU5tRmpLOXRkc2w5aGMzNWZXNzdCb2h0WEIwMVE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoic3NKTHB3bWJWVS1pdU81YkRXd0dBQSIsInZlciI6IjEuMCJ9.XBwLPMKJ_gOzxA3HZHgcdHPQov8jr8oh5XdEJUR4WS0wxFXKij8LcmAIxd7W9pHUE1aAwZacbbdi7XOlOMCtOuX71oOqmBNHWEmn7sizo5itFO_8_2-JXed2xEOwhpJRYtZ9KjPe63YepSQQAMSr9TvSn_9dyG4RhTyUuox_ErtbmMooToMz79XTfiwY08PjtJIU-oI_c6a3hWL2_XXShA8DDY9n-qd7LqT5vLL177q1c8HGEyYcIu-ifJ2x5bzpSs9n-JwuerRcxGOOp3T5KislbhaxN79u21sazinDK8olgwTIYjcgkcZUlzuJMwwROUEPFJFV-HCQ-eQkfVsnqw" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "d2911a98-57f3-11e9-b451-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:33 GMT" - ], - "Vary": [ - "Accept-Encoding" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container&comp=list", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d2bb5d9a-57f3-11e9-b58d-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:33 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:fP9kaLz5RMw8yLUvYsOAL398OWCRcdKdaGkzlKuVFCA=" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:33 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffbatch-applicationTemplate-parameters.jsonFri, 05 Apr 2019 22:40:28 GMT0x8D6BA17B42C1F9F1377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B44AF7EA219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B469A91E146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B48BB650187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B4AA6782206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonFri, 05 Apr 2019 22:40:29 GMT0x8D6BA17B4C8F1B0740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B4E754BF240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B506A25D1363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B52665404072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B54564B1254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonFri, 05 Apr 2019 22:40:30 GMT0x8D6BA17B5654E9E3565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5838A891252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5A5E5EE1140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5C55A961117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonFri, 05 Apr 2019 22:40:31 GMT0x8D6BA17B5E78EDB52application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonFri, 05 Apr 2019 22:40:32 GMT0x8D6BA17B60703831685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonFri, 05 Apr 2019 22:40:32 GMT0x8D6BA17B62789D11675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonFri, 05 Apr 2019 22:40:32 GMT0x8D6BA17B6496FE81165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "d2e9c1ac-57f3-11e9-b3de-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 22:40:33 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:SOIi3Lm4Id/B9+YvX6mHaiXJxt0PUA8bSLDvSuxZFWg=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:33 GMT" - ], - "x-ms-version": [ - "2017-07-29" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:d961ac5f-301e-0046-3700-ecba96000000\nTime:2019-04-05T22:40:33.8549986Z" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", - "body": "{\"id\": \"helloworld-job3\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"helloworld-pool3\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\", \"usesTaskDependencies\": true}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "d2f3d2b8-57f3-11e9-93a5-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "return-client-request-id": [ - "false" - ], - "Content-Length": [ - "476" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "ETag": [ - "0x8D6BA17B767AEEB" - ], - "request-id": [ - "7de3898b-607e-4527-a300-d0528a6d2292" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:34 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:34 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=CI50BKcHU8zive9cY9u/1XHOC9MuAZmvN7/F482p7qA%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=f/CLdZH0P992LuKBpZUxx%2BuSvTVR20oYylRT%2B3IEqnM%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=eDLMQOU%2BBi%2Bdf9gNyow4y8bEyzBvDniGkJcmwkCYbV8%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=Mqqzvq7Pg7IlraJrbMjLeVirjzVVNKhqyTsuO5zk/RE%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=GLBBKEgB7Hxairw6A%2B4Dc9531eFi4nLerZFEyZIZtVc%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=raxHAp70q9c9GEaNS2AY%2BOroQmhHj9QhOvbmsLgTbGA%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=NHt75A7hXaJ2u0l2BnJ4qJh5lkvkcVMR7WellWVSroo%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=SKyXYnbbRfnrJ1cu4eUJGB2dptlLvOzbgqZ5K2cUViM%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=7f6hfXVjdn437b709a3BXCZyz7dDLanSU81kJ4C9y7Y%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=b3b7Ej0bgVti5UmPVv8S74Ngvir7bbJ181RGrJE4n58%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=eAFeZod3U4Fy/rDrZBqvZ67i%2B2qF0VeKzHdMGbdd1ko%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=UWeEXdAYbnd/QdCLs28JhADxmN3pBYCNXReHVhA6mO4%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=wOO1lm6V8//0PYsIekABdZHaKZ32dN6krRXh4hdJJ14%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=7GYPmtDwyaWaNkWETIcBXHr9MZ3VILFSIqS%2BtZYm2lM%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=Dis6ah%2BeLyg%2BTO0LFS0PMnFukRLgM20L9zzLHCDI3a8%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=opZkx3AA1xto%2BNWpJOmrhocijVb8aWedxvPDLZEo3SU%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=22yRIw86wjMad5BpE/ZOrRmnV9Ze0%2Bdq1XsA7Wj3Ql0%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=r&sv=2017-07-29&sr=b&sig=4JKhYszXThoNwVp16UvGlBBFtpPz5gxhkjM8zBsWpVQ%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-05T22%3A25%3A33Z&se=2019-04-12T22%3A40%3A33Z&sp=w&sv=2017-07-29&sr=c&sig=CU1JquxPpapT3OKmA76VCU%2BPgH4uftV%2BGSxxRhS%2BXcc%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "d33fcfc2-57f3-11e9-aa04-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "14710" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "request-id": [ - "54ff6d64-07e5-4edc-9112-58686860fca1" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:35 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6BA17B7F2BC60\",\"lastModified\":\"2019-04-05T22:40:35.265648Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6BA17B7F9E83C\",\"lastModified\":\"2019-04-05T22:40:35.312646Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6BA17B7FCF59A\",\"lastModified\":\"2019-04-05T22:40:35.332649Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6BA17B80050F4\",\"lastModified\":\"2019-04-05T22:40:35.3546484Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6BA17B8050C67\",\"lastModified\":\"2019-04-05T22:40:35.3856615Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6BA17B807F224\",\"lastModified\":\"2019-04-05T22:40:35.40465Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6BA17B8035E26\",\"lastModified\":\"2019-04-05T22:40:35.374647Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6BA17B8061D5D\",\"lastModified\":\"2019-04-05T22:40:35.3926493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6BA17B80692D9\",\"lastModified\":\"2019-04-05T22:40:35.3956569Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6BA17B8061D5D\",\"lastModified\":\"2019-04-05T22:40:35.3926493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6BA17B8061D5D\",\"lastModified\":\"2019-04-05T22:40:35.3926493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6BA17B8066B81\",\"lastModified\":\"2019-04-05T22:40:35.3946497Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6BA17B80978B9\",\"lastModified\":\"2019-04-05T22:40:35.4146489Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6BA17B807826F\",\"lastModified\":\"2019-04-05T22:40:35.4017903Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6BA17B807A3EB\",\"lastModified\":\"2019-04-05T22:40:35.4026475Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6BA17B80978B9\",\"lastModified\":\"2019-04-05T22:40:35.4146489Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6BA17B80AD84D\",\"lastModified\":\"2019-04-05T22:40:35.4236493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6BA17B807CB13\",\"lastModified\":\"2019-04-05T22:40:35.4036499Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BA17B80AD84D\",\"lastModified\":\"2019-04-05T22:40:35.4236493Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n }\r\n ]\r\n}" - } - } - }, - { - "request": { - "method": "PATCH", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3?api-version=2018-12-01.8.0", - "body": "{\"onAllTasksComplete\": \"terminatejob\"}", - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NDUwMzUyNCwibmJmIjoxNTU0NTAzNTI0LCJleHAiOjE1NTQ1MDc0MjQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWk5TjM1M0x1VUhZS0dVdStQWTJVMW9xaFcyY2I3em95M1hkeGZReHh4MnFJd1NnNE9uZEkxcS9mSXVYMEE4Z000OEV3dE12cVl3WW5NamdCb0RFWHF3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6Ik4zLUVobXNtUjBXUHRZWkhzaW9HQUEiLCJ2ZXIiOiIxLjAifQ.ojQQ_ooseGZamvNWZbCYqMsYd8Q52xut6JUC3LEOhS1_8yRjzZhLuue0XOMRxg38cAS-UzQGUCBdJmB8Z6IzizFmhbDj1aJ6wNHflgXC2tKNJJdwL0O2bSnlh7Rswom8NE_f76pgdhx8l8J4JfONC6TtYrpdVXZEP03kKeJnhJECbb_oX3BC4hH_36DFHGIKYHq6tsjCBrQ8lNtomkTngDzsiDoXUmkZivL6RBWaHlwIN_BkI53r1d5pG4MxXvvMJ-S6uYfiBO2bWP7gTGIuzMsW8pdhKgO6Z7uuiLEud_dwCo9LDt3mXLhPhGu5IcuBoHZgIWYX63KKpxANPDToVw" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "client-request-id": [ - "d3fbfc3a-57f3-11e9-9787-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "38" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "ETag": [ - "0x8D6BA17B85427B0" - ], - "request-id": [ - "b6ac2e90-e510-4e72-a4e2-f903aa340fd6" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 22:40:35 GMT" - ], - "DataServiceVersion": [ - "3.0" - ], - "Transfer-Encoding": [ - "chunked" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Date": [ - "Fri, 05 Apr 2019 22:40:35 GMT" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "body": { - "string": "" - } - } - } - ] -} \ No newline at end of file diff --git a/tests/recordings/test_batch_upload_live.yaml b/tests/recordings/test_batch_upload_live.yaml deleted file mode 100644 index c6a78d08..00000000 --- a/tests/recordings/test_batch_upload_live.yaml +++ /dev/null @@ -1,715 +0,0 @@ -{ - "version": 1, - "interactions": [ - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "ae617dc6-57e4-11e9-8051-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Vary": [ - "Accept-Encoding" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Last-Modified": [ - "Wed, 27 Mar 2019 18:16:27 GMT" - ], - "ETag": [ - "\"0x8D6B2E053F1292B\"" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 20:52:09 GMT" - ], - "Cache-Control": [ - "no-cache" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "content-length": [ - "674" - ] - }, - "body": { - "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "aea4c81c-57e4-11e9-aac1-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Vary": [ - "Accept-Encoding" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Date": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Content-Type": [ - "application/json" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Pragma": [ - "no-cache" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "aed79924-57e4-11e9-ba90-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:a3GZY7lPJOJl8v6m5tnZ8Plxbsrfdk5qhaKlsJ5LY2Y=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "Date": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Content-Length": [ - "0" - ], - "ETag": [ - "\"0x8D6BA08931A6C5E\"" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/foo.txt?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "aef6b89c-57e4-11e9-870f-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:fCC2m4DsbvS/99ZcK71pyZO95CPbzjYRCedLu6WyUCQ=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Date": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Content-Length": [ - "215" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:9dd6bab5-c01e-00b6-10f1-eb6af8000000\nTime:2019-04-05T20:52:11.0871641Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/foo.txt", - "body": "1", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.2560813" - ], - "Content-MD5": [ - "xMpCOKC5I4INzFCab3WEmw==" - ], - "Content-Length": [ - "1" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "aefd6f64-57e4-11e9-8892-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:o8O+O1UXt1LClLVjfAOw3Od7vUqW60MpV4soaSdRkFA=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "x-ms-request-server-encrypted": [ - "true" - ], - "Date": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Content-Length": [ - "0" - ], - "ETag": [ - "\"0x8D6BA08932E394B\"" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Content-MD5": [ - "xMpCOKC5I4INzFCab3WEmw==" - ] - }, - "body": { - "string": "" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2018-12-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "af2801fa-57e4-11e9-96f5-44032c851686" - ], - "accept-language": [ - "en-US" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Vary": [ - "Accept-Encoding" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Last-Modified": [ - "Wed, 27 Mar 2019 18:16:27 GMT" - ], - "ETag": [ - "\"0x8D6B2E053F1292B\"" - ], - "Expires": [ - "-1" - ], - "Date": [ - "Fri, 05 Apr 2019 20:52:10 GMT" - ], - "Cache-Control": [ - "no-cache" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "Pragma": [ - "no-cache" - ], - "content-length": [ - "674" - ] - }, - "body": { - "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}" - } - } - }, - { - "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", - "body": null, - "headers": { - "User-Agent": [ - "python/3.6.5 (Windows-10-10.0.17763-SP0) msrest/0.6.4 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" - ], - "Accept-Encoding": [ - "gzip, deflate" - ], - "Accept": [ - "application/json" - ], - "Connection": [ - "keep-alive" - ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU0NDk2NzIyLCJuYmYiOjE1NTQ0OTY3MjIsImV4cCI6MTU1NDUwMDYyMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBbjczVnFCL09JWUlTWkw3RU1sdzdxUU53Tnp6b3MvWmMxSXIzR2dxRUhHVVZ2N0pBN2pkN244MTlua1A3d2NOMmRUYXVreUd3UTc0eEVsVTJhV1owY1E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTQ3LjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiIxQlNoMW5UczRFaTJ0SjVkSUJnREFBIiwidmVyIjoiMS4wIn0.lWZdv_8QeNsNiS6t7WpMcE73y9d_Exq26e2kJMBNkrS2Ezxj9w8KGIylVbctp3xvqLHCW1GNTkFrYrsA5NPUltr-ZzdGJGf-04GHXawuty6UsxnWUx_89kYI1nTfp8awSuYariNE4KAb4ktZwP_qPXmEanIbvtOBvc7tPqGe1hvmswjspdRohwlVSThIjzlb4vQ37pqJGvYPf8dg45n8Ckjx-kF4irYmZVzx8xhIYO79XOsGvi-lV8mFr1AndhKTIQpZQiVKiXkHJ3mw7B_vbGzbi8r-v8l5SU_Kv63GvbxG8qTH4v-gWN0mxAoXh83w3fRa4H6acAVLDbsxR2Nfdg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "af5fb388-57e4-11e9-84f0-44032c851686" - ], - "accept-language": [ - "en-US" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 200, - "message": "OK" - }, - "headers": { - "Vary": [ - "Accept-Encoding" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "Transfer-Encoding": [ - "chunked" - ], - "Date": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Content-Type": [ - "application/json" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" - ], - "Pragma": [ - "no-cache" - ], - "content-length": [ - "288" - ] - }, - "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests?restype=container", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "af87ced2-57e4-11e9-80da-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 20:52:12 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:yhxbFWAhKJQQBRKRVeohsgencX2+uqILvBbUURqP8Qs=" - ], - "Content-Length": [ - "0" - ] - } - }, - "response": { - "status": { - "code": 409, - "message": "The specified container already exists." - }, - "headers": { - "Date": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Content-Length": [ - "230" - ], - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ] - }, - "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:e905f121-a01e-00a6-75f1-eb5c1e000000\nTime:2019-04-05T20:52:12.1607504Z" - } - } - }, - { - "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/test/data/foo.txt?comp=metadata", - "body": null, - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "afa14b62-57e4-11e9-9672-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 20:52:12 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:2/Df1STpNSdP3XjcmcwsqxPk1dQONVumhcWvqUgJ0g0=" - ] - } - }, - "response": { - "status": { - "code": 404, - "message": "The specified blob does not exist." - }, - "headers": { - "Date": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Content-Length": [ - "215" - ], - "x-ms-error-code": [ - "BlobNotFound" - ], - "Content-Type": [ - "application/xml" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ] - }, - "body": { - "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:e905f129-a01e-00a6-7bf1-eb5c1e000000\nTime:2019-04-05T20:52:12.2117871Z" - } - } - }, - { - "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/test/data/foo.txt", - "body": "1", - "headers": { - "User-Agent": [ - "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.6.5; Windows 10)" - ], - "Connection": [ - "keep-alive" - ], - "x-ms-blob-type": [ - "BlockBlob" - ], - "x-ms-meta-lastmodified": [ - "1524153754.2560813" - ], - "Content-MD5": [ - "xMpCOKC5I4INzFCab3WEmw==" - ], - "Content-Length": [ - "1" - ], - "x-ms-version": [ - "2017-07-29" - ], - "x-ms-client-request-id": [ - "afa92fa2-57e4-11e9-a8ed-44032c851686" - ], - "x-ms-date": [ - "Fri, 05 Apr 2019 20:52:12 GMT" - ], - "Authorization": [ - "SharedKey sdkteststore2:yAYuYaJqr68Y2WmT8mbpHZmWlwdeEiMu23NBFDqIr2w=" - ] - } - }, - "response": { - "status": { - "code": 201, - "message": "Created" - }, - "headers": { - "x-ms-request-server-encrypted": [ - "true" - ], - "Date": [ - "Fri, 05 Apr 2019 20:52:11 GMT" - ], - "Last-Modified": [ - "Fri, 05 Apr 2019 20:52:12 GMT" - ], - "Content-Length": [ - "0" - ], - "ETag": [ - "\"0x8D6BA0893D9DB34\"" - ], - "x-ms-version": [ - "2017-07-29" - ], - "Server": [ - "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" - ], - "Content-MD5": [ - "xMpCOKC5I4INzFCab3WEmw==" - ] - }, - "body": { - "string": "" - } - } - } - ] -} \ No newline at end of file From 998d93ea5b97c9910bea0ff70b4301c70ee7b560 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Mon, 15 Apr 2019 09:46:27 -0700 Subject: [PATCH 06/13] Rerecord upload tests as failing due to weird key error --- .../test_batch_extensions_live.yaml | 9654 +++++++++++++++++ tests/recordings/test_batch_upload_live.yaml | 715 ++ 2 files changed, 10369 insertions(+) create mode 100644 tests/recordings/test_batch_extensions_live.yaml create mode 100644 tests/recordings/test_batch_upload_live.yaml diff --git a/tests/recordings/test_batch_extensions_live.yaml b/tests/recordings/test_batch_extensions_live.yaml new file mode 100644 index 00000000..d05653c0 --- /dev/null +++ b/tests/recordings/test_batch_extensions_live.yaml @@ -0,0 +1,9654 @@ +{ + "version": 1, + "interactions": [ + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "d7d9465c-5d41-11e9-9af8-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:38 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:rysgN/77J6D+BM93johhpukd6f81eWOS14wMF9BlkQU=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:38 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufeff" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "d80058e2-5d41-11e9-bfc4-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:38 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:rwl9a4GsFz0d2Ya94O96pPUcJV8AFax6ydxtZOllg8U=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "7cede8b6-adc9-44b6-ab9e-286ffc454160" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "d83437e4-5d41-11e9-9fb8-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "250" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:P8EPo4vCo7HIDa+S7wNRZd/ZdkxcFo6CY69IBetISq4=" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified pool already exists." + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Content-Length": [ + "334" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "749a04d3-fcea-45a2-9e38-5c7a9c967bec" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:749a04d3-fcea-45a2-9e38-5c7a9c967bec\\nTime:2019-04-12T16:41:39.4451825Z\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "d85acf5c-5d41-11e9-af09-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:+jgDWttfEBnD9r48LirRjEpOIQqilvUC9xtBKYe1PFA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BE9AA8647AC8" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Thu, 11 Apr 2019 16:27:57 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "30aa9194-c1c0-41fd-9e33-2d57d248fdc9" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6BE9AA8647AC8\",\"lastModified\":\"2019-04-11T16:27:57.8902216Z\",\"creationTime\":\"2019-04-11T16:27:57.8902216Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-11T16:27:57.8902216Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-11T16:29:28.7284471Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "d8785536-5d41-11e9-a0a6-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:mcOh/i8+0lsv8UuV/52vJisjtpWtslO6U2j9Pd4w8P4=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:39 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "1f0d5092-083f-4212-890c-9edde30aa71f" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-11T22:47:00.759112Z\",\"lastBootTime\":\"2019-04-11T16:29:33.768155Z\",\"allocationTime\":\"2019-04-11T16:29:28.5342891Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":11,\"totalTasksSucceeded\":11,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-11T22:47:00.08103Z\",\"endTime\":\"2019-04-11T22:47:00.691515Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.133.72\",\"publicFQDN\":\"dns261303a6-1e9f-4018-b14e-9a2c6a86867b-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T16:29:33.768155Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-ubuntu1404\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "d8ecde70-5d41-11e9-ae64-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "66" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF65BD897784" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:40 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:41 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "2c307b8d-63f4-4e26-8f4d-c91cae9b5b5f" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "d966553e-5d41-11e9-863e-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "475" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:42 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "23084545-42e6-49ab-b892-4e68f411f703" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "d9e55664-5d41-11e9-bc52-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:42 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:v7sDas95XVlSo/jQntNdSxr3pdhbUaDOckrEQTGSmCI=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65BD897784" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:42 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:41 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "874144dc-3d3d-4536-9862-ab7118915cc9" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6BF65BD897784\",\"lastModified\":\"2019-04-12T16:41:41.2008836Z\",\"creationTime\":\"2019-04-12T16:41:41.1808843Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:41.2008836Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:41.2008836Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "da003068-5d41-11e9-a35b-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:42 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:GLcGSVtNXYlIMhtjeMN1l1OKqN2vbuodEzhYmprfhLc=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:42 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "59ff2bf9-33ce-4cac-b62c-c0091b665c1d" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"creationTime\":\"2019-04-12T16:41:41.9963066Z\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:41.9963066Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "dbef028c-5d41-11e9-8e70-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:45 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:PI65uZWVfcUVTyDJOvxvyuiocMP4BhN6NBMPKrcTSr0=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:45 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "16257df7-d2f8-4d17-8a4a-546418355992" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"creationTime\":\"2019-04-12T16:41:41.9963066Z\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:44.191546Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:43.626215Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:43.626215Z\",\"endTime\":\"2019-04-12T16:41:44.191546Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "dc172106-5d41-11e9-8655-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:45 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:tzSZuSxB0aQYeyHsY6wk1KJLwWS8K3Tjl1vt8EYGLyQ=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65BE02D6BA" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:45 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:41 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "68b136bd-ff32-470f-bb6e-94820524bef5" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"creationTime\":\"2019-04-12T16:41:41.9963066Z\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:44.191546Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:43.626215Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:43.626215Z\",\"endTime\":\"2019-04-12T16:41:44.191546Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "dc3eb790-5d41-11e9-b9ed-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:2Jm+AXZ8oOnFObYjeeLn/B7z9GX/jVSNoEcB3Q0wN+A=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:45 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4BFDEB0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF480598394application/octet-streamJobAkBkm0zKfjQosftvf9A==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF440D350application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4014DA5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "dc4be534-5d41-11e9-b509-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:wR4+5Lrcgqwe9K20ZNMm8h9b9y4gEGWzB96VuDNtU0U=" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "62739e38-7de0-45e4-a8d8-7e28d8b6855b" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "dc6a247a-5d41-11e9-ab47-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:SZ7SF+89ivGWN3c7xXQHsUfFJgD9EU9mqDCtwPKwXXI=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:45 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4BFDEB0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF480598394application/octet-streamJobAkBkm0zKfjQosftvf9A==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF440D350application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4014DA5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploaderr.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "dc779fc2-5d41-11e9-82b0-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:yyHzNGVykwXa5VYPJrX9uHUdtPi7DwYIoWwaeCjJyKA=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/fileuploadout.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "dc7fbe62-5d41-11e9-8969-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:orctfL1nQMjDIi/lRJ2K3Y1P54LIe6Bc6utPKDBy3Sk=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stderr.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "dc8767ca-5d41-11e9-88c9-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:h0pwoS3oPcF2TKkMlNSV8Kfc1A96BNUJKRwsuWCkqgY=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer/stdout.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "dc906864-5d41-11e9-adee-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:wXdb5CdNwE87E+S8gktaG32PvA35N1MpwSixaDNYz9g=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "dc972c80-5d41-11e9-ab4a-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:oF+kqiNI+ciM6Ew7tSU7yZuXId7Dw/Y5ooN3Le5qvtQ=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "37a3431e-6b27-4f14-aa76-b8681a3b6e83" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "dcc0c6c2-5d41-11e9-b739-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "277" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:/ZfZFPp1CCayKWWiY0PeEjpxa3zEU+oVjI0eqp5MUkg=" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified pool already exists." + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:47 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Content-Length": [ + "334" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "d82efab5-85bd-424f-a54c-7989578e53e6" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:d82efab5-85bd-424f-a54c-7989578e53e6\\nTime:2019-04-12T16:41:47.0551859Z\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "dce2e6ca-5d41-11e9-befc-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:47 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:/tmHqGtZ8l830r2rtDzDDOi4zaOroYaEAD7cvsAYfHo=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BEC6908A7B31" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:47 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Thu, 11 Apr 2019 21:42:15 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "42eff4f2-f09e-4d85-9895-d0c255d984a1" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6BEC6908A7B31\",\"lastModified\":\"2019-04-11T21:42:15.7300529Z\",\"creationTime\":\"2019-04-11T21:42:15.7300529Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-11T21:42:15.7300529Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-11T21:43:47.4064134Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "dcff242e-5d41-11e9-97c5-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:47 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:czi1AOuftj8lDzwA93nPpeIe9M+1GpxjTG91p8OTSms=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:46 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "31f0bd3e-a6f1-4db9-b4ce-bd197c9a7308" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-11T22:48:14.891527Z\",\"lastBootTime\":\"2019-04-11T21:46:22.441758Z\",\"allocationTime\":\"2019-04-11T21:43:46.374784Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":11,\"totalTasksSucceeded\":11,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-11T22:48:14.251003Z\",\"endTime\":\"2019-04-11T22:48:14.860227Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.130.79\",\"publicFQDN\":\"dnsaa36c1f8-10e2-4832-833d-8928b6d921bf-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T21:46:22.441758Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-windows-2012-r2\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "dd399100-5d41-11e9-8e58-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "76" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF65C1F5EF26" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:48 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:48 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "e206f748-37ad-44fe-a2e6-d696c58a57d9" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "ddd2b0e2-5d41-11e9-9047-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "480" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:49 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "84318aba-c68f-42d4-8862-21a48360e625" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "de0cbf7e-5d41-11e9-afe6-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:49 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:790EK4wML8vs0ZwanFJisvBSTNIwUpVvP6fd/HsKWWA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65C1F5EF26" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:48 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:48 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "fa9dc011-d294-4d75-871a-505289b4d6e9" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6BF65C1F5EF26\",\"lastModified\":\"2019-04-12T16:41:48.6226214Z\",\"creationTime\":\"2019-04-12T16:41:48.6085962Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:48.6226214Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.6226214Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "de2b803a-5d41-11e9-ae95-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:49 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:tJRbHAZWjU3iYT2KRNFWYAEEhx+/nNqnezcD4hGea7w=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:49 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "d886b19a-ca39-40d3-a601-c422ba491f0d" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"creationTime\":\"2019-04-12T16:41:48.9730117Z\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:48.9730117Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e01c6894-5d41-11e9-aef1-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:52 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:7dx2k1ko/ZzsqSW8sf8dPkuC883AHrpXbakYpEof8+w=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:52 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "be2f92d3-dbad-44f0-8673-c3afdcf007be" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"creationTime\":\"2019-04-12T16:41:48.9730117Z\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:49.027714Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:48.496467Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.496467Z\",\"endTime\":\"2019-04-12T16:41:49.027714Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e0439792-5d41-11e9-a18e-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:52 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:8DxRKw06I4VXWeFtoJxJYy8R0A6hGbfQm0/N6RJ1PeM=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65C22B6645" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:52 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:48 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "27ee051d-d524-4767-b82c-15f7112488af" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"creationTime\":\"2019-04-12T16:41:48.9730117Z\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:49.027714Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:48.496467Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.496467Z\",\"endTime\":\"2019-04-12T16:41:49.027714Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/aaatestcontainer?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e06d66c2-5d41-11e9-bb89-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:kXtHR2jCnWz30NvpAlpQ81bkC5z9e65su80dLl4rBtU=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:52 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C342358A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C343955F405application/octet-stream6kRbeqcPUstmz8pgwSF5mw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C3451C430application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C3467C154application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e0791294-5d41-11e9-a7e0-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:a3DW0bjEtCaucG0QLuSLAf+UoCJzjDgu803lQLiNwso=" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "0994d3f5-c624-4381-93c7-7818320cf0aa" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e0966870-5d41-11e9-a473-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:XjbdH/nLBlJBVzFsHx0bChO2ZUckFzkCRV1q7Oe8Rs8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:52 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufeff" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e0a101a8-5d41-11e9-bde8-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:11ApHMEsMT9IN8elNGmmDzdiF51pAZytGcpzbj8wR20=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "bd3b6a86-1a8b-4bfd-bc3c-90dbf9a2b79f" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-ubuntu1404\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"14.04.5-LTS\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 14.04\"}, \"targetDedicatedNodes\": 1}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "e0bd849e-5d41-11e9-bcc9-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "250" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:gD4a38jca2f9zZ320S+jz9uPZalVnG01ZIl9d5q1GHA=" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified pool already exists." + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:53 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Content-Length": [ + "334" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "a641b1b5-f8c2-445b-879c-c2c0dd735836" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:a641b1b5-f8c2-445b-879c-c2c0dd735836\\nTime:2019-04-12T16:41:53.9229151Z\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e0faab10-5d41-11e9-ae85-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:54 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:zTZLvn0zf1Bp+smBLBW4nYhHY0eKGo0bj9DSBRC8hAk=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BE9AA8647AC8" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:54 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Thu, 11 Apr 2019 16:27:57 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "b2f3d5c5-ce0e-4d49-bd5c-afea32843ee0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404\",\"eTag\":\"0x8D6BE9AA8647AC8\",\"lastModified\":\"2019-04-11T16:27:57.8902216Z\",\"creationTime\":\"2019-04-11T16:27:57.8902216Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-11T16:27:57.8902216Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-11T16:29:28.7284471Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 14.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e1155e98-5d41-11e9-a810-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:54 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:pFnAU2Fd+tTVcg2fb6/WKOIjZQqkELmQ6eXD18Flqig=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:55 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "3f8d6f4d-bff7-496e-8f68-abb648ce916c" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-12T16:41:44.221103Z\",\"lastBootTime\":\"2019-04-11T16:29:33.768155Z\",\"allocationTime\":\"2019-04-11T16:29:28.5342891Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":12,\"totalTasksSucceeded\":12,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:43.626215Z\",\"endTime\":\"2019-04-12T16:41:44.191546Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.133.72\",\"publicFQDN\":\"dns261303a6-1e9f-4018-b14e-9a2c6a86867b-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T16:29:33.768155Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "e1d1bd38-5d41-11e9-bbb4-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:55 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "e2326af6-5d41-11e9-a24e-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:55 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e2525338-5d41-11e9-8954-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:41:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:b0IWGyjFFz47Fb177sH1PEMrHhc4IIa5HJ+8nVNId1U=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:07b8b58f-a01e-0043-3c4e-f14ee9000000\nTime:2019-04-12T16:41:56.3595090Z" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-ubuntu1404-1\", \"poolInfo\": {\"poolId\": \"ncj-ubuntu1404\"}}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "e26f004a-5d41-11e9-9cd6-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "68" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF65C6B4ED32" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:56 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:56 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "317e4a9c-9e25-4bdf-98b9-7bea068fa1da" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "e291c3ca-5d41-11e9-bbdf-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "473" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:57 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "3fe64ea0-73bb-4bc2-b248-9769ecaf2ef7" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e34a2ed4-5d41-11e9-a1ac-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:57 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:WYMoUwQN4CHQhWMfrLzHNByg47LFnOcZV9zHRv1eU4E=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65C6B4ED32" + ], + "Date": [ + "Fri, 12 Apr 2019 16:41:57 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:56 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "a1ba65ff-9ff8-478b-a1d9-5326264b1811" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6BF65C6B4ED32\",\"lastModified\":\"2019-04-12T16:41:56.5851954Z\",\"creationTime\":\"2019-04-12T16:41:56.5667186Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:56.5851954Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:56.5851954Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e3641f82-5d41-11e9-b71b-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:41:58 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:ZKEun4EyBivDtCdv1IApM8SS5c0Y6WtaO1aP7wWyqTc=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:41:58 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "08ec8500-bd96-4ccd-8bfb-1bc73f362ccb" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"creationTime\":\"2019-04-12T16:41:57.7604238Z\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:57.7604238Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e552d752-5d41-11e9-a2e2-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:ScRpHe+kjtvqR/NuPt2GjEkj9QOwDb0z96iOhrwudNg=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "38c62bf3-caf1-4524-b659-3e1d78785871" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"creationTime\":\"2019-04-12T16:41:57.7604238Z\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:59.094704Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:58.580311Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:58.580311Z\",\"endTime\":\"2019-04-12T16:41:59.094704Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e56ecf28-5d41-11e9-990b-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:lreKqTML6rrjiNoU/cFGG1d2V25iXD9hlzbLIm5fYSU=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65C768408E" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:41:57 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "2afbd8ac-8b8f-494a-b907-c172da4218a6" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"creationTime\":\"2019-04-12T16:41:57.7604238Z\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:59.094704Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:58.580311Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:58.580311Z\",\"endTime\":\"2019-04-12T16:41:59.094704Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e5940c64-5d41-11e9-8231-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:4yak3s/u3rELeMFbANotU0uhb76/eq/xYBprDzKpGN0=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82E6C260application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82AC1F6400application/octet-streamZQSk1EqhNRTbSOVVRK7GoA==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82717C50application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:58 GMT0x8D6BF65C822F8575application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e59f0d80-5d41-11e9-9278-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:+3BXLLLkud8Tk3i+K6kKI7ZC5atLCxuCHrLuBc6EVcM=" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "e23b7008-7e68-452a-bcdf-230b2205dc19" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e5ba491a-5d41-11e9-9e52-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:OXdy/QtkQXY89101Ap6yRoo/T6nhc1UQMG0Q1EZBJZA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82E6C260application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82AC1F6400application/octet-streamZQSk1EqhNRTbSOVVRK7GoA==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82717C50application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:58 GMT0x8D6BF65C822F8575application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/fileuploaderr.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e5c5678a-5d41-11e9-98da-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:fkEozs4OnRSFYrrLo0zhC0TC2eI8+8mfIdyDRzyGeCs=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/fileuploadout.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e5cc4d94-5d41-11e9-9783-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:zVpkOgZkBvffXLEQb4/tvJHHIej7UYdnc9jlttbUKwg=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/stderr.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e5d346e2-5d41-11e9-8004-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:lRn2Da+b43HcIe69JYBdibFqVsgpwuV4w5GLb1v80og=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output/stdout.txt", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e5da3fd2-5d41-11e9-9201-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:ZmrzumvMS7fBVl0XVupYDSelfAErEVeqVeyEurg6CpA=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:01 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ], + "x-ms-delete-type-permanent": [ + "true" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/nodeagentskus?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e5e5e324-5d41-11e9-8b1b-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:Jq10qS/lSWl7rmE1WXbfnNw5U7M9n+pf5sCsFglMWIc=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "058e7229-173a-4f23-a84d-9f326fe8d5f0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodeagentskus\",\"value\":[\r\n {\r\n \"id\":\"batch.node.centos 7\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.4\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.3\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"OpenLogic\",\"offer\":\"CentOS-HPC\",\"sku\":\"7.1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"Oracle\",\"offer\":\"Oracle-Linux\",\"sku\":\"7.6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-ads\",\"offer\":\"linux-data-science-vm\",\"sku\":\"linuxdsvm\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-centos73\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container\",\"sku\":\"7-6\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"centos-container-rdma\",\"sku\":\"7-4\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 8\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"8\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.debian 9\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Credativ\",\"offer\":\"Debian\",\"sku\":\"9\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 14.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"14.04.5-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 16.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04-LTS\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"linux-data-science-vm-ubuntu\",\"sku\":\"linuxdsvmubuntu\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-azure-batch\",\"offer\":\"ubuntu-server-container-rdma\",\"sku\":\"16-04-lts\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.ubuntu 18.04\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"18.04-LTS\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"linux\"\r\n },{\r\n \"id\":\"batch.node.windows amd64\",\"verifiedImageReferences\":[\r\n {\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-Datacenter-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2008-R2-SP1-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2019-Datacenter-Core-with-Containers-smalldisk\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2016-Datacenter-with-Containers\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"microsoft-dsvm\",\"offer\":\"dsvm-windows\",\"sku\":\"server-2016\",\"version\":\"latest\"\r\n },{\r\n \"publisher\":\"batch\",\"offer\":\"rendering-windows2016\",\"sku\":\"rendering\",\"version\":\"latest\"\r\n }\r\n ],\"osType\":\"windows\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-12-01.8.0", + "body": "{\"id\": \"ncj-windows-2012-r2\", \"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"MicrosoftWindowsServer\", \"offer\": \"WindowsServer\", \"sku\": \"2012-R2-Datacenter\"}, \"nodeAgentSKUId\": \"batch.node.windows amd64\"}, \"targetDedicatedNodes\": 1}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "e6050fba-5d41-11e9-a7ef-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "277" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:8vhijTemlqdRrer21lErwgdBJiifu0SqObT0DcWmLJo=" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified pool already exists." + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Content-Length": [ + "334" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "d0adcad8-d8be-4680-b32f-1139531d7aa7" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:d0adcad8-d8be-4680-b32f-1139531d7aa7\\nTime:2019-04-12T16:42:02.6104471Z\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e627dcb6-5d41-11e9-9db7-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:PuMfsGfx/cfGT/9qzCu6E6ORnj+vp3CeZLji50cBOXE=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BEC6908A7B31" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Thu, 11 Apr 2019 21:42:15 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "676f3616-084e-4339-8927-f0f40c79d99c" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2\",\"eTag\":\"0x8D6BEC6908A7B31\",\"lastModified\":\"2019-04-11T21:42:15.7300529Z\",\"creationTime\":\"2019-04-11T21:42:15.7300529Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-11T21:42:15.7300529Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-11T21:43:47.4064134Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"MicrosoftWindowsServer\",\"offer\":\"WindowsServer\",\"sku\":\"2012-R2-Datacenter\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.windows amd64\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e646ba9c-5d41-11e9-a388-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:02 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:9BT81pEceQfAvP4dI/jAO4HAg1zeIWMM5xVeJ5/gjug=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:03 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "54f5040e-15a5-491e-b0da-9b2e3a55abab" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-12T16:41:49.058968Z\",\"lastBootTime\":\"2019-04-11T21:46:22.441758Z\",\"allocationTime\":\"2019-04-11T21:43:46.374784Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":12,\"totalTasksSucceeded\":12,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.496467Z\",\"endTime\":\"2019-04-12T16:41:49.027714Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.130.79\",\"publicFQDN\":\"dnsaa36c1f8-10e2-4832-833d-8928b6d921bf-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T21:46:22.441758Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "e6847a08-5d41-11e9-8638-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:03 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "e6b5c3cc-5d41-11e9-af64-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:04 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "e7ca4c0c-5d41-11e9-8326-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:05 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:uPTmIuMyMk13W57SpB+JMVo/ARJ05GKLd2YB+EJEbRY=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:05 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9dc795b4-601e-0055-524e-f18f77000000\nTime:2019-04-12T16:42:05.5473992Z" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"ncj-windows-2012-r2-1\", \"poolInfo\": {\"poolId\": \"ncj-windows-2012-r2\"}}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "e7e9383a-5d41-11e9-96bb-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "78" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF65CC8DB313" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "cbcf8c70-f213-43b3-a45f-530a9a8d68c7" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "e86a7eb6-5d41-11e9-87aa-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "474" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "1d002a66-b882-4ea6-afad-54976efc272d" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e8928170-5d41-11e9-97ba-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:JJv+G5cQdbzIaOpt9L87MEUX7AZiHvMkr3VFCOfsN60=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CC8DB313" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "b7c265ca-88cb-41df-99d3-8f95fcda2682" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6BF65CC8DB313\",\"lastModified\":\"2019-04-12T16:42:06.3944467Z\",\"creationTime\":\"2019-04-12T16:42:06.3804464Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:06.3944467Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:42:06.3944467Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "e8ada4f6-5d41-11e9-bc04-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:Kv/3iXirTOH4anlOzIDERCkt6mY8kvYA3RMG+1aqBpI=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:07 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "ff9f48ee-0488-4889-8077-9b5ea267ef0b" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"creationTime\":\"2019-04-12T16:42:06.6568645Z\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:06.6568645Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "ea931962-5d41-11e9-bced-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:10 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:DjYs3gRY/YgjH1FwT3uyCxcA1BkyN49WoQCrtJbcGGg=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:09 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "48839e65-7112-49c0-8ec7-e646cab52226" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"creationTime\":\"2019-04-12T16:42:06.6568645Z\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:42:06.501857Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:42:05.955019Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:42:05.955019Z\",\"endTime\":\"2019-04-12T16:42:06.501857Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "eaae8eec-5d41-11e9-829d-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:10 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:UI8UGRydWe4MneuQN196nZmDsOPbvdgpAgAG3313Wgw=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CCB5BDC5" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:10 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:06 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "86575793-8c22-4eeb-a840-0a541c7da463" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"creationTime\":\"2019-04-12T16:42:06.6568645Z\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:42:06.501857Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:42:05.955019Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:42:05.955019Z\",\"endTime\":\"2019-04-12T16:42:06.501857Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "eac9ce18-5d41-11e9-88f3-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:42:10 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:NSK25OcMHuEmgwMXGklcZTXYDsRk83RcGEMvoRR6euA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:09 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDA9B6AD0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDAB64A8411application/octet-streamx6vUjv+zegM2c2B86O+Lrw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDACEB980application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDAE727C4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "ead6cf06-5d41-11e9-b9e0-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:10 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:m6KHP4yR/VODZHFF4Qj+PQvAirjRPWZA7bpK8xuTIxw=" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:42:10 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "e897af7b-b24e-44a2-93ea-d69494109257" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools?api-version=2018-08-01.7.0", + "body": "{\"id\": \"blobsource\", \"displayName\": \"Blender Ubuntu standard pool\", \"vmSize\": \"Standard_D1_v2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1, \"targetLowPriorityNodes\": 0, \"enableAutoScale\": false, \"startTask\": {\"commandLine\": \"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\", \"resourceFiles\": [{\"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\", \"filePath\": \"setup-linux-pool.sh\"}], \"userIdentity\": {\"autoUser\": {\"scope\": \"pool\", \"elevationLevel\": \"admin\"}}, \"maxTaskRetryCount\": 0, \"waitForSuccess\": true}}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "eb2e4a18-5d41-11e9-baf4-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "759" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:fOcC1y3w73gbZXxojgv0mJZscdTtJC49uDXzwq/xJuk=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "84ecebf2-8532-4367-bf65-ee1dd48ad037" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "ebb20be4-5d41-11e9-b673-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:12 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:gTvLGjHlvvWrC68d/rc5blmBi7zh03si52pfUcM6thA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:12 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "bd79c0a5-3db5-4a6b-880a-ec4f2025d1ac" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "ed9931d2-5d41-11e9-9653-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:15 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:T99WJ8KaN1/j8+ltZlRzkq+NwhZJg9rnqfPffIZnpwg=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:15 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "eaa51958-b7c7-4ab8-9b8b-ea0e217a7ddb" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "ef80159a-5d41-11e9-a809-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:18 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:wadJ2LQr7QjmTrg059zv2hRYgmTRKf5KvNVAMyEhMrA=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:18 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "8a715118-404b-4124-926d-3204f0f91d2a" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "f16827d4-5d41-11e9-a599-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:21 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:/QYsGHj3ZoArDA9U1xCuUrTDGftVzKKg0u6pMw2a64I=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:21 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "fbc69d8a-67df-431d-8e35-dc9442aec17c" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "f34d3246-5d41-11e9-9d56-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:24 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:7etbqcKjsnHWwpIGrNXFXOBDcKZuxxgP77y0P0GZxCk=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:24 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "46d28506-a9b8-4117-acea-c8a317bf4764" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "f534f71c-5d41-11e9-89fc-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:27 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:EpGY78JZZ69CX1AlpuEPUHqo82lbviFetlPftWncXHI=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:28 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "bfefebc1-e14f-4ee5-984f-eef4be71cc51" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "f71b8d1a-5d41-11e9-ade6-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:31 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:Sn4IPaS2vJdaqkclTLiqZhQgSo4Gc0+I2SWovjrmEsI=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:30 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "d988bbba-4d89-4e46-98c2-96707f6fff14" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "f9036e4c-5d41-11e9-95dc-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:34 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:t+kSSJuW58j4oQkJtsLA00qBdBvdyhmXrlzDgf3g41k=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:34 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "f4b51b7f-d83d-4f9c-9018-dba8e2bfdf78" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "faec5222-5d41-11e9-800b-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:37 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:4/3XmsKfvW1tQeIFdfD1qojtqVYE7TfaangAurcQcHE=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:37 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "cf0502e7-ef3d-44a2-b78a-40020111554b" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "fcd4b154-5d41-11e9-b574-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:40 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:DMf2zDIx+S74mBphFqZ+1Gl6rP/P2kZrNOKzzH42ilQ=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:40 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "699eca58-f6dc-43f9-9be4-a7da747239b1" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "fec16a80-5d41-11e9-bbc0-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:43 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:liej9HIlLhIQjziRDdl1mjIKrNHcpAHymKf4kwdbMNU=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:44 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "9ccb8fbd-51b1-43f2-a991-4996e0e3311f" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "00ab7e2e-5d42-11e9-ae10-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:47 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:JmN24+NdqZah3ohMKUjY2fCJUUjq3/UqlC+kLT5zWz4=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:47 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "4d8fcc3a-3352-41f8-ad1f-a273e6a582f7" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "02947fc6-5d42-11e9-94fb-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:50 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:cWJp33n9HY3dvmW73e7NUur/cxVK0ExQGuYCLxugp+8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:50 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "95852b71-caa0-47de-9296-8ec268acb87d" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "047de134-5d42-11e9-a3c0-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:53 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:sFkV3EYTIuGQW2FfQZo9b0fhtbxUCjsr8rkPx6sM3f8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:53 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "b865d137-b50c-419d-9bc3-95f6366005a0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "066a5f42-5d42-11e9-92fd-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:42:56 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:zFzRQEV9fdDzWs+ujIKXL7D1txhxbXhe2K2raz1eJaM=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:42:56 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "b633d777-af62-487a-b7c8-0fc8dae2541a" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "085873b6-5d42-11e9-9291-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:00 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:PQfPG/bZl2wYeSi2MwbnhrrZQPTBPYtmroRYYaIyr3I=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:00 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "4fbe01bc-a940-40c1-8c3c-82a910ffe02d" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "0a4809ee-5d42-11e9-a7ac-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:03 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:HSoXaz8O9+ykx58MnvuK69QUVCzxCU86Z/sflbvc+SE=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:03 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "692fe3f7-ec48-4085-b3d4-ba1776d45b38" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "0c3056e6-5d42-11e9-9cea-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:06 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:E3P4HhZ0BFvuSB2oRZzc097oPPo0DMopENiPaTnBNMM=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:06 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "9b8b0fc9-ed06-4984-bc80-cc2c9ac3f9b7" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "0e19e70c-5d42-11e9-a1e1-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:09 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:G6kkRT7qM3lGl4hY7+CeEv6/E87vBS5GapVLjyUl/u8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:09 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "321bf956-5379-4d52-ab30-a82dcd7ec949" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "10029118-5d42-11e9-a686-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:12 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:p5YHe3SgtWtbboWNyg0zqnA5+eBn1V2rphgLNQZ2N/4=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:13 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "c528cadb-0302-44d2-8bc0-261e49131d64" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "11e97a68-5d42-11e9-9bd4-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:16 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:s/GFEq0MblqsHWGYzhayiaVM5aDJhANvsM8iqWPpEoo=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:16 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "84ee3f7d-d215-41d5-be01-281dad39df8a" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "13cea482-5d42-11e9-8b86-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:19 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:VCshcJZsdgtLjwX6QiaJnnSlH3ZpZzEP7SyZfkdetkk=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:19 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "4a61eb9e-ea6b-453d-810e-a581dc63c570" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "15b39d00-5d42-11e9-99a2-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:22 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:+VpuMCKpNBdgrCov199mzwmyRLUYmA9IwzNOGRfaDgw=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:22 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "a2f9d208-037f-496c-98c4-cadd6f8edbfd" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "17a01a1a-5d42-11e9-a0c1-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:25 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:zm2aZoSxySeRY+dISxCounGr2ccWLuxDr3hx0hJ3db8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:25 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "91700e29-ebf3-4ec0-a8bb-5e2831e83d83" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "19890788-5d42-11e9-b15c-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:28 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:pHHvs2Sy46yENZUCY31hXcPxg+iEfaGRzA/4LQMksXk=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF65CFD1231F" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:28 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:42:11 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "ab7992a8-e7e6-4726-afa6-e3e0b2c8e727" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-12T16:43:28.5941813Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + } + } + }, + { + "request": { + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "client-request-id": [ + "19a549a2-5d42-11e9-94e8-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ], + "ocp-date": [ + "Fri, 12 Apr 2019 16:43:29 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:7/uokf71N5MBmaYa0SNp2yZO6pEssR5cYIPtAcgE2nQ=" + ] + } + }, + "response": { + "status": { + "code": 202, + "message": "Accepted" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:43:28 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "3b4aec38-feb6-431f-91c9-d6fb85b119eb" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "19ef989c-5d42-11e9-85f7-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:29 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "1a17461e-5d42-11e9-a3d2-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:29 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-08-01.7.0&timeout=30", + "body": "{\"id\": \"job123\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"pool123\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\"}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "1a3a3b22-5d42-11e9-a829-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "428" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF65FF07B013" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:31 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:43:31 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "91e9416c-9149-4d09-89b5-5d58d549fab3" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123/addtaskcollection?api-version=2018-08-01.7.0", + "body": "{\"value\": [{\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat {fileName}'\", \"resourceFiles\": [{\"blobSource\": \"https://testacct.blob.core.windows.net/\", \"filePath\": \"location\"}]}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "1ae4ae24-5d42-11e9-a57a-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "174" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:43:31 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "f92aaa6e-b4d5-489c-b515-ee1a450d5425" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BF65FF79435F\",\"lastModified\":\"2019-04-12T16:43:31.8243167Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "PATCH", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123?api-version=2018-08-01.7.0", + "body": "{\"onAllTasksComplete\": \"terminatejob\"}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "1b6245f8-5d42-11e9-8ec1-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "38" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF660056C96D" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:33 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:43:33 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "77f12f25-cb18-4c74-839f-956e447dbfdc" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "1c59b8f8-5d42-11e9-bcfb-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:33 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "1c8d4540-5d42-11e9-8bcb-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:33 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1cbfea9c-5d42-11e9-ac7c-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:XPhccoGa4nBvjRirVx6OXEQ7k13zwF8gLG79uTpjiGA=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2143e3-d01e-00cf-104e-f103b2000000\nTime:2019-04-12T16:43:34.4178844Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1ce15878-5d42-11e9-9f25-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:e6K9zI+8T4ZLEcAAZa3Yp7rr/Bn0GaW6dN90podVmXM=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649B3E0A69\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:34 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.0615716" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1ce8c966-5d42-11e9-9db7-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:22hgQ2MfNPLvThGBfbJIcAFzBZfRe4vG0iKElWAztf8=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21441a-d01e-00cf-3f4e-f103b2000000\nTime:2019-04-12T16:43:34.5129524Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1cefed1a-5d42-11e9-8bcc-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:xBMsV2+frg7QYIdn4+eh3u71qpJXhURRPggZb0kQSkc=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649B542E8B\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:34 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.252081" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1cf7732c-5d42-11e9-87ad-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:dR765fTBaMXcbmyLVc5YB2tyFr/KOnG66CwNkT1nnpk=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21443e-d01e-00cf-604e-f103b2000000\nTime:2019-04-12T16:43:34.6160253Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1cffb706-5d42-11e9-9874-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:LFB3mWJJpKZod0LxCr9VtNOVuUrA5DW32ai4xy6OCuE=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649B69410A\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:34 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.252081" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d08680c-5d42-11e9-a5b1-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:/TXeoxiY5meJy+/EsTMWLi4FIItBRABKX6x4JCFFhLc=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214474-d01e-00cf-0f4e-f103b2000000\nTime:2019-04-12T16:43:34.7200993Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d0f855c-5d42-11e9-bf7f-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:kmCkbHTcTq0Y0nqVDwAWvHapaNbeKLtaMJIk3JAsx7c=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649B7EEFE7\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:34 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.253081" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d169550-5d42-11e9-9544-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:8vNTEKb/6an2Tp7YT4T3i6erDIdBv9xAp8XX4yQTXc8=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214495-d01e-00cf-2d4e-f103b2000000\nTime:2019-04-12T16:43:34.8131659Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d1dc386-5d42-11e9-b072-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:zpWVJ+sWmT7vXk63DnvpyY6lzjVAx5CR3CpNtmwH/Y0=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649B93DB4F\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:34 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.253081" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d250962-5d42-11e9-87dd-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:qC96WjOM15BiaSouaEP74rcGs8zvVZ89DLSASpuK14I=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2144ad-d01e-00cf-404e-f103b2000000\nTime:2019-04-12T16:43:34.9082331Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d2c5948-5d42-11e9-a259-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Gt0CfE5FVcHj1S8yWDAQP+3NVrV4dR96gaC9dADHrf8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649BA93BFD\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:34 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.0625725" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d340afa-5d42-11e9-bdf9-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:PB8RGDMuzuebO5JREYAJ4uq7TT5e91Tmwli0+g8a3d8=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2144cc-d01e-00cf-5c4e-f103b2000000\nTime:2019-04-12T16:43:35.0053030Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d3b267a-5d42-11e9-929a-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:62yHnctyVLZACTqoZt0f/UNTbiX0BP5ItXj9vEinxz8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649BBE4E7C\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2540834" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d42cd08-5d42-11e9-8a10-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Zeh/8Q25vkncz1rvNN5aDafCLE4JEBsIMBOdjvPjSW4=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21450e-d01e-00cf-0c4e-f103b2000000\nTime:2019-04-12T16:43:35.1023722Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d49ca06-5d42-11e9-8af8-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:6YAaSMICImm2gHEBAHcbHy7tmteYuc5qEDc3i/sY+Yo=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649BD499B5\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.0829573" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d51dd92-5d42-11e9-b1d4-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:rpeL9OX78aS/nYjka1yiXjkWGRJ2SGc3zS3C1oHX5XU=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214544-d01e-00cf-344e-f103b2000000\nTime:2019-04-12T16:43:35.2124516Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d5a9db0-5d42-11e9-8db2-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:XVL01rxGA+C3cMop0AhoLdo4YH4HlelQlXBIO+mCwFQ=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649BEC92E9\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:34 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1552419189.7367494" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d625cae-5d42-11e9-b5ea-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:3WXoq38flPeGAgGyx391T56hY8PHHWH7nfevI6DITDI=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214573-d01e-00cf-594e-f103b2000000\nTime:2019-04-12T16:43:35.3115227Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d699fa8-5d42-11e9-8dcb-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:MauhyLlw8pRngeca7IbQwcc1FLj6BR+ZXIS87LjTnTM=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C02B713\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2550833" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d714f06-5d42-11e9-8eb0-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:sgWE3VrvdzANe+v2YB+Apkcu2+lsEX6ZKkeKunYNKnY=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214594-d01e-00cf-784e-f103b2000000\nTime:2019-04-12T16:43:35.4085924Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d787e2c-5d42-11e9-ae05-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Hei8ewrdFlLd3/WLQTgWmuG6SkFzwI5PM1LpZFX48eE=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C195076\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1117144" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d7fdd82-5d42-11e9-bbd9-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:hs92Kbl/gq/zzm8E5/RrshYJ09AyArZW/mxr8pLIIYM=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2145b7-d01e-00cf-164e-f103b2000000\nTime:2019-04-12T16:43:35.5026594Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d86e5e4-5d42-11e9-8997-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:vLWyjjeYs8hA125ZuBJYtGhjceCcgx70M806VNpQCJs=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C2E3BE3\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1554911861.1736982" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d8e82f0-5d42-11e9-ae2e-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:/To60WJEmDP6RuOuyTeNoNuNEoyntiN3BsLPExgQ0RI=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2145e0-d01e-00cf-354e-f103b2000000\nTime:2019-04-12T16:43:35.5987284Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d959168-5d42-11e9-a6a3-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:fP3Pmt50ei2DlLKO54iTgxZraQ8YLm3Xrny90RmCWsw=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C499119\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:35 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1238391" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1d9cfc40-5d42-11e9-9083-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:DP3V7bL66WSRm5hxECVj//Q2+rKa6T7Wg1+PtZa5uec=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2145f7-d01e-00cf-4b4e-f103b2000000\nTime:2019-04-12T16:43:35.6977999Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1da4c5c8-5d42-11e9-ab4e-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:8G8GREJhACLVKXT2oeu4FQCiGOSGIXu8YpkV//qa1e8=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C5F8E1F\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:36 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1388402" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1dac1766-5d42-11e9-9c63-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:wCYHfIhowc5ibjWtUCXFDLFDZfGVZ2cFahX7096FBb4=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214625-d01e-00cf-724e-f103b2000000\nTime:2019-04-12T16:43:35.7948691Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1db37eb6-5d42-11e9-a8be-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:zjirUrQXfmo1bDXy58Kty9KI9mex5aFIybMvfkV5Lrc=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C769CD5\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:36 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2550833" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1dbb2248-5d42-11e9-8138-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:WMCoIcedz2/PMQ+EJLfhe4TjDUZYRpFmtp0JjZlYGWY=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21464d-d01e-00cf-194e-f103b2000000\nTime:2019-04-12T16:43:35.8919392Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1dc23148-5d42-11e9-8353-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:glIDj5RIVsDadNhQzNQEMKhpOm4NFlqutKEmMlorkG0=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649C92675C\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:36 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1398392" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1dc9e062-5d42-11e9-9446-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:JBZ4swb/BuqCeMIEhICUN5q+Vai1I6+l4xmNy3f3mWI=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214670-d01e-00cf-384e-f103b2000000\nTime:2019-04-12T16:43:36.0050194Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1dd3e7ec-5d42-11e9-9662-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:FdUCIt43QScOI2ByRjpwEQR8lbVp2v+KTt1kpJFCCus=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649CAECE3C\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:36 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1458392" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1ddc3cb0-5d42-11e9-888d-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:w1m+wEz1qjSwzpFo7G9daPPA0r1Kn0lIgY3LEeM1xAg=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2146b8-d01e-00cf-744e-f103b2000000\nTime:2019-04-12T16:43:36.1100946Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1de3a18a-5d42-11e9-8300-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:tgKEDssa8/T2dxhj3PTNJpBJ8+F1Q0zm7i7mT3/iGt4=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "\"0x8D6BF649CC8C3AC\"" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:35 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:33:36 GMT" + ], + "Content-Length": [ + "0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-meta-lastmodified": [ + "1554911861.1757023" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "1e04234c-5d42-11e9-805b-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "1e3bffc6-5d42-11e9-b24f-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Pragma": [ + "no-cache" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:36 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Cache-Control": [ + "no-cache" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Content-Type": [ + "application/json" + ], + "Expires": [ + "-1" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container&comp=list", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1e6b31ca-5d42-11e9-8391-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:37 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:WvQ+X74RxyjULSJ0i+OwWbbXrSpG30vUlkwugVlY+rc=" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:43:37 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Type": [ + "application/xml" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "string": "\ufeffbatch-applicationTemplate-parameters.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B3E0A691377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B542E8B219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B69410A146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B7EEFE7187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B93DB4F206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649BA93BFD740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649BBE4E7C240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649BD499B51363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649BEC92E94072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C02B713254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C1950763565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C2E3BE31252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C4991191140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649C5F8E1F1117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649C769CD552application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649C92675C1685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649CAECE3C1675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649CC8C3AC1165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-output?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "1e94a65e-5d42-11e9-b25f-44032c851686" + ], + "x-ms-date": [ + "Fri, 12 Apr 2019 16:43:37 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:UmWf0Ir1zax8D+mbJBjAClquJ6weG5CTxO9KdaY33uM=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:37 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:326a7c75-501e-007f-464e-f1fa32000000\nTime:2019-04-12T16:43:37.3143318Z" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-12-01.8.0&timeout=30", + "body": "{\"id\": \"helloworld-job3\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"helloworld-pool3\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\", \"usesTaskDependencies\": true}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "1e9bb436-5d42-11e9-a1ec-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "476" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "ETag": [ + "0x8D6BF6602F64AB2" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:37 GMT" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:43:37 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "e0f15137-8224-4f2e-8c3d-777bf7e11ade" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/addtaskcollection?api-version=2018-12-01.8.0", + "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=8mtQI5w8zfOmv7JQYBIprvAzTFQ2UL1YLf3/tEFf2Tc%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=jIdOunkRfc8MZQeDDGUx4MvkqAPTlzRRmaKakJ3VQVs%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=YcUwn7cgK/i/0jYATmN9CXiUfu8TrxKoMg2Gh3KKfpM%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=pVOLDLgCiOpVaCe4VoxU4u%2BTVAXAq87k%2B1FYlJs1p4o%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=GpgR0ZwdljmKlEt/E%2BZB3/BqcFnUjyOBH7qMnVQauKM%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=ikNKjUd4B8SbUshl1u12eiWaoMs0aQLq5doo/S0EWus%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=RR4VVHcpmWQVNfISRRMztaaXLDZOEynTSy2ZjBJSHIk%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=IwBl9oCoS6oXwvw191XEGgTz/O6YL3FN7uLFJXt8WCM%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=1qsFbuwSx2tYxYebLl/8FKBXcXOt0Dg8gSN2Tg9jgMo%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=mCRASJMClyKDTSUuGdlAKgntiuuDxmxxxeCkKHpDS8A%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=kScG00Zsw5FiMLxJAs0IRkcx5RsDzqLgIgL7Q0WFH9k%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=ow0NhTbWuiadflm3qdMTPaF2x19sLIVy/D82k2pFba0%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=/z3773wyEFLBIlgT2sq6HtyCy4KiaGOFxXUOE0hOUGc%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=yApga2eUyxnFoTFMIyQd8uc%2BgtWGHU2E0YOc8MO%2B3kY%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=WDXUvPmzlvNiMczNKLY139NTw9POoTtes9OhFodddWY%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=a5Bhmb6U9pEE5ttLUuxoQqVtnhQHhiiMKZmh4J6AOzc%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=AlAjl0N8D/79f%2BkkJonwVwFdeAoCObo1WCx/Xx0gLEA%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=NeJ6Yt9oPcO8Yb8wIuw5QNfh%2BPWatyUDI4Pf5EQ/bqw%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "1ed34d94-5d42-11e9-9c3d-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "14628" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Fri, 12 Apr 2019 16:43:39 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ], + "request-id": [ + "b874a186-b406-4b02-85e2-638cf80740e4" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6BF6603A69C6F\",\"lastModified\":\"2019-04-12T16:43:38.8323951Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6BF6603AE8A81\",\"lastModified\":\"2019-04-12T16:43:38.8843649Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6BF6603BE8FFC\",\"lastModified\":\"2019-04-12T16:43:38.9893628Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6BF6603BEB73C\",\"lastModified\":\"2019-04-12T16:43:38.9903676Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6BF6603B58F69\",\"lastModified\":\"2019-04-12T16:43:38.9303657Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6BF6603C3992E\",\"lastModified\":\"2019-04-12T16:43:39.0223662Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6BF6603C4AA95\",\"lastModified\":\"2019-04-12T16:43:39.0293653Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6BF6603B8EAD0\",\"lastModified\":\"2019-04-12T16:43:38.9523664Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6BF6603C4AA95\",\"lastModified\":\"2019-04-12T16:43:39.0293653Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6BF6603C67F64\",\"lastModified\":\"2019-04-12T16:43:39.0413668Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6BF6603C1C478\",\"lastModified\":\"2019-04-12T16:43:39.0103672Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6BF6603C77C97\",\"lastModified\":\"2019-04-12T16:43:39.0478487Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BF6603C67F64\",\"lastModified\":\"2019-04-12T16:43:39.0413668Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6BF6603C4D1AB\",\"lastModified\":\"2019-04-12T16:43:39.0303659Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6BF6603C08BF7\",\"lastModified\":\"2019-04-12T16:43:39.0023671Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6BF6603C1EB8E\",\"lastModified\":\"2019-04-12T16:43:39.0113678Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6BF6603C67F64\",\"lastModified\":\"2019-04-12T16:43:39.0413668Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6BF6603C790C4\",\"lastModified\":\"2019-04-12T16:43:39.0483652Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6BF6603C790C4\",\"lastModified\":\"2019-04-12T16:43:39.0483652Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "PATCH", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3?api-version=2018-12-01.8.0", + "body": "{\"onAllTasksComplete\": \"terminatejob\"}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "1faedc18-5d42-11e9-9f61-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "38" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "ETag": [ + "0x8D6BF6603FDA175" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" + ], + "Date": [ + "Fri, 12 Apr 2019 16:43:39 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Fri, 12 Apr 2019 16:43:39 GMT" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "request-id": [ + "fbaf4691-c6b7-4303-9bc0-ace034233ce5" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/recordings/test_batch_upload_live.yaml b/tests/recordings/test_batch_upload_live.yaml new file mode 100644 index 00000000..e545c530 --- /dev/null +++ b/tests/recordings/test_batch_upload_live.yaml @@ -0,0 +1,715 @@ +{ + "version": 1, + "interactions": [ + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MzQ2MzQ2LCJuYmYiOjE1NTUzNDYzNDYsImV4cCI6MTU1NTM1MDI0NiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBRzZjTkw2eUIrcm9ycWpodUxDdW0xVURKeWROVlRRWFRQZWdReFg1b3B1Uy9JR0RLTkV2TWpwYVBKYzN1b2x6TVN5T1U4TTlpTExRWXhIU2NlWmJZRWc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJmYU5TbGNnUS1VV2FubW10YTlSZkFBIiwidmVyIjoiMS4wIn0.BR5vnGyMeYLi8DbnZF7nSZxkn-n9ixD0E1-n6Kp2Mv3GFlDZzfPwxvrhXqZezuzbcKIle36r2HQGbudCwDZS9DnRGPudNG3YVv_75j_rHYZ4o-PXTfSwX9xNBqQ8fxSEGTyUc8stB0DC1Vh1QNVLYuYBaWGMwL90YYQ_Hf2bIO7MFl1QHF62UxH6E_lvLScjZpf_qQA6WoylMbks49bua375-aa3nBI22nz8octpLTVELHwZIgHXum2ib7P_k3YCOARpDWycajUCTF36KbtN2N4ohnXc1F-G6ghzShdcTicwheod84Zb95SEdeCXDuJP4iaz1PNqrS0owjW8w7Rxjw" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "75b28aee-5fa1-11e9-b72d-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Last-Modified": [ + "Wed, 27 Mar 2019 18:16:27 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D6B2E053F1292B\"" + ], + "Vary": [ + "Accept-Encoding" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "content-length": [ + "674" + ] + }, + "body": { + "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MzQ2MzQ2LCJuYmYiOjE1NTUzNDYzNDYsImV4cCI6MTU1NTM1MDI0NiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBRzZjTkw2eUIrcm9ycWpodUxDdW0xVURKeWROVlRRWFRQZWdReFg1b3B1Uy9JR0RLTkV2TWpwYVBKYzN1b2x6TVN5T1U4TTlpTExRWXhIU2NlWmJZRWc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJmYU5TbGNnUS1VV2FubW10YTlSZkFBIiwidmVyIjoiMS4wIn0.BR5vnGyMeYLi8DbnZF7nSZxkn-n9ixD0E1-n6Kp2Mv3GFlDZzfPwxvrhXqZezuzbcKIle36r2HQGbudCwDZS9DnRGPudNG3YVv_75j_rHYZ4o-PXTfSwX9xNBqQ8fxSEGTyUc8stB0DC1Vh1QNVLYuYBaWGMwL90YYQ_Hf2bIO7MFl1QHF62UxH6E_lvLScjZpf_qQA6WoylMbks49bua375-aa3nBI22nz8octpLTVELHwZIgHXum2ib7P_k3YCOARpDWycajUCTF36KbtN2N4ohnXc1F-G6ghzShdcTicwheod84Zb95SEdeCXDuJP4iaz1PNqrS0owjW8w7Rxjw" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "75f6544a-5fa1-11e9-ac95-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Type": [ + "application/json" + ], + "Date": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Vary": [ + "Accept-Encoding" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "761bb988-5fa1-11e9-9c20-44032c851686" + ], + "x-ms-date": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:P01xAdcvfriIKmv59Ms4uFa7bugZcu5a46aNEe3BIXM=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "Last-Modified": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "Content-Length": [ + "0" + ], + "ETag": [ + "\"0x8D6C1C55A75F75A\"" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/foo.txt?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "7649e188-5fa1-11e9-8d14-44032c851686" + ], + "x-ms-date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:TOKJCG9WaxoaqRpI0ooc892Fyxdw2KwuVxLW3RmKohg=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "Date": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "Content-Type": [ + "application/xml" + ], + "Content-Length": [ + "215" + ], + "x-ms-error-code": [ + "BlobNotFound" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:d102a978-101e-00d2-02ae-f3da58000000\nTime:2019-04-15T17:11:09.0492831Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/foo.txt", + "body": "1", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2560813" + ], + "Content-MD5": [ + "xMpCOKC5I4INzFCab3WEmw==" + ], + "Content-Length": [ + "1" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "7652751c-5fa1-11e9-a17f-44032c851686" + ], + "x-ms-date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:9iUtpOnjX8gA3hKSUUjeLK59vrgOg7oQ6+ud13jhSmI=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Mon, 15 Apr 2019 17:11:08 GMT" + ], + "Last-Modified": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Content-Length": [ + "0" + ], + "ETag": [ + "\"0x8D6C1C55A86FF35\"" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "xMpCOKC5I4INzFCab3WEmw==" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MzQ2MzQ2LCJuYmYiOjE1NTUzNDYzNDYsImV4cCI6MTU1NTM1MDI0NiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBRzZjTkw2eUIrcm9ycWpodUxDdW0xVURKeWROVlRRWFRQZWdReFg1b3B1Uy9JR0RLTkV2TWpwYVBKYzN1b2x6TVN5T1U4TTlpTExRWXhIU2NlWmJZRWc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJmYU5TbGNnUS1VV2FubW10YTlSZkFBIiwidmVyIjoiMS4wIn0.BR5vnGyMeYLi8DbnZF7nSZxkn-n9ixD0E1-n6Kp2Mv3GFlDZzfPwxvrhXqZezuzbcKIle36r2HQGbudCwDZS9DnRGPudNG3YVv_75j_rHYZ4o-PXTfSwX9xNBqQ8fxSEGTyUc8stB0DC1Vh1QNVLYuYBaWGMwL90YYQ_Hf2bIO7MFl1QHF62UxH6E_lvLScjZpf_qQA6WoylMbks49bua375-aa3nBI22nz8octpLTVELHwZIgHXum2ib7P_k3YCOARpDWycajUCTF36KbtN2N4ohnXc1F-G6ghzShdcTicwheod84Zb95SEdeCXDuJP4iaz1PNqrS0owjW8w7Rxjw" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "7676516e-5fa1-11e9-830e-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Last-Modified": [ + "Wed, 27 Mar 2019 18:16:27 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "\"0x8D6B2E053F1292B\"" + ], + "Vary": [ + "Accept-Encoding" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "content-length": [ + "674" + ] + }, + "body": { + "string": "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MzQ2MzQ2LCJuYmYiOjE1NTUzNDYzNDYsImV4cCI6MTU1NTM1MDI0NiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBRzZjTkw2eUIrcm9ycWpodUxDdW0xVURKeWROVlRRWFRQZWdReFg1b3B1Uy9JR0RLTkV2TWpwYVBKYzN1b2x6TVN5T1U4TTlpTExRWXhIU2NlWmJZRWc9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjI1MSIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJmYU5TbGNnUS1VV2FubW10YTlSZkFBIiwidmVyIjoiMS4wIn0.BR5vnGyMeYLi8DbnZF7nSZxkn-n9ixD0E1-n6Kp2Mv3GFlDZzfPwxvrhXqZezuzbcKIle36r2HQGbudCwDZS9DnRGPudNG3YVv_75j_rHYZ4o-PXTfSwX9xNBqQ8fxSEGTyUc8stB0DC1Vh1QNVLYuYBaWGMwL90YYQ_Hf2bIO7MFl1QHF62UxH6E_lvLScjZpf_qQA6WoylMbks49bua375-aa3nBI22nz8octpLTVELHwZIgHXum2ib7P_k3YCOARpDWycajUCTF36KbtN2N4ohnXc1F-G6ghzShdcTicwheod84Zb95SEdeCXDuJP4iaz1PNqrS0owjW8w7Rxjw" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "76b334a2-5fa1-11e9-baa0-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Type": [ + "application/json" + ], + "Date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Vary": [ + "Accept-Encoding" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "76f8db98-5fa1-11e9-94f7-44032c851686" + ], + "x-ms-date": [ + "Mon, 15 Apr 2019 17:11:10 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:bcaYxtOUeiL4OR/K0kB6RAPlo9ZOm+JA2aenUZdKRyk=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "Date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Content-Type": [ + "application/xml" + ], + "Content-Length": [ + "230" + ], + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:878293a2-901e-0069-11ae-f33bac000000\nTime:2019-04-15T17:11:10.3517469Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/test/data/foo.txt?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "77192306-5fa1-11e9-a98b-44032c851686" + ], + "x-ms-date": [ + "Mon, 15 Apr 2019 17:11:10 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:RQxatY9kpHsJCBPw6m46DiPyQbKcURnLp/FIp8ywCLc=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "Date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Content-Type": [ + "application/xml" + ], + "Content-Length": [ + "215" + ], + "x-ms-error-code": [ + "BlobNotFound" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:878293aa-901e-0069-16ae-f33bac000000\nTime:2019-04-15T17:11:10.4147901Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-cli-batch-extensions-live-tests/test/data/foo.txt", + "body": "1", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2560813" + ], + "Content-MD5": [ + "xMpCOKC5I4INzFCab3WEmw==" + ], + "Content-Length": [ + "1" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "7722acb0-5fa1-11e9-8254-44032c851686" + ], + "x-ms-date": [ + "Mon, 15 Apr 2019 17:11:10 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:pb+l2X37lmPnUeVCdjyYYjOZzFdwg8NSK2XyBQHEHxk=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Mon, 15 Apr 2019 17:11:09 GMT" + ], + "Last-Modified": [ + "Mon, 15 Apr 2019 17:11:10 GMT" + ], + "Content-Length": [ + "0" + ], + "ETag": [ + "\"0x8D6C1C55B560D4F\"" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "xMpCOKC5I4INzFCab3WEmw==" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ] + }, + "body": { + "string": "" + } + } + } + ] +} \ No newline at end of file From 6dcd42eba2a98c55352ab967348309deb9b3de0f Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Mon, 15 Apr 2019 10:52:57 -0700 Subject: [PATCH 07/13] Weird failures only on jenkins. try updating setup --- azext/batch/operations/job_operations.py | 2 +- batch-cli-extensions/azext_batch/custom.py | 7 +- .../test_batch_extensions_live.yaml | 5519 +++++++++++------ 3 files changed, 3624 insertions(+), 1904 deletions(-) diff --git a/azext/batch/operations/job_operations.py b/azext/batch/operations/job_operations.py index 3acde8e6..b48e8c95 100644 --- a/azext/batch/operations/job_operations.py +++ b/azext/batch/operations/job_operations.py @@ -336,7 +336,7 @@ def _add(self, job, job_add_options, custom_headers, raw, threads) except Exception as e: # If task submission raises, we roll back the job - self.delete(job.id) + # self.delete(job.id) raise e if auto_complete: # If the option to terminate the job was set, we need to reapply it with a patch diff --git a/batch-cli-extensions/azext_batch/custom.py b/batch-cli-extensions/azext_batch/custom.py index 8e4c70e4..521f771d 100644 --- a/batch-cli-extensions/azext_batch/custom.py +++ b/batch-cli-extensions/azext_batch/custom.py @@ -2,6 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +import json import multiprocessing from azure.cli.core.util import get_file_json from knack.log import get_logger @@ -42,8 +43,6 @@ def create_pool(client, template=None, parameters=None, json_file=None, id=None, parameters[error.parameter_name] = prompt(param_prompt) except TypeError as error: raise ValueError(str(error)) - else: - json_obj = json_obj.get('properties', json_obj) else: json_obj = get_file_json(json_file) # validate the json file @@ -133,11 +132,8 @@ def create_job(client, template=None, parameters=None, json_file=None, id=None, parameters[error.parameter_name] = prompt(param_prompt) except TypeError as error: raise ValueError(str(error)) - else: - json_obj = json_obj.get('properties', json_obj) else: json_obj = get_file_json(json_file) - # validate the json file try: job = ExtendedJobOperations.jobparameter_from_json(json_obj) except NotImplementedError: @@ -173,7 +169,6 @@ def create_job(client, template=None, parameters=None, json_file=None, id=None, except CreateTasksErrorException as e: for error in e.failures: logger.warning(error.task_id + " failed to be added due to " + error.error.code) - create_job.__doc__ = JobAddParameter.__doc__ + "\n" + JobConstraints.__doc__ diff --git a/tests/recordings/test_batch_extensions_live.yaml b/tests/recordings/test_batch_extensions_live.yaml index d05653c0..8f78cb30 100644 --- a/tests/recordings/test_batch_extensions_live.yaml +++ b/tests/recordings/test_batch_extensions_live.yaml @@ -17,13 +17,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "d7d9465c-5d41-11e9-9af8-44032c851686" + "07084228-6069-11e9-a20e-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:38 GMT" + "Tue, 16 Apr 2019 16:59:41 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:rysgN/77J6D+BM93johhpukd6f81eWOS14wMF9BlkQU=" + "SharedKey sdkteststore2:ECeS7aGwNivA4lc+cqzYQ7EgoapqkS+CHa4/K51S1Ho=" ] } }, @@ -34,7 +34,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:38 GMT" + "Tue, 16 Apr 2019 16:59:41 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -42,11 +42,11 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { @@ -73,16 +73,16 @@ "keep-alive" ], "client-request-id": [ - "d80058e2-5d41-11e9-bfc4-44032c851686" + "072d289c-6069-11e9-a873-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:38 GMT" + "Tue, 16 Apr 2019 16:59:41 GMT" ], "Authorization": [ - "SharedKey sdktest2:rwl9a4GsFz0d2Ya94O96pPUcJV8AFax6ydxtZOllg8U=" + "SharedKey sdktest2:ni4ERAgc4ZvbHv47G2jv5S/ko8/N8sbFAyAVE80vBmo=" ] } }, @@ -92,8 +92,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "d55ee831-6b9e-4d04-bbb7-3d66b90bb6ca" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:42 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -104,17 +107,14 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "7cede8b6-adc9-44b6-ab9e-286ffc454160" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -144,7 +144,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "d83437e4-5d41-11e9-9fb8-44032c851686" + "075ef1d4-6069-11e9-a5da-44032c851686" ], "accept-language": [ "en-US" @@ -153,10 +153,10 @@ "250" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:42 GMT" ], "Authorization": [ - "SharedKey sdktest2:P8EPo4vCo7HIDa+S7wNRZd/ZdkxcFo6CY69IBetISq4=" + "SharedKey sdktest2:TTES2jc8yPU25sTRp64sns8FVwq80rH7nSKpB3Hn+1g=" ] } }, @@ -166,33 +166,33 @@ "message": "The specified pool already exists." }, "headers": { + "request-id": [ + "56cac341-b69e-411b-9eb8-967c12338e95" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:42 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Content-Length": [ - "334" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "Content-Length": [ + "334" + ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "749a04d3-fcea-45a2-9e38-5c7a9c967bec" - ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:749a04d3-fcea-45a2-9e38-5c7a9c967bec\\nTime:2019-04-12T16:41:39.4451825Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:56cac341-b69e-411b-9eb8-967c12338e95\\nTime:2019-04-16T16:59:42.8000949Z\"\r\n }\r\n}" } } }, @@ -215,16 +215,16 @@ "keep-alive" ], "client-request-id": [ - "d85acf5c-5d41-11e9-af09-44032c851686" + "07b1974c-6069-11e9-98a6-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:42 GMT" ], "Authorization": [ - "SharedKey sdktest2:+jgDWttfEBnD9r48LirRjEpOIQqilvUC9xtBKYe1PFA=" + "SharedKey sdktest2:HAdyqPUgWFOn6ZJ+fOA3FllrLf7rXwb98SSJpmeIxTk=" ] } }, @@ -234,11 +234,11 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BE9AA8647AC8" + "request-id": [ + "ff052005-c92e-497c-8c33-add18ebd1930" ], "Date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:42 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -246,23 +246,23 @@ "Last-Modified": [ "Thu, 11 Apr 2019 16:27:57 GMT" ], + "ETag": [ + "0x8D6BE9AA8647AC8" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "30aa9194-c1c0-41fd-9e33-2d57d248fdc9" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -289,16 +289,16 @@ "keep-alive" ], "client-request-id": [ - "d8785536-5d41-11e9-a0a6-44032c851686" + "07cee1a2-6069-11e9-bc22-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:43 GMT" ], "Authorization": [ - "SharedKey sdktest2:mcOh/i8+0lsv8UuV/52vJisjtpWtslO6U2j9Pd4w8P4=" + "SharedKey sdktest2:3o2GVwwkREZt1WHPPTj9I1Nrw7fh6mWdM4JjTb1hDCQ=" ] } }, @@ -308,8 +308,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "952e8fdd-34d6-4f41-b58d-5548d9e5c87b" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:39 GMT" + "Tue, 16 Apr 2019 16:59:42 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -320,21 +323,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "1f0d5092-083f-4212-890c-9edde30aa71f" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-11T22:47:00.759112Z\",\"lastBootTime\":\"2019-04-11T16:29:33.768155Z\",\"allocationTime\":\"2019-04-11T16:29:28.5342891Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":11,\"totalTasksSucceeded\":11,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-11T22:47:00.08103Z\",\"endTime\":\"2019-04-11T22:47:00.691515Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.133.72\",\"publicFQDN\":\"dns261303a6-1e9f-4018-b14e-9a2c6a86867b-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T16:29:33.768155Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-12T16:41:59.119403Z\",\"lastBootTime\":\"2019-04-11T16:29:33.768155Z\",\"allocationTime\":\"2019-04-11T16:29:28.5342891Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":13,\"totalTasksSucceeded\":13,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:58.580311Z\",\"endTime\":\"2019-04-12T16:41:59.094704Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.133.72\",\"publicFQDN\":\"dns261303a6-1e9f-4018-b14e-9a2c6a86867b-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T16:29:33.768155Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -357,13 +357,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "d8ecde70-5d41-11e9-ae64-44032c851686" + "082c5734-6069-11e9-b638-44032c851686" ], "accept-language": [ "en-US" @@ -382,23 +382,26 @@ "message": "Created" }, "headers": { - "ETag": [ - "0x8D6BF65BD897784" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "request-id": [ + "8cc1150e-076c-4272-8edd-69eae7833668" ], "Date": [ - "Fri, 12 Apr 2019 16:41:40 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Tue, 16 Apr 2019 16:59:45 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:41 GMT" + "Tue, 16 Apr 2019 16:59:45 GMT" + ], + "ETag": [ + "0x8D6C28CED669867" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -406,9 +409,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "2c307b8d-63f4-4e26-8f4d-c91cae9b5b5f" - ], "Transfer-Encoding": [ "chunked" ], @@ -425,7 +425,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -440,13 +440,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "d966553e-5d41-11e9-863e-44032c851686" + "093922fa-6069-11e9-8dc0-44032c851686" ], "accept-language": [ "en-US" @@ -462,8 +462,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "aa7c2c60-1836-4667-b23f-22f3ef3833a9" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:42 GMT" + "Tue, 16 Apr 2019 16:59:45 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -474,21 +477,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "23084545-42e6-49ab-b892-4e68f411f703" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6C28CEDC3295B\",\"lastModified\":\"2019-04-16T16:59:45.9704155Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, @@ -511,16 +511,16 @@ "keep-alive" ], "client-request-id": [ - "d9e55664-5d41-11e9-bc52-44032c851686" + "09a052ac-6069-11e9-958a-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:42 GMT" + "Tue, 16 Apr 2019 16:59:46 GMT" ], "Authorization": [ - "SharedKey sdktest2:v7sDas95XVlSo/jQntNdSxr3pdhbUaDOckrEQTGSmCI=" + "SharedKey sdktest2:kWQEng53bynMBkwOFiTuF4EFKcchHlaKVJ2N2wyB2TA=" ] } }, @@ -530,17 +530,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65BD897784" + "request-id": [ + "6b00f64c-9ae0-430f-bc47-d99b1628dbb9" ], "Date": [ - "Fri, 12 Apr 2019 16:41:42 GMT" + "Tue, 16 Apr 2019 16:59:46 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:41 GMT" + "Tue, 16 Apr 2019 16:59:45 GMT" + ], + "ETag": [ + "0x8D6C28CED669867" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -548,21 +551,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "874144dc-3d3d-4536-9862-ab7118915cc9" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6BF65BD897784\",\"lastModified\":\"2019-04-12T16:41:41.2008836Z\",\"creationTime\":\"2019-04-12T16:41:41.1808843Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:41.2008836Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:41.2008836Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404\",\"eTag\":\"0x8D6C28CED669867\",\"lastModified\":\"2019-04-16T16:59:45.3637735Z\",\"creationTime\":\"2019-04-16T16:59:45.3207717Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T16:59:45.3637735Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:45.3637735Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, @@ -585,16 +585,16 @@ "keep-alive" ], "client-request-id": [ - "da003068-5d41-11e9-a35b-44032c851686" + "09c1925c-6069-11e9-9247-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:42 GMT" + "Tue, 16 Apr 2019 16:59:46 GMT" ], "Authorization": [ - "SharedKey sdktest2:GLcGSVtNXYlIMhtjeMN1l1OKqN2vbuodEzhYmprfhLc=" + "SharedKey sdktest2:3500Mf5+TDHfTxxVRYxt8S9+y4d2RcOmC9G1MBhIQg4=" ] } }, @@ -604,8 +604,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "eba553bc-10b2-4b3b-9b85-742002d089d2" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:42 GMT" + "Tue, 16 Apr 2019 16:59:46 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -616,21 +619,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "59ff2bf9-33ce-4cac-b62c-c0091b665c1d" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"creationTime\":\"2019-04-12T16:41:41.9963066Z\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:41.9963066Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6C28CEDC3295B\",\"creationTime\":\"2019-04-16T16:59:45.9704155Z\",\"lastModified\":\"2019-04-16T16:59:45.9704155Z\",\"state\":\"running\",\"stateTransitionTime\":\"2019-04-16T16:59:46.392002Z\",\"previousState\":\"active\",\"previousStateTransitionTime\":\"2019-04-16T16:59:46.288467Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:46.392002Z\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -653,16 +653,16 @@ "keep-alive" ], "client-request-id": [ - "dbef028c-5d41-11e9-8e70-44032c851686" + "0bb568a8-6069-11e9-a838-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:45 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Authorization": [ - "SharedKey sdktest2:PI65uZWVfcUVTyDJOvxvyuiocMP4BhN6NBMPKrcTSr0=" + "SharedKey sdktest2:5dE/oX94bI8L9d4jycBQicgTUjoLdobbaHP/dYb+8NE=" ] } }, @@ -672,8 +672,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "0ffe01de-eeeb-4981-b5a8-c98cb6523323" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:45 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -684,21 +687,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "16257df7-d2f8-4d17-8a4a-546418355992" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"creationTime\":\"2019-04-12T16:41:41.9963066Z\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:44.191546Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:43.626215Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:43.626215Z\",\"endTime\":\"2019-04-12T16:41:44.191546Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6C28CEDC3295B\",\"creationTime\":\"2019-04-16T16:59:45.9704155Z\",\"lastModified\":\"2019-04-16T16:59:45.9704155Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T16:59:46.97694Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T16:59:46.392002Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:46.392002Z\",\"endTime\":\"2019-04-16T16:59:46.97694Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -721,16 +721,16 @@ "keep-alive" ], "client-request-id": [ - "dc172106-5d41-11e9-8655-44032c851686" + "0bd31dde-6069-11e9-87c6-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:45 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Authorization": [ - "SharedKey sdktest2:tzSZuSxB0aQYeyHsY6wk1KJLwWS8K3Tjl1vt8EYGLyQ=" + "SharedKey sdktest2:vYekk7rPtC5J0jSNu+Nz0IO/Hh+rMaLXNltzGopIKng=" ] } }, @@ -740,17 +740,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65BE02D6BA" + "request-id": [ + "0b8076e0-fd20-49cc-9316-199326e02dfe" ], "Date": [ - "Fri, 12 Apr 2019 16:41:45 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:41 GMT" + "Tue, 16 Apr 2019 16:59:45 GMT" + ], + "ETag": [ + "0x8D6C28CEDC3295B" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -758,21 +761,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "68b136bd-ff32-470f-bb6e-94820524bef5" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6BF65BE02D6BA\",\"creationTime\":\"2019-04-12T16:41:41.9963066Z\",\"lastModified\":\"2019-04-12T16:41:41.9963066Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:44.191546Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:43.626215Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:43.626215Z\",\"endTime\":\"2019-04-12T16:41:44.191546Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"eTag\":\"0x8D6C28CEDC3295B\",\"creationTime\":\"2019-04-16T16:59:45.9704155Z\",\"lastModified\":\"2019-04-16T16:59:45.9704155Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T16:59:46.97694Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T16:59:46.392002Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:46.392002Z\",\"endTime\":\"2019-04-16T16:59:46.97694Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404/job-1/myTask\"\r\n }\r\n}" } } }, @@ -792,13 +792,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "dc3eb790-5d41-11e9-b9ed-44032c851686" + "0bf8ccca-6069-11e9-9205-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:2Jm+AXZ8oOnFObYjeeLn/B7z9GX/jVSNoEcB3Q0wN+A=" + "SharedKey sdkteststore2:6QHVnd9YFTWz2fKzxPIM6PXCOGfW/7U8cri/dvcK9Ws=" ] } }, @@ -809,7 +809,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:45 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -817,15 +817,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4BFDEB0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF480598394application/octet-streamJobAkBkm0zKfjQosftvf9A==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF440D350application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4014DA5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE578B6E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE53E145394application/octet-streamGggMja7rXWOCl4TdCcRssw==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE4D506A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE49A63D5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -848,7 +848,7 @@ "keep-alive" ], "client-request-id": [ - "dc4be534-5d41-11e9-b509-44032c851686" + "0c03e694-6069-11e9-b548-44032c851686" ], "accept-language": [ "en-US" @@ -857,10 +857,10 @@ "0" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdktest2:wR4+5Lrcgqwe9K20ZNMm8h9b9y4gEGWzB96VuDNtU0U=" + "SharedKey sdktest2:9tChqRvrtPad/rLHFbfJT6m3biaL6RaB5NvsloNWIIc=" ] } }, @@ -870,8 +870,11 @@ "message": "Accepted" }, "headers": { + "request-id": [ + "a78593a1-1148-42ad-b3bd-9f10d1bba4ff" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -882,9 +885,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "62739e38-7de0-45e4-a8d8-7e28d8b6855b" - ], "Transfer-Encoding": [ "chunked" ], @@ -913,13 +913,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "dc6a247a-5d41-11e9-ab47-44032c851686" + "0c1d8002-6069-11e9-8bad-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:SZ7SF+89ivGWN3c7xXQHsUfFJgD9EU9mqDCtwPKwXXI=" + "SharedKey sdkteststore2:hGx5AJDTqvPL/Yz1r4HxctFM9RWGjda4k1VzJ9nNG/w=" ] } }, @@ -930,7 +930,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:45 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -938,15 +938,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4BFDEB0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF480598394application/octet-streamJobAkBkm0zKfjQosftvf9A==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF440D350application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:44 GMT0x8D6BF65BF4014DA5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE578B6E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE53E145394application/octet-streamGggMja7rXWOCl4TdCcRssw==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE4D506A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 16 Apr 2019 16:59:46 GMT0x8D6C28CEE49A63D5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -966,13 +966,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "dc779fc2-5d41-11e9-82b0-44032c851686" + "0c27c888-6069-11e9-83fc-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:yyHzNGVykwXa5VYPJrX9uHUdtPi7DwYIoWwaeCjJyKA=" + "SharedKey sdkteststore2:5ntM1nEWROW1UteHs2stB/JYyYIQDjR4ntFxFiZBVoA=" ], "Content-Length": [ "0" @@ -986,19 +986,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1022,13 +1022,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "dc7fbe62-5d41-11e9-8969-44032c851686" + "0c2e468c-6069-11e9-a7ec-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:orctfL1nQMjDIi/lRJ2K3Y1P54LIe6Bc6utPKDBy3Sk=" + "SharedKey sdkteststore2:n7BQSU+vBMXtYNs/s+de9V+0Wb+z5x3C0q0tuUYWsi0=" ], "Content-Length": [ "0" @@ -1042,19 +1042,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1078,13 +1078,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "dc8767ca-5d41-11e9-88c9-44032c851686" + "0c36c21e-6069-11e9-a10d-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:h0pwoS3oPcF2TKkMlNSV8Kfc1A96BNUJKRwsuWCkqgY=" + "SharedKey sdkteststore2:tc+dIScNM4V8R4xDSi3S+ptd3IP3TUAA7KtF3NxVaRU=" ], "Content-Length": [ "0" @@ -1098,19 +1098,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1134,13 +1134,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "dc906864-5d41-11e9-adee-44032c851686" + "0c3d9fcc-6069-11e9-a3fc-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:wXdb5CdNwE87E+S8gktaG32PvA35N1MpwSixaDNYz9g=" + "SharedKey sdkteststore2:ZuBTEl12W8PQVZ9n6WUkjDlH+03TNXRrdAAFAzAMKJo=" ], "Content-Length": [ "0" @@ -1154,19 +1154,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:49 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -1193,16 +1193,16 @@ "keep-alive" ], "client-request-id": [ - "dc972c80-5d41-11e9-ab4a-44032c851686" + "0c44c5cc-6069-11e9-b8d7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdktest2:oF+kqiNI+ciM6Ew7tSU7yZuXId7Dw/Y5ooN3Le5qvtQ=" + "SharedKey sdktest2:NzpAGkkwj9GbWO43nWM6hR7MVgCkOtgEutW7RNDbDCk=" ] } }, @@ -1212,8 +1212,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "9f0cce04-4206-4024-b267-eb0b669dd423" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -1224,17 +1227,14 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "37a3431e-6b27-4f14-aa76-b8681a3b6e83" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -1264,7 +1264,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "dcc0c6c2-5d41-11e9-b739-44032c851686" + "0c69028a-6069-11e9-b506-44032c851686" ], "accept-language": [ "en-US" @@ -1273,10 +1273,10 @@ "277" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdktest2:/ZfZFPp1CCayKWWiY0PeEjpxa3zEU+oVjI0eqp5MUkg=" + "SharedKey sdktest2:l9BKWdmEPHuUkieEH0KeyWWZFx2Hinf18OVT+SLOx0g=" ] } }, @@ -1286,33 +1286,33 @@ "message": "The specified pool already exists." }, "headers": { + "request-id": [ + "d20b9f84-01db-48ed-9039-76d6c3220d31" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:47 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Content-Length": [ - "334" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "Content-Length": [ + "334" + ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "d82efab5-85bd-424f-a54c-7989578e53e6" - ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:d82efab5-85bd-424f-a54c-7989578e53e6\\nTime:2019-04-12T16:41:47.0551859Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:d20b9f84-01db-48ed-9039-76d6c3220d31\\nTime:2019-04-16T16:59:50.8949967Z\"\r\n }\r\n}" } } }, @@ -1335,16 +1335,16 @@ "keep-alive" ], "client-request-id": [ - "dce2e6ca-5d41-11e9-befc-44032c851686" + "0c83feba-6069-11e9-af72-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:47 GMT" + "Tue, 16 Apr 2019 16:59:50 GMT" ], "Authorization": [ - "SharedKey sdktest2:/tmHqGtZ8l830r2rtDzDDOi4zaOroYaEAD7cvsAYfHo=" + "SharedKey sdktest2:xVbTyTlTcKTSRsP6oGVKfWSbg5UuvSiB2+4xnXBTC8o=" ] } }, @@ -1354,11 +1354,11 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BEC6908A7B31" + "request-id": [ + "1feed41b-b433-4930-8f0b-6294207ec6d9" ], "Date": [ - "Fri, 12 Apr 2019 16:41:47 GMT" + "Tue, 16 Apr 2019 16:59:51 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -1366,23 +1366,23 @@ "Last-Modified": [ "Thu, 11 Apr 2019 21:42:15 GMT" ], + "ETag": [ + "0x8D6BEC6908A7B31" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "42eff4f2-f09e-4d85-9895-d0c255d984a1" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -1409,16 +1409,16 @@ "keep-alive" ], "client-request-id": [ - "dcff242e-5d41-11e9-97c5-44032c851686" + "0ca6a7f0-6069-11e9-a687-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:47 GMT" + "Tue, 16 Apr 2019 16:59:51 GMT" ], "Authorization": [ - "SharedKey sdktest2:czi1AOuftj8lDzwA93nPpeIe9M+1GpxjTG91p8OTSms=" + "SharedKey sdktest2:8JJdU6cCZXqhM2/Oc1cK++ZmRSSA5II68Rbk1Fg7mo8=" ] } }, @@ -1428,8 +1428,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "b9d0ba5a-5116-4bd2-a119-16f68fce3bb7" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:46 GMT" + "Tue, 16 Apr 2019 16:59:51 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -1440,21 +1443,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "31f0bd3e-a6f1-4db9-b4ce-bd197c9a7308" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-11T22:48:14.891527Z\",\"lastBootTime\":\"2019-04-11T21:46:22.441758Z\",\"allocationTime\":\"2019-04-11T21:43:46.374784Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":11,\"totalTasksSucceeded\":11,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2-1\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-11T22:48:14.251003Z\",\"endTime\":\"2019-04-11T22:48:14.860227Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.130.79\",\"publicFQDN\":\"dnsaa36c1f8-10e2-4832-833d-8928b6d921bf-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T21:46:22.441758Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-14T04:16:02.599699Z\",\"lastBootTime\":\"2019-04-14T04:16:02.138001Z\",\"allocationTime\":\"2019-04-11T21:43:46.374784Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":13,\"totalTasksSucceeded\":13,\"runningTasksCount\":0,\"recentTasks\":[\r\n \r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.130.79\",\"publicFQDN\":\"dnsaa36c1f8-10e2-4832-833d-8928b6d921bf-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T21:46:22.441758Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -1477,13 +1477,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "dd399100-5d41-11e9-8e58-44032c851686" + "0ce0030c-6069-11e9-aa14-44032c851686" ], "accept-language": [ "en-US" @@ -1502,23 +1502,26 @@ "message": "Created" }, "headers": { - "ETag": [ - "0x8D6BF65C1F5EF26" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "request-id": [ + "dfef540e-28c3-4013-867c-b5c2e587539a" ], "Date": [ - "Fri, 12 Apr 2019 16:41:48 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Tue, 16 Apr 2019 16:59:51 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:48 GMT" + "Tue, 16 Apr 2019 16:59:51 GMT" + ], + "ETag": [ + "0x8D6C28CF14FB9E3" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1526,9 +1529,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "e206f748-37ad-44fe-a2e6-d696c58a57d9" - ], "Transfer-Encoding": [ "chunked" ], @@ -1545,7 +1545,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -1560,13 +1560,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "ddd2b0e2-5d41-11e9-9047-44032c851686" + "0d217cb4-6069-11e9-893f-44032c851686" ], "accept-language": [ "en-US" @@ -1582,8 +1582,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "5ecdf75e-f1c6-470e-8a5e-40618c96e5cf" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:49 GMT" + "Tue, 16 Apr 2019 16:59:52 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -1594,21 +1597,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "84318aba-c68f-42d4-8862-21a48360e625" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6C28CF1A750DE\",\"lastModified\":\"2019-04-16T16:59:52.4988126Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, @@ -1631,16 +1631,16 @@ "keep-alive" ], "client-request-id": [ - "de0cbf7e-5d41-11e9-afe6-44032c851686" + "0d7a19b0-6069-11e9-8e27-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:49 GMT" + "Tue, 16 Apr 2019 16:59:52 GMT" ], "Authorization": [ - "SharedKey sdktest2:790EK4wML8vs0ZwanFJisvBSTNIwUpVvP6fd/HsKWWA=" + "SharedKey sdktest2:zrYmMu0yPG49wCydqz4Gg4OLLmjYvaWPfCcFGNu8Nh8=" ] } }, @@ -1650,17 +1650,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65C1F5EF26" + "request-id": [ + "94ee6827-c105-41a0-9b0b-a4c832e16102" ], "Date": [ - "Fri, 12 Apr 2019 16:41:48 GMT" + "Tue, 16 Apr 2019 16:59:51 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:48 GMT" + "Tue, 16 Apr 2019 16:59:51 GMT" + ], + "ETag": [ + "0x8D6C28CF14FB9E3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1668,21 +1671,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "fa9dc011-d294-4d75-871a-505289b4d6e9" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" - ] + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6BF65C1F5EF26\",\"lastModified\":\"2019-04-12T16:41:48.6226214Z\",\"creationTime\":\"2019-04-12T16:41:48.6085962Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:48.6226214Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.6226214Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2\",\"eTag\":\"0x8D6C28CF14FB9E3\",\"lastModified\":\"2019-04-16T16:59:51.9247843Z\",\"creationTime\":\"2019-04-16T16:59:51.9107844Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T16:59:51.9247843Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:51.9247843Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, @@ -1705,16 +1705,16 @@ "keep-alive" ], "client-request-id": [ - "de2b803a-5d41-11e9-ae95-44032c851686" + "0d99aa6c-6069-11e9-8cb6-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:49 GMT" + "Tue, 16 Apr 2019 16:59:52 GMT" ], "Authorization": [ - "SharedKey sdktest2:tJRbHAZWjU3iYT2KRNFWYAEEhx+/nNqnezcD4hGea7w=" + "SharedKey sdktest2:SjP6EhWHRAWKWQFm3YWv+tTKO8824ums23PrTJaOP58=" ] } }, @@ -1724,8 +1724,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "b2b1f0ea-7f29-455d-94e4-e769dc288882" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:49 GMT" + "Tue, 16 Apr 2019 16:59:52 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -1736,21 +1739,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "d886b19a-ca39-40d3-a601-c422ba491f0d" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"creationTime\":\"2019-04-12T16:41:48.9730117Z\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:48.9730117Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6C28CF1A750DE\",\"creationTime\":\"2019-04-16T16:59:52.4988126Z\",\"lastModified\":\"2019-04-16T16:59:52.4988126Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T16:59:52.4988126Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -1773,16 +1773,16 @@ "keep-alive" ], "client-request-id": [ - "e01c6894-5d41-11e9-aef1-44032c851686" + "0f89ea40-6069-11e9-aa98-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:52 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Authorization": [ - "SharedKey sdktest2:7dx2k1ko/ZzsqSW8sf8dPkuC883AHrpXbakYpEof8+w=" + "SharedKey sdktest2:9KWeWqePf4L8WssOhhJzDmb2auSNw02ejdJs4JhjGOM=" ] } }, @@ -1792,8 +1792,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "5da86d23-825f-43df-a514-8df4d73ec21d" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:52 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -1804,21 +1807,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "be2f92d3-dbad-44f0-8673-c3afdcf007be" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"creationTime\":\"2019-04-12T16:41:48.9730117Z\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:49.027714Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:48.496467Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.496467Z\",\"endTime\":\"2019-04-12T16:41:49.027714Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6C28CF1A750DE\",\"creationTime\":\"2019-04-16T16:59:52.4988126Z\",\"lastModified\":\"2019-04-16T16:59:52.4988126Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T16:59:54.260711Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T16:59:53.42727Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:53.42727Z\",\"endTime\":\"2019-04-16T16:59:54.260711Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -1841,16 +1841,16 @@ "keep-alive" ], "client-request-id": [ - "e0439792-5d41-11e9-a18e-44032c851686" + "0fb6d0a4-6069-11e9-beee-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:52 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Authorization": [ - "SharedKey sdktest2:8DxRKw06I4VXWeFtoJxJYy8R0A6hGbfQm0/N6RJ1PeM=" + "SharedKey sdktest2:f0pwrJw47yAaxs4Y4s2aLOz7JnWtrVb1kdn6ByEo6ho=" ] } }, @@ -1860,17 +1860,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65C22B6645" + "request-id": [ + "604ce25b-4a15-4a4f-a39a-a68d31f099aa" ], "Date": [ - "Fri, 12 Apr 2019 16:41:52 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:48 GMT" + "Tue, 16 Apr 2019 16:59:52 GMT" + ], + "ETag": [ + "0x8D6C28CF1A750DE" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1878,21 +1881,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "27ee051d-d524-4767-b82c-15f7112488af" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6BF65C22B6645\",\"creationTime\":\"2019-04-12T16:41:48.9730117Z\",\"lastModified\":\"2019-04-12T16:41:48.9730117Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:49.027714Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:48.496467Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-12T16%3A41%3A38Z&se=2019-04-13T16%3A41%3A38Z&sp=rw&sv=2017-07-29&sr=c&sig=owv8tM0rsJyeSZ3wZZmIdG9etqts6vauxbNJhOzGceM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.496467Z\",\"endTime\":\"2019-04-12T16:41:49.027714Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"eTag\":\"0x8D6C28CF1A750DE\",\"creationTime\":\"2019-04-16T16:59:52.4988126Z\",\"lastModified\":\"2019-04-16T16:59:52.4988126Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T16:59:54.260711Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T16:59:53.42727Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/aaatestcontainer?st=2019-04-16T16%3A59%3A41Z&se=2019-04-17T16%3A59%3A41Z&sp=rw&sv=2017-07-29&sr=c&sig=NsxYdo0XH3tq4GvmTMz7qmqNk9rndnlJHiwtLEQX1iQ%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:53.42727Z\",\"endTime\":\"2019-04-16T16:59:54.260711Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2/job-1/myTask\"\r\n }\r\n}" } } }, @@ -1912,13 +1912,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e06d66c2-5d41-11e9-bb89-44032c851686" + "0fdf595a-6069-11e9-83d5-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kXtHR2jCnWz30NvpAlpQ81bkC5z9e65su80dLl4rBtU=" + "SharedKey sdkteststore2:VdUWEAyfD5ZnbPwo82TIRJYTLn/PBi7vhjpDylKGROA=" ] } }, @@ -1929,7 +1929,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:41:52 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -1937,15 +1937,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C342358A0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C343955F405application/octet-stream6kRbeqcPUstmz8pgwSF5mw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C3451C430application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:50 GMT0x8D6BF65C3467C154application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtTue, 16 Apr 2019 16:59:54 GMT0x8D6C28CF2C464B90application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 16 Apr 2019 16:59:54 GMT0x8D6C28CF2C5C488405application/octet-streamvU79b07bYhnAQo2k8l0smA==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 16 Apr 2019 16:59:54 GMT0x8D6C28CF2C6FD410application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 16 Apr 2019 16:59:54 GMT0x8D6C28CF2CA32254application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -1968,7 +1968,7 @@ "keep-alive" ], "client-request-id": [ - "e0791294-5d41-11e9-a7e0-44032c851686" + "0fe9aaa8-6069-11e9-acf9-44032c851686" ], "accept-language": [ "en-US" @@ -1977,10 +1977,10 @@ "0" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Authorization": [ - "SharedKey sdktest2:a3DW0bjEtCaucG0QLuSLAf+UoCJzjDgu803lQLiNwso=" + "SharedKey sdktest2:A/BzqqYAKHW3ixL6CuDvRJhf2ujgZ5NCxRvvZaKmz5A=" ] } }, @@ -1990,8 +1990,11 @@ "message": "Accepted" }, "headers": { + "request-id": [ + "8f037d50-57f1-45e3-a379-35b84d435d53" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2002,9 +2005,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "0994d3f5-c624-4381-93c7-7818320cf0aa" - ], "Transfer-Encoding": [ "chunked" ], @@ -2033,24 +2033,27 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e0966870-5d41-11e9-a473-44032c851686" + "1002ccc6-6069-11e9-91c2-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:XjbdH/nLBlJBVzFsHx0bChO2ZUckFzkCRV1q7Oe8Rs8=" + "SharedKey sdkteststore2:H6bYh02X+5AmlstdpjOIf4W881+oZMzK7WnyxmEpDTU=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified container does not exist." }, "headers": { + "x-ms-error-code": [ + "ContainerNotFound" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:52 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -2058,15 +2061,15 @@ "x-ms-version": [ "2017-07-29" ], + "Content-Length": [ + "225" + ], "Content-Type": [ "application/xml" - ], - "Transfer-Encoding": [ - "chunked" ] }, "body": { - "string": "\ufeff" + "string": "\ufeffContainerNotFoundThe specified container does not exist.\nRequestId:0148a497-801e-0032-1875-f43cd0000000\nTime:2019-04-16T16:59:56.7997968Z" } } }, @@ -2089,16 +2092,16 @@ "keep-alive" ], "client-request-id": [ - "e0a101a8-5d41-11e9-bde8-44032c851686" + "10097268-6069-11e9-a8ef-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:56 GMT" ], "Authorization": [ - "SharedKey sdktest2:11ApHMEsMT9IN8elNGmmDzdiF51pAZytGcpzbj8wR20=" + "SharedKey sdktest2:E2lkdk0lmf9Wy0sGJmU1aJjlZpjTZD0VYX4R5SSsXdE=" ] } }, @@ -2108,8 +2111,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "65608383-3c1d-4b93-92de-548c589142a5" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2120,17 +2126,14 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "bd3b6a86-1a8b-4bfd-bc3c-90dbf9a2b79f" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -2160,7 +2163,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "e0bd849e-5d41-11e9-bcc9-44032c851686" + "1029bef4-6069-11e9-b522-44032c851686" ], "accept-language": [ "en-US" @@ -2169,10 +2172,10 @@ "250" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Authorization": [ - "SharedKey sdktest2:gD4a38jca2f9zZ320S+jz9uPZalVnG01ZIl9d5q1GHA=" + "SharedKey sdktest2:VCczLUMHHG/fF1OYGxoAyctDCFQXHg8+ObhoLCqQq1A=" ] } }, @@ -2182,33 +2185,33 @@ "message": "The specified pool already exists." }, "headers": { + "request-id": [ + "9e8210b9-f75f-4e15-be9b-bbd55e5e714e" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:53 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Content-Length": [ - "334" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "Content-Length": [ + "334" + ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "a641b1b5-f8c2-445b-879c-c2c0dd735836" - ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:a641b1b5-f8c2-445b-879c-c2c0dd735836\\nTime:2019-04-12T16:41:53.9229151Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:9e8210b9-f75f-4e15-be9b-bbd55e5e714e\\nTime:2019-04-16T16:59:57.2460924Z\"\r\n }\r\n}" } } }, @@ -2231,16 +2234,16 @@ "keep-alive" ], "client-request-id": [ - "e0faab10-5d41-11e9-ae85-44032c851686" + "104e249a-6069-11e9-8302-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:54 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Authorization": [ - "SharedKey sdktest2:zTZLvn0zf1Bp+smBLBW4nYhHY0eKGo0bj9DSBRC8hAk=" + "SharedKey sdktest2:WQDkTYvfE/kdWWjaTUmOaUM4WgXYAeX5QFNFsCs0LwY=" ] } }, @@ -2250,11 +2253,11 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BE9AA8647AC8" + "request-id": [ + "09c3afad-3f29-460d-b592-6f8578f5f541" ], "Date": [ - "Fri, 12 Apr 2019 16:41:54 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2262,23 +2265,23 @@ "Last-Modified": [ "Thu, 11 Apr 2019 16:27:57 GMT" ], + "ETag": [ + "0x8D6BE9AA8647AC8" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "b2f3d5c5-ce0e-4d49-bd5c-afea32843ee0" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -2305,16 +2308,16 @@ "keep-alive" ], "client-request-id": [ - "e1155e98-5d41-11e9-a810-44032c851686" + "106aebcc-6069-11e9-bd80-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:54 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Authorization": [ - "SharedKey sdktest2:pFnAU2Fd+tTVcg2fb6/WKOIjZQqkELmQ6eXD18Flqig=" + "SharedKey sdktest2:jU/6izW06CxyT5o7sQYKJU5KNk8zCTWTUEPuVSv1bZQ=" ] } }, @@ -2324,8 +2327,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "49764cac-75ec-4d06-a140-124879624bba" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:55 GMT" + "Tue, 16 Apr 2019 16:59:57 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2336,21 +2342,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "3f8d6f4d-bff7-496e-8f68-abb648ce916c" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-12T16:41:44.221103Z\",\"lastBootTime\":\"2019-04-11T16:29:33.768155Z\",\"allocationTime\":\"2019-04-11T16:29:28.5342891Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":12,\"totalTasksSucceeded\":12,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:43.626215Z\",\"endTime\":\"2019-04-12T16:41:44.191546Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.133.72\",\"publicFQDN\":\"dns261303a6-1e9f-4018-b14e-9a2c6a86867b-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T16:29:33.768155Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-16T16:59:47.003648Z\",\"lastBootTime\":\"2019-04-11T16:29:33.768155Z\",\"allocationTime\":\"2019-04-11T16:29:28.5342891Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":14,\"totalTasksSucceeded\":14,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404/tasks/myTask\",\"jobId\":\"ncj-ubuntu1404\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:46.392002Z\",\"endTime\":\"2019-04-16T16:59:46.97694Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.133.72\",\"publicFQDN\":\"dns261303a6-1e9f-4018-b14e-9a2c6a86867b-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":22\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T16:29:33.768155Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -2373,13 +2376,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "e1d1bd38-5d41-11e9-bbb4-44032c851686" + "10adf280-6069-11e9-b21e-44032c851686" ], "accept-language": [ "en-US" @@ -2392,27 +2395,24 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" - ], "Date": [ - "Fri, 12 Apr 2019 16:41:55 GMT" + "Tue, 16 Apr 2019 16:59:58 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], "Cache-Control": [ "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], "Vary": [ "Accept-Encoding" ], @@ -2422,6 +2422,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "Content-Type": [ + "application/json; charset=utf-8" + ], "content-length": [ "686" ] @@ -2450,13 +2453,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "e2326af6-5d41-11e9-a24e-44032c851686" + "11ca6aa4-6069-11e9-81fc-44032c851686" ], "accept-language": [ "en-US" @@ -2472,30 +2475,24 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" - ], "Date": [ - "Fri, 12 Apr 2019 16:41:55 GMT" + "Tue, 16 Apr 2019 16:59:59 GMT" ], "Server": [ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ + "Expires": [ + "-1" + ], + "Pragma": [ "no-cache" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json" - ], - "Expires": [ - "-1" - ], "Vary": [ "Accept-Encoding" ], @@ -2505,6 +2502,12 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Content-Type": [ + "application/json" + ], "content-length": [ "288" ] @@ -2530,13 +2533,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e2525338-5d41-11e9-8954-44032c851686" + "11e931b4-6069-11e9-b3f2-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:41:56 GMT" + "Tue, 16 Apr 2019 16:59:59 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:b0IWGyjFFz47Fb177sH1PEMrHhc4IIa5HJ+8nVNId1U=" + "SharedKey sdkteststore2:T8FYPYGyKreyoItqjSRKj2hU3/lbm4g59v4aCZIFqJk=" ], "Content-Length": [ "0" @@ -2545,31 +2548,31 @@ }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 201, + "message": "Created" }, "headers": { - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], "Date": [ - "Fri, 12 Apr 2019 16:41:55 GMT" + "Tue, 16 Apr 2019 16:59:59 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:00:00 GMT" + ], + "ETag": [ + "\"0x8D6C28CF632596D\"" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ - "230" - ], - "Content-Type": [ - "application/xml" + "0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:07b8b58f-a01e-0043-3c4e-f14ee9000000\nTime:2019-04-12T16:41:56.3595090Z" + "string": "" } } }, @@ -2592,13 +2595,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "e26f004a-5d41-11e9-9cd6-44032c851686" + "12049d0a-6069-11e9-8553-44032c851686" ], "accept-language": [ "en-US" @@ -2617,23 +2620,26 @@ "message": "Created" }, "headers": { - "ETag": [ - "0x8D6BF65C6B4ED32" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "request-id": [ + "f6cecb4f-9da5-4bc0-817a-157c155c5724" ], "Date": [ - "Fri, 12 Apr 2019 16:41:56 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Tue, 16 Apr 2019 17:00:00 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:56 GMT" + "Tue, 16 Apr 2019 17:00:00 GMT" + ], + "ETag": [ + "0x8D6C28CF692D2DF" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2641,9 +2647,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "317e4a9c-9e25-4bdf-98b9-7bea068fa1da" - ], "Transfer-Encoding": [ "chunked" ], @@ -2660,7 +2663,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"/bin/bash -c \\\"echo test\\\"\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A00Z&se=2019-04-23T17%3A00%3A00Z&sp=w&sv=2017-07-29&sr=c&sig=d6R%2B6FAJo8j%2Bc4LgaLjFheKbxGLZo0OyL4%2BPNuOtmjg%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -2675,19 +2678,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "e291c3ca-5d41-11e9-bbdf-44032c851686" + "12649bd0-6069-11e9-9e37-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "473" + "475" ] } }, @@ -2697,8 +2700,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "a633a437-d6d2-4a48-98f2-14cfad50aefd" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:57 GMT" + "Tue, 16 Apr 2019 17:00:01 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2709,21 +2715,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "3fe64ea0-73bb-4bc2-b248-9769ecaf2ef7" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6C28CF7137C1D\",\"lastModified\":\"2019-04-16T17:00:01.5963165Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, @@ -2746,16 +2749,16 @@ "keep-alive" ], "client-request-id": [ - "e34a2ed4-5d41-11e9-a1ac-44032c851686" + "12eda99c-6069-11e9-92f7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:57 GMT" + "Tue, 16 Apr 2019 17:00:01 GMT" ], "Authorization": [ - "SharedKey sdktest2:WYMoUwQN4CHQhWMfrLzHNByg47LFnOcZV9zHRv1eU4E=" + "SharedKey sdktest2:r6AgzzkK3KQxkDIRSqoQWmaW+SdLivGOPe5meJCb1+E=" ] } }, @@ -2765,17 +2768,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65C6B4ED32" + "request-id": [ + "6728e029-4bfa-4286-8681-21bd6ea538ec" ], "Date": [ - "Fri, 12 Apr 2019 16:41:57 GMT" + "Tue, 16 Apr 2019 17:00:01 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:56 GMT" + "Tue, 16 Apr 2019 17:00:00 GMT" + ], + "ETag": [ + "0x8D6C28CF692D2DF" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2783,21 +2789,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "a1ba65ff-9ff8-478b-a1d9-5326264b1811" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6BF65C6B4ED32\",\"lastModified\":\"2019-04-12T16:41:56.5851954Z\",\"creationTime\":\"2019-04-12T16:41:56.5667186Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:56.5851954Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:56.5851954Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-ubuntu1404-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1\",\"eTag\":\"0x8D6C28CF692D2DF\",\"lastModified\":\"2019-04-16T17:00:00.7531231Z\",\"creationTime\":\"2019-04-16T17:00:00.7400955Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:00.7531231Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-ubuntu1404\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T17:00:00.7531231Z\",\"poolId\":\"ncj-ubuntu1404\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, @@ -2820,16 +2823,16 @@ "keep-alive" ], "client-request-id": [ - "e3641f82-5d41-11e9-b71b-44032c851686" + "130da782-6069-11e9-b0c7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:41:58 GMT" + "Tue, 16 Apr 2019 17:00:01 GMT" ], "Authorization": [ - "SharedKey sdktest2:ZKEun4EyBivDtCdv1IApM8SS5c0Y6WtaO1aP7wWyqTc=" + "SharedKey sdktest2:n7tHr4h+DlgSLtzy77Vhgdxd1wxYacsKeQugg30cKSo=" ] } }, @@ -2839,8 +2842,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "0502a7d8-f1be-417c-9251-7852dcb7d689" + ], "Date": [ - "Fri, 12 Apr 2019 16:41:58 GMT" + "Tue, 16 Apr 2019 17:00:01 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2851,21 +2857,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "08ec8500-bd96-4ccd-8bfb-1bc73f362ccb" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"creationTime\":\"2019-04-12T16:41:57.7604238Z\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:41:57.7604238Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6C28CF7137C1D\",\"creationTime\":\"2019-04-16T17:00:01.5963165Z\",\"lastModified\":\"2019-04-16T17:00:01.5963165Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:01.5963165Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A00Z&se=2019-04-23T17%3A00%3A00Z&sp=w&sv=2017-07-29&sr=c&sig=d6R%2B6FAJo8j%2Bc4LgaLjFheKbxGLZo0OyL4%2BPNuOtmjg%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -2888,16 +2891,16 @@ "keep-alive" ], "client-request-id": [ - "e552d752-5d41-11e9-a2e2-44032c851686" + "150763da-6069-11e9-b7f9-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:ScRpHe+kjtvqR/NuPt2GjEkj9QOwDb0z96iOhrwudNg=" + "SharedKey sdktest2:lQBnylYueKCQj399Dug2ite8kIg0u/hk8NcK+Iq6+Ho=" ] } }, @@ -2907,8 +2910,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "d47c0478-702e-43c7-b1ee-f04eff83ecc7" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -2919,21 +2925,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "38c62bf3-caf1-4524-b659-3e1d78785871" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"creationTime\":\"2019-04-12T16:41:57.7604238Z\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:59.094704Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:58.580311Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:58.580311Z\",\"endTime\":\"2019-04-12T16:41:59.094704Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6C28CF7137C1D\",\"creationTime\":\"2019-04-16T17:00:01.5963165Z\",\"lastModified\":\"2019-04-16T17:00:01.5963165Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T17:00:03.065186Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T17:00:02.568558Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A00Z&se=2019-04-23T17%3A00%3A00Z&sp=w&sv=2017-07-29&sr=c&sig=d6R%2B6FAJo8j%2Bc4LgaLjFheKbxGLZo0OyL4%2BPNuOtmjg%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T17:00:02.568558Z\",\"endTime\":\"2019-04-16T17:00:03.065186Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -2956,16 +2959,16 @@ "keep-alive" ], "client-request-id": [ - "e56ecf28-5d41-11e9-990b-44032c851686" + "1533d55c-6069-11e9-bbb7-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:lreKqTML6rrjiNoU/cFGG1d2V25iXD9hlzbLIm5fYSU=" + "SharedKey sdktest2:Izk8QHnzkTUXqJjQI0P/pZVDHSWj8+ArycPcWDg0c0s=" ] } }, @@ -2975,17 +2978,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65C768408E" + "request-id": [ + "bac06d61-7281-4bf1-95e8-a84599559917" ], "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:41:57 GMT" + "Tue, 16 Apr 2019 17:00:01 GMT" + ], + "ETag": [ + "0x8D6C28CF7137C1D" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2993,21 +2999,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "2afbd8ac-8b8f-494a-b907-c172da4218a6" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6BF65C768408E\",\"creationTime\":\"2019-04-12T16:41:57.7604238Z\",\"lastModified\":\"2019-04-12T16:41:57.7604238Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:41:59.094704Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:41:58.580311Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A26%3A56Z&se=2019-04-19T16%3A41%3A56Z&sp=w&sv=2017-07-29&sr=c&sig=jFxH26DkwxKbo8ECa7%2BYrrczY%2BKlFOY/c03TwTGAHno%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:58.580311Z\",\"endTime\":\"2019-04-12T16:41:59.094704Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-ubuntu1404-1/tasks/myTask\",\"eTag\":\"0x8D6C28CF7137C1D\",\"creationTime\":\"2019-04-16T17:00:01.5963165Z\",\"lastModified\":\"2019-04-16T17:00:01.5963165Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T17:00:03.065186Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T17:00:02.568558Z\",\"commandLine\":\"/bin/bash -c \\\"echo test\\\"\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A00Z&se=2019-04-23T17%3A00%3A00Z&sp=w&sv=2017-07-29&sr=c&sig=d6R%2B6FAJo8j%2Bc4LgaLjFheKbxGLZo0OyL4%2BPNuOtmjg%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T17:00:02.568558Z\",\"endTime\":\"2019-04-16T17:00:03.065186Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"poolId\":\"ncj-ubuntu1404\",\"nodeId\":\"tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d\",\"taskRootDirectory\":\"workitems/ncj-ubuntu1404-1/job-1/myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-ubuntu1404/nodes/tvmps_f7cadbf9df93c656a5deee4d9edeacecda2c5e29c542e448256dcd732eb87a40_d/files/workitems/ncj-ubuntu1404-1/job-1/myTask\"\r\n }\r\n}" } } }, @@ -3027,13 +3030,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e5940c64-5d41-11e9-8231-44032c851686" + "1551e368-6069-11e9-a848-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:4yak3s/u3rELeMFbANotU0uhb76/eq/xYBprDzKpGN0=" + "SharedKey sdkteststore2:mr3zyAxDHBOnL5u0CMx1ip6ccBBYkhH+UNOTUUVI87o=" ] } }, @@ -3044,7 +3047,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -3052,15 +3055,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82E6C260application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82AC1F6400application/octet-streamZQSk1EqhNRTbSOVVRK7GoA==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82717C50application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:58 GMT0x8D6BF65C822F8575application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtTue, 16 Apr 2019 17:00:03 GMT0x8D6C28CF7EE6E950application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 16 Apr 2019 17:00:03 GMT0x8D6C28CF7EAC470400application/octet-stream7WeMwPFfSfOaCUcIh0ftng==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 16 Apr 2019 17:00:02 GMT0x8D6C28CF7E71A420application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 16 Apr 2019 17:00:02 GMT0x8D6C28CF7E321EF5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -3083,7 +3086,7 @@ "keep-alive" ], "client-request-id": [ - "e59f0d80-5d41-11e9-9278-44032c851686" + "155d2dec-6069-11e9-a3d5-44032c851686" ], "accept-language": [ "en-US" @@ -3092,10 +3095,10 @@ "0" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:+3BXLLLkud8Tk3i+K6kKI7ZC5atLCxuCHrLuBc6EVcM=" + "SharedKey sdktest2:ZACXWyoxyVwFN/DFTvcYdn8bJjbjICbCKTREFA81cps=" ] } }, @@ -3105,8 +3108,11 @@ "message": "Accepted" }, "headers": { + "request-id": [ + "911aa564-6bbd-42c4-923f-5da2e3d92dfd" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -3117,9 +3123,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "e23b7008-7e68-452a-bcdf-230b2205dc19" - ], "Transfer-Encoding": [ "chunked" ], @@ -3148,13 +3151,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e5ba491a-5d41-11e9-9e52-44032c851686" + "1578aeb8-6069-11e9-b1ab-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:OXdy/QtkQXY89101Ap6yRoo/T6nhc1UQMG0Q1EZBJZA=" + "SharedKey sdkteststore2:974v4uBDMYlXsITKYvVq9T+3l8hXwgqGSSeObwx5E1Q=" ] } }, @@ -3165,7 +3168,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -3173,15 +3176,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82E6C260application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82AC1F6400application/octet-streamZQSk1EqhNRTbSOVVRK7GoA==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:41:59 GMT0x8D6BF65C82717C50application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:41:58 GMT0x8D6BF65C822F8575application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtTue, 16 Apr 2019 17:00:03 GMT0x8D6C28CF7EE6E950application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 16 Apr 2019 17:00:03 GMT0x8D6C28CF7EAC470400application/octet-stream7WeMwPFfSfOaCUcIh0ftng==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 16 Apr 2019 17:00:02 GMT0x8D6C28CF7E71A420application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 16 Apr 2019 17:00:02 GMT0x8D6C28CF7E321EF5application/octet-stream2Oj8otwPiW/Xy0ywAxuiSQ==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -3201,13 +3204,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e5c5678a-5d41-11e9-98da-44032c851686" + "15834c5c-6069-11e9-811e-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:fkEozs4OnRSFYrrLo0zhC0TC2eI8+8mfIdyDRzyGeCs=" + "SharedKey sdkteststore2:o2qMnDJ8wXk6MOZ2eMJy2tyyCLvrxnLiYuxXIAdonKY=" ], "Content-Length": [ "0" @@ -3221,19 +3224,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3257,13 +3260,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e5cc4d94-5d41-11e9-9783-44032c851686" + "1589e64a-6069-11e9-8a35-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:zVpkOgZkBvffXLEQb4/tvJHHIej7UYdnc9jlttbUKwg=" + "SharedKey sdkteststore2:3UNOO59pJvXHRTi8FpcdjgPDTKd46SVE2jnJHsSiq9U=" ], "Content-Length": [ "0" @@ -3277,19 +3280,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3313,13 +3316,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e5d346e2-5d41-11e9-8004-44032c851686" + "15909b8c-6069-11e9-aece-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:lRn2Da+b43HcIe69JYBdibFqVsgpwuV4w5GLb1v80og=" + "SharedKey sdkteststore2:8MzVoBPFIyVV1FssGNpEkbkKDMA+Yf9je+J0viHT+NE=" ], "Content-Length": [ "0" @@ -3333,19 +3336,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3369,13 +3372,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e5da3fd2-5d41-11e9-9201-44032c851686" + "1597580c-6069-11e9-9244-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:ZmrzumvMS7fBVl0XVupYDSelfAErEVeqVeyEurg6CpA=" + "SharedKey sdkteststore2:1wXZokLowm9ovnz1qKOfbctPCKvtHRSGE4mq+6i6zOw=" ], "Content-Length": [ "0" @@ -3389,19 +3392,19 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:01 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "x-ms-delete-type-permanent": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], "Content-Length": [ "0" - ], - "x-ms-delete-type-permanent": [ - "true" ] }, "body": { @@ -3428,16 +3431,16 @@ "keep-alive" ], "client-request-id": [ - "e5e5e324-5d41-11e9-8b1b-44032c851686" + "159df0d0-6069-11e9-b098-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:Jq10qS/lSWl7rmE1WXbfnNw5U7M9n+pf5sCsFglMWIc=" + "SharedKey sdktest2:+CbDU4rG5LNCCCBJ9F7+Qi065hole3+FP3wtv29PX6I=" ] } }, @@ -3447,8 +3450,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "8d8f2244-9bd9-4d65-9199-f0f140db45d9" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:05 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -3459,17 +3465,14 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "058e7229-173a-4f23-a84d-9f326fe8d5f0" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -3499,7 +3502,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "e6050fba-5d41-11e9-a7ef-44032c851686" + "15c1dd68-6069-11e9-954e-44032c851686" ], "accept-language": [ "en-US" @@ -3508,10 +3511,10 @@ "277" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:8vhijTemlqdRrer21lErwgdBJiifu0SqObT0DcWmLJo=" + "SharedKey sdktest2:bkQKB1Vdahuq/cTWc7sQLTI11xrJgG0uGCisWrk00ew=" ] } }, @@ -3521,33 +3524,33 @@ "message": "The specified pool already exists." }, "headers": { + "request-id": [ + "2012ada9-4c65-4a10-9d76-1ca9b60addf5" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Content-Length": [ - "334" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "Content-Length": [ + "334" + ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "d0adcad8-d8be-4680-b32f-1139531d7aa7" - ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:d0adcad8-d8be-4680-b32f-1139531d7aa7\\nTime:2019-04-12T16:42:02.6104471Z\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\"code\":\"PoolExists\",\"message\":{\r\n \"lang\":\"en-US\",\"value\":\"The specified pool already exists.\\nRequestId:2012ada9-4c65-4a10-9d76-1ca9b60addf5\\nTime:2019-04-16T17:00:06.6324823Z\"\r\n }\r\n}" } } }, @@ -3570,16 +3573,16 @@ "keep-alive" ], "client-request-id": [ - "e627dcb6-5d41-11e9-9db7-44032c851686" + "15e5d636-6069-11e9-8cd4-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:PuMfsGfx/cfGT/9qzCu6E6ORnj+vp3CeZLji50cBOXE=" + "SharedKey sdktest2:IbZ95bRL9cMPlCuOd92fr9Ku2kn6jd3Sn5hlxT6bRfU=" ] } }, @@ -3589,11 +3592,11 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BEC6908A7B31" + "request-id": [ + "ee58ccfd-8941-4b52-a0fb-35d293d0f9c2" ], "Date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -3601,23 +3604,23 @@ "Last-Modified": [ "Thu, 11 Apr 2019 21:42:15 GMT" ], + "ETag": [ + "0x8D6BEC6908A7B31" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "676f3616-084e-4339-8927-f0f40c79d99c" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { @@ -3644,16 +3647,16 @@ "keep-alive" ], "client-request-id": [ - "e646ba9c-5d41-11e9-a388-44032c851686" + "16039cd2-6069-11e9-9caf-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:02 GMT" + "Tue, 16 Apr 2019 17:00:06 GMT" ], "Authorization": [ - "SharedKey sdktest2:9BT81pEceQfAvP4dI/jAO4HAg1zeIWMM5xVeJ5/gjug=" + "SharedKey sdktest2:YRfIBerSYL+R5j8NbErKGWUz0U2Y/PMCPSo52hDbC94=" ] } }, @@ -3663,8 +3666,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "1aa229e9-9928-4493-a427-b4ed4b27a18e" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:03 GMT" + "Tue, 16 Apr 2019 17:00:07 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -3675,21 +3681,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "54f5040e-15a5-491e-b0da-9b2e3a55abab" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-12T16:41:49.058968Z\",\"lastBootTime\":\"2019-04-11T21:46:22.441758Z\",\"allocationTime\":\"2019-04-11T21:43:46.374784Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":12,\"totalTasksSucceeded\":12,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:41:48.496467Z\",\"endTime\":\"2019-04-12T16:41:49.027714Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.130.79\",\"publicFQDN\":\"dnsaa36c1f8-10e2-4832-833d-8928b6d921bf-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T21:46:22.441758Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#nodes\",\"value\":[\r\n {\r\n \"id\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"state\":\"idle\",\"schedulingState\":\"enabled\",\"stateTransitionTime\":\"2019-04-16T16:59:54.291964Z\",\"lastBootTime\":\"2019-04-14T04:16:02.138001Z\",\"allocationTime\":\"2019-04-11T21:43:46.374784Z\",\"ipAddress\":\"10.0.0.4\",\"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"vmSize\":\"standard_d1_v2\",\"totalTasksRun\":14,\"totalTasksSucceeded\":14,\"runningTasksCount\":0,\"recentTasks\":[\r\n {\r\n \"taskUrl\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2/tasks/myTask\",\"jobId\":\"ncj-windows-2012-r2\",\"taskId\":\"myTask\",\"taskState\":\"completed\",\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T16:59:53.42727Z\",\"endTime\":\"2019-04-16T16:59:54.260711Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ],\"isDedicated\":true,\"endpointConfiguration\":{\r\n \"inboundEndpoints\":[\r\n {\r\n \"name\":\"SSHRule.0\",\"protocol\":\"tcp\",\"publicIPAddress\":\"52.253.130.79\",\"publicFQDN\":\"dnsaa36c1f8-10e2-4832-833d-8928b6d921bf-azurebatch-cloudservice.westcentralus.cloudapp.azure.com\",\"frontendPort\":50000,\"backendPort\":3389\r\n }\r\n ]\r\n },\"nodeAgentInfo\":{\r\n \"lastUpdateTime\":\"2019-04-11T21:46:22.441758Z\",\"version\":\"1.5.5\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -3712,13 +3715,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "e6847a08-5d41-11e9-8638-44032c851686" + "1642a82e-6069-11e9-a26c-44032c851686" ], "accept-language": [ "en-US" @@ -3731,27 +3734,24 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" - ], "Date": [ - "Fri, 12 Apr 2019 16:42:03 GMT" + "Tue, 16 Apr 2019 17:00:07 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], "Cache-Control": [ "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], "Vary": [ "Accept-Encoding" ], @@ -3761,6 +3761,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "Content-Type": [ + "application/json; charset=utf-8" + ], "content-length": [ "686" ] @@ -3789,13 +3792,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "e6b5c3cc-5d41-11e9-af64-44032c851686" + "167ed5c6-6069-11e9-9aef-44032c851686" ], "accept-language": [ "en-US" @@ -3811,30 +3814,24 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" - ], "Date": [ - "Fri, 12 Apr 2019 16:42:04 GMT" + "Tue, 16 Apr 2019 17:00:07 GMT" ], "Server": [ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ + "Expires": [ + "-1" + ], + "Pragma": [ "no-cache" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json" - ], - "Expires": [ - "-1" - ], "Vary": [ "Accept-Encoding" ], @@ -3844,6 +3841,12 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Content-Type": [ + "application/json" + ], "content-length": [ "288" ] @@ -3869,13 +3872,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "e7ca4c0c-5d41-11e9-8326-44032c851686" + "169b6958-6069-11e9-afee-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:05 GMT" + "Tue, 16 Apr 2019 17:00:07 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:uPTmIuMyMk13W57SpB+JMVo/ARJ05GKLd2YB+EJEbRY=" + "SharedKey sdkteststore2:/Y27hTXvBXq15tB4XJ0GuJE6hMhHi5IHD8TgkXdb5F0=" ], "Content-Length": [ "0" @@ -3892,7 +3895,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:42:05 GMT" + "Tue, 16 Apr 2019 17:00:07 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -3908,7 +3911,7 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9dc795b4-601e-0055-524e-f18f77000000\nTime:2019-04-12T16:42:05.5473992Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:27634f8b-c01e-0035-5d75-f4ca55000000\nTime:2019-04-16T17:00:08.0121805Z" } } }, @@ -3931,13 +3934,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "e7e9383a-5d41-11e9-96bb-44032c851686" + "16b8863a-6069-11e9-996b-44032c851686" ], "accept-language": [ "en-US" @@ -3956,23 +3959,26 @@ "message": "Created" }, "headers": { - "ETag": [ - "0x8D6BF65CC8DB313" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "request-id": [ + "f179b479-c6a1-4634-97e7-2265a62e1c56" ], "Date": [ - "Fri, 12 Apr 2019 16:42:06 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Tue, 16 Apr 2019 17:00:08 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" + ], + "ETag": [ + "0x8D6C28CFB0B8D8D" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -3980,9 +3986,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "cbcf8c70-f213-43b3-a45f-530a9a8d68c7" - ], "Transfer-Encoding": [ "chunked" ], @@ -3999,7 +4002,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", + "body": "{\"value\": [{\"id\": \"myTask\", \"commandLine\": \"cmd /c echo | set /p dummy=test\", \"outputFiles\": [{\"filePattern\": \"$AZ_BATCH_TASK_DIR/*.txt\", \"destination\": {\"container\": {\"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A08Z&se=2019-04-23T17%3A00%3A08Z&sp=w&sv=2017-07-29&sr=c&sig=pOyWsPeSALAz/1Jzg5SooI88TYe7nfNLvNjDofqxFa4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}], \"constraints\": {\"retentionTime\": \"PT1H\"}}]}", "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -4014,13 +4017,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "e86a7eb6-5d41-11e9-87aa-44032c851686" + "16dd97a4-6069-11e9-bb0c-44032c851686" ], "accept-language": [ "en-US" @@ -4036,8 +4039,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "2d308d27-fa19-47ee-b14f-ca7f0b3d5427" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -4048,21 +4054,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "1d002a66-b882-4ea6-afad-54976efc272d" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"myTask\",\"eTag\":\"0x8D6C28CFB36FF05\",\"lastModified\":\"2019-04-16T17:00:08.5399301Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\"\r\n }\r\n ]\r\n}" } } }, @@ -4085,16 +4088,16 @@ "keep-alive" ], "client-request-id": [ - "e8928170-5d41-11e9-97ba-44032c851686" + "170962ba-6069-11e9-ac06-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" ], "Authorization": [ - "SharedKey sdktest2:JJv+G5cQdbzIaOpt9L87MEUX7AZiHvMkr3VFCOfsN60=" + "SharedKey sdktest2:BnAGsMLAWZszyLKD2Ju3gh//OeJ2sKkOim1UXZZn5Ko=" ] } }, @@ -4104,17 +4107,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CC8DB313" + "request-id": [ + "afd29270-7d7d-4a77-87bb-bd1ea8a73897" ], "Date": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" + ], + "ETag": [ + "0x8D6C28CFB0B8D8D" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4122,21 +4128,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "b7c265ca-88cb-41df-99d3-8f95fcda2682" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6BF65CC8DB313\",\"lastModified\":\"2019-04-12T16:42:06.3944467Z\",\"creationTime\":\"2019-04-12T16:42:06.3804464Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:06.3944467Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:42:06.3944467Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#jobs/@Element\",\"id\":\"ncj-windows-2012-r2-1\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1\",\"eTag\":\"0x8D6C28CFB0B8D8D\",\"lastModified\":\"2019-04-16T17:00:08.2552205Z\",\"creationTime\":\"2019-04-16T17:00:08.2423122Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:08.2552205Z\",\"priority\":0,\"usesTaskDependencies\":false,\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"maxTaskRetryCount\":0\r\n },\"poolInfo\":{\r\n \"poolId\":\"ncj-windows-2012-r2\"\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T17:00:08.2552205Z\",\"poolId\":\"ncj-windows-2012-r2\"\r\n },\"onAllTasksComplete\":\"noaction\",\"onTaskFailure\":\"noaction\"\r\n}" } } }, @@ -4159,16 +4162,16 @@ "keep-alive" ], "client-request-id": [ - "e8ada4f6-5d41-11e9-bc04-44032c851686" + "1729b188-6069-11e9-9309-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" ], "Authorization": [ - "SharedKey sdktest2:Kv/3iXirTOH4anlOzIDERCkt6mY8kvYA3RMG+1aqBpI=" + "SharedKey sdktest2:TeNb98Z9rurAgkZI3raaefGcWTYlLM03Q73IjCFh8rc=" ] } }, @@ -4178,8 +4181,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "120a41f4-fd9f-4d4d-9deb-dcde66302563" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:07 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -4190,21 +4196,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "ff9f48ee-0488-4889-8077-9b5ea267ef0b" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"creationTime\":\"2019-04-12T16:42:06.6568645Z\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:06.6568645Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6C28CFB36FF05\",\"creationTime\":\"2019-04-16T17:00:08.5399301Z\",\"lastModified\":\"2019-04-16T17:00:08.5399301Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:08.5399301Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A08Z&se=2019-04-23T17%3A00%3A08Z&sp=w&sv=2017-07-29&sr=c&sig=pOyWsPeSALAz/1Jzg5SooI88TYe7nfNLvNjDofqxFa4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"retryCount\":0,\"requeueCount\":0\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -4227,16 +4230,16 @@ "keep-alive" ], "client-request-id": [ - "ea931962-5d41-11e9-bced-44032c851686" + "1918f78a-6069-11e9-9a0f-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:10 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:DjYs3gRY/YgjH1FwT3uyCxcA1BkyN49WoQCrtJbcGGg=" + "SharedKey sdktest2:Z7fb4L0I9zYpiLzo42kyNdHBI7ZM3YUklZ6/vQo3Nsg=" ] } }, @@ -4246,8 +4249,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "907277ef-0a41-46c1-8a6a-759bdab985e7" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:09 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -4258,21 +4264,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "48839e65-7112-49c0-8ec7-e646cab52226" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"creationTime\":\"2019-04-12T16:42:06.6568645Z\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:42:06.501857Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:42:05.955019Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:42:05.955019Z\",\"endTime\":\"2019-04-12T16:42:06.501857Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks\",\"value\":[\r\n {\r\n \"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6C28CFB36FF05\",\"creationTime\":\"2019-04-16T17:00:08.5399301Z\",\"lastModified\":\"2019-04-16T17:00:08.5399301Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T17:00:09.895423Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T17:00:09.379786Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A08Z&se=2019-04-23T17%3A00%3A08Z&sp=w&sv=2017-07-29&sr=c&sig=pOyWsPeSALAz/1Jzg5SooI88TYe7nfNLvNjDofqxFa4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T17:00:09.379786Z\",\"endTime\":\"2019-04-16T17:00:09.895423Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n }\r\n ]\r\n}" } } }, @@ -4295,16 +4298,16 @@ "keep-alive" ], "client-request-id": [ - "eaae8eec-5d41-11e9-829d-44032c851686" + "1939416e-6069-11e9-9a3d-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:10 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:UI8UGRydWe4MneuQN196nZmDsOPbvdgpAgAG3313Wgw=" + "SharedKey sdktest2:YL2ylR7zT7g5WQbdKM7HS33si2wmRtK+GJTXpYbe9GY=" ] } }, @@ -4314,17 +4317,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CCB5BDC5" + "request-id": [ + "33adf36f-0723-495a-8747-2c56c4cdc97a" ], "Date": [ - "Fri, 12 Apr 2019 16:42:10 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:06 GMT" + "Tue, 16 Apr 2019 17:00:08 GMT" + ], + "ETag": [ + "0x8D6C28CFB36FF05" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4332,21 +4338,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "86575793-8c22-4eeb-a840-0a541c7da463" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6BF65CCB5BDC5\",\"creationTime\":\"2019-04-12T16:42:06.6568645Z\",\"lastModified\":\"2019-04-12T16:42:06.6568645Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-12T16:42:06.501857Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-12T16:42:05.955019Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A27%3A05Z&se=2019-04-19T16%3A42%3A05Z&sp=w&sv=2017-07-29&sr=c&sig=oC6OSPHaECGa5WOPvlkPKmbWW2FQxkAHwM8k2WZ7gmM%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-12T16:42:05.955019Z\",\"endTime\":\"2019-04-12T16:42:06.501857Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#tasks/@Element\",\"id\":\"myTask\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/ncj-windows-2012-r2-1/tasks/myTask\",\"eTag\":\"0x8D6C28CFB36FF05\",\"creationTime\":\"2019-04-16T17:00:08.5399301Z\",\"lastModified\":\"2019-04-16T17:00:08.5399301Z\",\"state\":\"completed\",\"stateTransitionTime\":\"2019-04-16T17:00:09.895423Z\",\"previousState\":\"running\",\"previousStateTransitionTime\":\"2019-04-16T17:00:09.379786Z\",\"commandLine\":\"cmd /c echo | set /p dummy=test\",\"outputFiles\":[\r\n {\r\n \"filePattern\":\"$AZ_BATCH_TASK_DIR/*.txt\",\"destination\":{\r\n \"container\":{\r\n \"containerUrl\":\"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A45%3A08Z&se=2019-04-23T17%3A00%3A08Z&sp=w&sv=2017-07-29&sr=c&sig=pOyWsPeSALAz/1Jzg5SooI88TYe7nfNLvNjDofqxFa4%3D\"\r\n }\r\n },\"uploadOptions\":{\r\n \"uploadCondition\":\"TaskSuccess\"\r\n }\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"elevationLevel\":\"nonadmin\"\r\n }\r\n },\"constraints\":{\r\n \"maxWallClockTime\":\"P10675199DT2H48M5.4775807S\",\"retentionTime\":\"PT1H\",\"maxTaskRetryCount\":0\r\n },\"executionInfo\":{\r\n \"startTime\":\"2019-04-16T17:00:09.379786Z\",\"endTime\":\"2019-04-16T17:00:09.895423Z\",\"exitCode\":0,\"result\":\"success\",\"retryCount\":0,\"requeueCount\":0\r\n },\"nodeInfo\":{\r\n \"affinityId\":\"TVM:tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"nodeUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"poolId\":\"ncj-windows-2012-r2\",\"nodeId\":\"tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d\",\"taskRootDirectory\":\"workitems\\\\ncj-windows-2012-r2-1\\\\job-1\\\\myTask\",\"taskRootDirectoryUrl\":\"https://sdktest2.westcentralus.batch.azure.com/pools/ncj-windows-2012-r2/nodes/tvmps_396d52e71975ca8073b00766c7beff6e8cabd91f73b22b3e4caeeb86f3059bd6_d/files/workitems/ncj-windows-2012-r2-1/job-1/myTask\"\r\n }\r\n}" } } }, @@ -4366,13 +4369,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "eac9ce18-5d41-11e9-88f3-44032c851686" + "19575466-6069-11e9-a9d2-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:42:10 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:NSK25OcMHuEmgwMXGklcZTXYDsRk83RcGEMvoRR6euA=" + "SharedKey sdkteststore2:GltCXYdfrgN1N4n5+nB6Q4WDFWEoUWdo4pc0MoK1GLo=" ] } }, @@ -4383,7 +4386,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:42:09 GMT" + "Tue, 16 Apr 2019 17:00:11 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -4391,15 +4394,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufefffileuploaderr.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDA9B6AD0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDAB64A8411application/octet-streamx6vUjv+zegM2c2B86O+Lrw==BlockBlobHottrueunlockedavailabletruestderr.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDACEB980application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtFri, 12 Apr 2019 16:42:08 GMT0x8D6BF65CDAE727C4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufefffileuploaderr.txtTue, 16 Apr 2019 17:00:10 GMT0x8D6C28CFC1AB0CD0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruefileuploadout.txtTue, 16 Apr 2019 17:00:10 GMT0x8D6C28CFC1C37B8411application/octet-streamqX9El5dtgJAwqVGZ9NTyjw==BlockBlobHottrueunlockedavailabletruestderr.txtTue, 16 Apr 2019 17:00:10 GMT0x8D6C28CFC1D977E0application/octet-stream1B2M2Y8AsgTpgAmY7PhCfg==BlockBlobHottrueunlockedavailabletruestdout.txtTue, 16 Apr 2019 17:00:10 GMT0x8D6C28CFC1ED03B4application/octet-streamCY9rzUYh03PK3k6DJie09g==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -4422,7 +4425,7 @@ "keep-alive" ], "client-request-id": [ - "ead6cf06-5d41-11e9-b9e0-44032c851686" + "19657a48-6069-11e9-b866-44032c851686" ], "accept-language": [ "en-US" @@ -4431,10 +4434,10 @@ "0" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:10 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:m6KHP4yR/VODZHFF4Qj+PQvAirjRPWZA7bpK8xuTIxw=" + "SharedKey sdktest2:TDjAus2V7XU+dHgt6N2z/r4PxfC6pzigX1XaVeo+fw4=" ] } }, @@ -4444,8 +4447,11 @@ "message": "Accepted" }, "headers": { + "request-id": [ + "c04d7a73-6137-4bcf-abd0-fdd47bc65581" + ], "Date": [ - "Fri, 12 Apr 2019 16:42:10 GMT" + "Tue, 16 Apr 2019 17:00:12 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -4456,9 +4462,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "e897af7b-b24e-44a2-93ea-d69494109257" - ], "Transfer-Encoding": [ "chunked" ], @@ -4493,7 +4496,7 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "eb2e4a18-5d41-11e9-baf4-44032c851686" + "1a1c5298-6069-11e9-ac7f-44032c851686" ], "accept-language": [ "en-US" @@ -4502,10 +4505,10 @@ "759" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:13 GMT" ], "Authorization": [ - "SharedKey sdktest2:fOcC1y3w73gbZXxojgv0mJZscdTtJC49uDXzwq/xJuk=" + "SharedKey sdktest2:IFzE+HidDndAmDzwIdblKmIbjhaplvs+aX9QoyS+XZw=" ] } }, @@ -4515,23 +4518,26 @@ "message": "Created" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + "request-id": [ + "ae201feb-6ff9-490c-bc5c-d2de0fd2c2bc" ], "Date": [ - "Fri, 12 Apr 2019 16:42:11 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + "Tue, 16 Apr 2019 17:00:14 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4539,9 +4545,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "84ecebf2-8532-4367-bf65-ee1dd48ad037" - ], "Transfer-Encoding": [ "chunked" ], @@ -4573,16 +4576,16 @@ "keep-alive" ], "client-request-id": [ - "ebb20be4-5d41-11e9-b673-44032c851686" + "1a6024cc-6069-11e9-a453-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:12 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" ], "Authorization": [ - "SharedKey sdktest2:gTvLGjHlvvWrC68d/rc5blmBi7zh03si52pfUcM6thA=" + "SharedKey sdktest2:7I3No5wUfcAxe5A/qo6gdDvMSBZ+0+hvKQ1CCs6FB0Y=" ] } }, @@ -4592,17 +4595,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "a99ddfaf-8ac5-481e-b27f-31b61ade3e21" ], "Date": [ - "Fri, 12 Apr 2019 16:42:12 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4610,21 +4616,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "bd79c0a5-3db5-4a6b-880a-ec4f2025d1ac" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4647,16 +4650,16 @@ "keep-alive" ], "client-request-id": [ - "ed9931d2-5d41-11e9-9653-44032c851686" + "1c46541e-6069-11e9-83c0-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:15 GMT" + "Tue, 16 Apr 2019 17:00:17 GMT" ], "Authorization": [ - "SharedKey sdktest2:T99WJ8KaN1/j8+ltZlRzkq+NwhZJg9rnqfPffIZnpwg=" + "SharedKey sdktest2:zTI51TiV+FXYVnROGXJenIXyXQtgKz5oJJ1TB7enk94=" ] } }, @@ -4666,17 +4669,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "8d977586-56f5-42f4-8378-a177df15d701" ], "Date": [ - "Fri, 12 Apr 2019 16:42:15 GMT" + "Tue, 16 Apr 2019 17:00:17 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4684,21 +4690,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "eaa51958-b7c7-4ab8-9b8b-ea0e217a7ddb" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4721,16 +4724,16 @@ "keep-alive" ], "client-request-id": [ - "ef80159a-5d41-11e9-a809-44032c851686" + "1e2da3ba-6069-11e9-8cbd-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:18 GMT" + "Tue, 16 Apr 2019 17:00:20 GMT" ], "Authorization": [ - "SharedKey sdktest2:wadJ2LQr7QjmTrg059zv2hRYgmTRKf5KvNVAMyEhMrA=" + "SharedKey sdktest2:XqtEGz5X44fV9HmVPG83y3uSlApVEv4N2xsbcQnvAfQ=" ] } }, @@ -4740,17 +4743,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "47954e61-9829-48f6-8952-d5042cff74cb" ], "Date": [ - "Fri, 12 Apr 2019 16:42:18 GMT" + "Tue, 16 Apr 2019 17:00:20 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4758,21 +4764,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "8a715118-404b-4124-926d-3204f0f91d2a" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4795,16 +4798,16 @@ "keep-alive" ], "client-request-id": [ - "f16827d4-5d41-11e9-a599-44032c851686" + "201572fa-6069-11e9-a2de-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:21 GMT" + "Tue, 16 Apr 2019 17:00:23 GMT" ], "Authorization": [ - "SharedKey sdktest2:/QYsGHj3ZoArDA9U1xCuUrTDGftVzKKg0u6pMw2a64I=" + "SharedKey sdktest2:SuF+z3mvubfWf1P9mpgsT0gwAArWKqWPRQLXOezoT3A=" ] } }, @@ -4814,17 +4817,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "85a609a0-eed0-4dcc-be2a-53ed215a7066" ], "Date": [ - "Fri, 12 Apr 2019 16:42:21 GMT" + "Tue, 16 Apr 2019 17:00:23 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4832,21 +4838,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "fbc69d8a-67df-431d-8e35-dc9442aec17c" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4869,16 +4872,16 @@ "keep-alive" ], "client-request-id": [ - "f34d3246-5d41-11e9-9d56-44032c851686" + "2200aacc-6069-11e9-8eca-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:24 GMT" + "Tue, 16 Apr 2019 17:00:26 GMT" ], "Authorization": [ - "SharedKey sdktest2:7etbqcKjsnHWwpIGrNXFXOBDcKZuxxgP77y0P0GZxCk=" + "SharedKey sdktest2:8KHBU3mdZriAU7GMA9+GPR6uKdAZFaLUXMozfHZIiAQ=" ] } }, @@ -4888,17 +4891,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "493111d9-647d-4cf2-b6cd-fc667334dd39" ], "Date": [ - "Fri, 12 Apr 2019 16:42:24 GMT" + "Tue, 16 Apr 2019 17:00:26 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4906,21 +4912,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "46d28506-a9b8-4117-acea-c8a317bf4764" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -4943,16 +4946,16 @@ "keep-alive" ], "client-request-id": [ - "f534f71c-5d41-11e9-89fc-44032c851686" + "23ed7b58-6069-11e9-8e16-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:27 GMT" + "Tue, 16 Apr 2019 17:00:30 GMT" ], "Authorization": [ - "SharedKey sdktest2:EpGY78JZZ69CX1AlpuEPUHqo82lbviFetlPftWncXHI=" + "SharedKey sdktest2:xGUjN2MsbaueMN/wwFyElKzlkK/hwZOMQJLJhWxU2Xk=" ] } }, @@ -4962,17 +4965,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "a9383cf5-5bff-4893-9ee0-c7be1651e0c6" ], "Date": [ - "Fri, 12 Apr 2019 16:42:28 GMT" + "Tue, 16 Apr 2019 17:00:30 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -4980,21 +4986,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "bfefebc1-e14f-4ee5-984f-eef4be71cc51" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5017,16 +5020,16 @@ "keep-alive" ], "client-request-id": [ - "f71b8d1a-5d41-11e9-ade6-44032c851686" + "25d5eab8-6069-11e9-9e3e-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:31 GMT" + "Tue, 16 Apr 2019 17:00:33 GMT" ], "Authorization": [ - "SharedKey sdktest2:Sn4IPaS2vJdaqkclTLiqZhQgSo4Gc0+I2SWovjrmEsI=" + "SharedKey sdktest2:wfZvyj69DGV0TI3B2nlqFIwa2CNFTLhtrJlKUuiLLiU=" ] } }, @@ -5036,17 +5039,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "e24e3d3e-0f76-42be-ad01-ab9d971a63a9" ], "Date": [ - "Fri, 12 Apr 2019 16:42:30 GMT" + "Tue, 16 Apr 2019 17:00:33 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5054,21 +5060,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "d988bbba-4d89-4e46-98c2-96707f6fff14" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5091,16 +5094,16 @@ "keep-alive" ], "client-request-id": [ - "f9036e4c-5d41-11e9-95dc-44032c851686" + "27c1c0a6-6069-11e9-8b4d-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:34 GMT" + "Tue, 16 Apr 2019 17:00:36 GMT" ], "Authorization": [ - "SharedKey sdktest2:t+kSSJuW58j4oQkJtsLA00qBdBvdyhmXrlzDgf3g41k=" + "SharedKey sdktest2:cirjhW+BRWSiK2YcvItzX/8QMFBmP2/fgDT57F+kbI0=" ] } }, @@ -5110,17 +5113,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "2dacac37-1810-4d14-a7df-9df775378a87" ], "Date": [ - "Fri, 12 Apr 2019 16:42:34 GMT" + "Tue, 16 Apr 2019 17:00:35 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5128,21 +5134,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "f4b51b7f-d83d-4f9c-9018-dba8e2bfdf78" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5165,16 +5168,16 @@ "keep-alive" ], "client-request-id": [ - "faec5222-5d41-11e9-800b-44032c851686" + "29af9474-6069-11e9-bdc9-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:37 GMT" + "Tue, 16 Apr 2019 17:00:39 GMT" ], "Authorization": [ - "SharedKey sdktest2:4/3XmsKfvW1tQeIFdfD1qojtqVYE7TfaangAurcQcHE=" + "SharedKey sdktest2:uMX+2L3C+9pCs9x+kMKLocqd1GNtzEh8ipw+JExWZx4=" ] } }, @@ -5184,17 +5187,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "c7fa36d8-668f-4fe2-9e89-067b2052cbe0" ], "Date": [ - "Fri, 12 Apr 2019 16:42:37 GMT" + "Tue, 16 Apr 2019 17:00:40 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5202,21 +5208,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "cf0502e7-ef3d-44a2-b78a-40020111554b" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5239,16 +5242,16 @@ "keep-alive" ], "client-request-id": [ - "fcd4b154-5d41-11e9-b574-44032c851686" + "2b989a18-6069-11e9-a137-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:40 GMT" + "Tue, 16 Apr 2019 17:00:43 GMT" ], "Authorization": [ - "SharedKey sdktest2:DMf2zDIx+S74mBphFqZ+1Gl6rP/P2kZrNOKzzH42ilQ=" + "SharedKey sdktest2:vqbmrx+4paosfnjVVAfgB3UdTSSottp0RYKIXqqWREk=" ] } }, @@ -5258,17 +5261,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "69ca607f-c271-483c-8de2-2219b9a8d709" ], "Date": [ - "Fri, 12 Apr 2019 16:42:40 GMT" + "Tue, 16 Apr 2019 17:00:43 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5276,21 +5282,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "699eca58-f6dc-43f9-9be4-a7da747239b1" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5313,16 +5316,16 @@ "keep-alive" ], "client-request-id": [ - "fec16a80-5d41-11e9-bbc0-44032c851686" + "2d8aa9b6-6069-11e9-b1fa-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:43 GMT" + "Tue, 16 Apr 2019 17:00:46 GMT" ], "Authorization": [ - "SharedKey sdktest2:liej9HIlLhIQjziRDdl1mjIKrNHcpAHymKf4kwdbMNU=" + "SharedKey sdktest2:55X9exFmqgGHDUFcWjyuw7B/mGBImMkmhBSRtEpQMns=" ] } }, @@ -5332,17 +5335,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "7fe8e627-6ae3-4486-bfed-6038384af3f3" ], "Date": [ - "Fri, 12 Apr 2019 16:42:44 GMT" + "Tue, 16 Apr 2019 17:00:46 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5350,21 +5356,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "9ccb8fbd-51b1-43f2-a991-4996e0e3311f" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5387,16 +5390,16 @@ "keep-alive" ], "client-request-id": [ - "00ab7e2e-5d42-11e9-ae10-44032c851686" + "2f712e88-6069-11e9-9492-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:47 GMT" + "Tue, 16 Apr 2019 17:00:49 GMT" ], "Authorization": [ - "SharedKey sdktest2:JmN24+NdqZah3ohMKUjY2fCJUUjq3/UqlC+kLT5zWz4=" + "SharedKey sdktest2:QmFfMbAHvKlzGJOTYLeHdO+sUG+1u3SiqGIGVL4Lj1c=" ] } }, @@ -5406,17 +5409,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "f2882649-1d0e-4d92-a5c8-479de1ba7fd1" ], "Date": [ - "Fri, 12 Apr 2019 16:42:47 GMT" + "Tue, 16 Apr 2019 17:00:48 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5424,21 +5430,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "4d8fcc3a-3352-41f8-ad1f-a273e6a582f7" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5461,16 +5464,16 @@ "keep-alive" ], "client-request-id": [ - "02947fc6-5d42-11e9-94fb-44032c851686" + "315de80c-6069-11e9-9c83-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:50 GMT" + "Tue, 16 Apr 2019 17:00:52 GMT" ], "Authorization": [ - "SharedKey sdktest2:cWJp33n9HY3dvmW73e7NUur/cxVK0ExQGuYCLxugp+8=" + "SharedKey sdktest2:KV50JQlGg1O8JHYlNaIl8RxzocbBMyyPok81ErtmZ0k=" ] } }, @@ -5480,17 +5483,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "9702f60a-c233-4c4d-9078-2dc9f44844d7" ], "Date": [ - "Fri, 12 Apr 2019 16:42:50 GMT" + "Tue, 16 Apr 2019 17:00:52 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5498,21 +5504,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "95852b71-caa0-47de-9296-8ec268acb87d" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5535,16 +5538,16 @@ "keep-alive" ], "client-request-id": [ - "047de134-5d42-11e9-a3c0-44032c851686" + "3347c2c0-6069-11e9-acea-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:53 GMT" + "Tue, 16 Apr 2019 17:00:55 GMT" ], "Authorization": [ - "SharedKey sdktest2:sFkV3EYTIuGQW2FfQZo9b0fhtbxUCjsr8rkPx6sM3f8=" + "SharedKey sdktest2:+XH2VghA8P3i9aTrfec6572cO5wlipriGZ2GludEPNs=" ] } }, @@ -5554,17 +5557,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "cc889431-ab59-462e-abed-40b9bacaff1c" ], "Date": [ - "Fri, 12 Apr 2019 16:42:53 GMT" + "Tue, 16 Apr 2019 17:00:56 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5572,21 +5578,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "b865d137-b50c-419d-9bc3-95f6366005a0" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5609,16 +5612,16 @@ "keep-alive" ], "client-request-id": [ - "066a5f42-5d42-11e9-92fd-44032c851686" + "3532258a-6069-11e9-9357-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:42:56 GMT" + "Tue, 16 Apr 2019 17:00:59 GMT" ], "Authorization": [ - "SharedKey sdktest2:zFzRQEV9fdDzWs+ujIKXL7D1txhxbXhe2K2raz1eJaM=" + "SharedKey sdktest2:laaiDeH370PmnoJT3TY6dDbvJjxLkPhHJ1kED6ELRlw=" ] } }, @@ -5628,17 +5631,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "b648605f-7e03-4ef4-98c8-e05898b6d2d5" ], "Date": [ - "Fri, 12 Apr 2019 16:42:56 GMT" + "Tue, 16 Apr 2019 17:00:59 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5646,21 +5652,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "b633d777-af62-487a-b7c8-0fc8dae2541a" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5683,16 +5686,16 @@ "keep-alive" ], "client-request-id": [ - "085873b6-5d42-11e9-9291-44032c851686" + "371c8ae2-6069-11e9-8b18-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:00 GMT" + "Tue, 16 Apr 2019 17:01:02 GMT" ], "Authorization": [ - "SharedKey sdktest2:PQfPG/bZl2wYeSi2MwbnhrrZQPTBPYtmroRYYaIyr3I=" + "SharedKey sdktest2:1QmccB+sAfAjNmeMF7JN4IWuLU4KP86Xv4tc6duPt5M=" ] } }, @@ -5702,17 +5705,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "46f4df5c-d277-4ab3-b329-86fd5c4aed54" ], "Date": [ - "Fri, 12 Apr 2019 16:43:00 GMT" + "Tue, 16 Apr 2019 17:01:02 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5720,21 +5726,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "4fbe01bc-a940-40c1-8c3c-82a910ffe02d" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5757,16 +5760,16 @@ "keep-alive" ], "client-request-id": [ - "0a4809ee-5d42-11e9-a7ac-44032c851686" + "3902dcc0-6069-11e9-87eb-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:03 GMT" + "Tue, 16 Apr 2019 17:01:05 GMT" ], "Authorization": [ - "SharedKey sdktest2:HSoXaz8O9+ykx58MnvuK69QUVCzxCU86Z/sflbvc+SE=" + "SharedKey sdktest2:VW/8E1npPMYF8aWNFV9MTAXTGFIqYUHiRrYd0Mmn9Yk=" ] } }, @@ -5776,17 +5779,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "8d221c25-dab3-4dea-9cd9-a05286e62a40" ], "Date": [ - "Fri, 12 Apr 2019 16:43:03 GMT" + "Tue, 16 Apr 2019 17:01:05 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5794,21 +5800,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "692fe3f7-ec48-4085-b3d4-ba1776d45b38" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5831,16 +5834,16 @@ "keep-alive" ], "client-request-id": [ - "0c3056e6-5d42-11e9-9cea-44032c851686" + "3aeda2ec-6069-11e9-9e5b-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:06 GMT" + "Tue, 16 Apr 2019 17:01:08 GMT" ], "Authorization": [ - "SharedKey sdktest2:E3P4HhZ0BFvuSB2oRZzc097oPPo0DMopENiPaTnBNMM=" + "SharedKey sdktest2:y0C2EYP7lbIeGaQu5xjF7jN9Nz7fWlvBBfMaL+hksys=" ] } }, @@ -5850,17 +5853,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "83916697-35b8-4061-a927-ee4e74f6c3ba" ], "Date": [ - "Fri, 12 Apr 2019 16:43:06 GMT" + "Tue, 16 Apr 2019 17:01:08 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5868,21 +5874,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "9b8b0fc9-ed06-4984-bc80-cc2c9ac3f9b7" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5905,16 +5908,16 @@ "keep-alive" ], "client-request-id": [ - "0e19e70c-5d42-11e9-a1e1-44032c851686" + "3cd73c22-6069-11e9-ac53-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:09 GMT" + "Tue, 16 Apr 2019 17:01:12 GMT" ], "Authorization": [ - "SharedKey sdktest2:G6kkRT7qM3lGl4hY7+CeEv6/E87vBS5GapVLjyUl/u8=" + "SharedKey sdktest2:XUbGufsLVIv0Fhgnbg9hAnk+Sa/rG7hedhYdzjTp0ks=" ] } }, @@ -5924,17 +5927,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "4101cb47-20ef-47b2-bac6-94d082f9af2d" ], "Date": [ - "Fri, 12 Apr 2019 16:43:09 GMT" + "Tue, 16 Apr 2019 17:01:12 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -5942,21 +5948,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "321bf956-5379-4d52-ab30-a82dcd7ec949" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -5979,16 +5982,16 @@ "keep-alive" ], "client-request-id": [ - "10029118-5d42-11e9-a686-44032c851686" + "3ec070fa-6069-11e9-8985-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:12 GMT" + "Tue, 16 Apr 2019 17:01:15 GMT" ], "Authorization": [ - "SharedKey sdktest2:p5YHe3SgtWtbboWNyg0zqnA5+eBn1V2rphgLNQZ2N/4=" + "SharedKey sdktest2:YjbIcCOdMrMOT0PvrvooPu7/m7HyqqNMuBzE6K5xfkU=" ] } }, @@ -5998,17 +6001,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "3bdb7a9c-772f-46ea-8829-765a38e857f8" ], "Date": [ - "Fri, 12 Apr 2019 16:43:13 GMT" + "Tue, 16 Apr 2019 17:01:15 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6016,21 +6022,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "c528cadb-0302-44d2-8bc0-261e49131d64" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6053,16 +6056,16 @@ "keep-alive" ], "client-request-id": [ - "11e97a68-5d42-11e9-9bd4-44032c851686" + "40a824b8-6069-11e9-b1d3-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:16 GMT" + "Tue, 16 Apr 2019 17:01:18 GMT" ], "Authorization": [ - "SharedKey sdktest2:s/GFEq0MblqsHWGYzhayiaVM5aDJhANvsM8iqWPpEoo=" + "SharedKey sdktest2:/g7d6w9nXWLLlWdxyBPigs46pdKRLzQJS3I5WT79ato=" ] } }, @@ -6072,17 +6075,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "cc89eb2f-cb4d-4a81-b584-72cf99590674" ], "Date": [ - "Fri, 12 Apr 2019 16:43:16 GMT" + "Tue, 16 Apr 2019 17:01:17 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6090,21 +6096,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "84ee3f7d-d215-41d5-be01-281dad39df8a" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6127,16 +6130,16 @@ "keep-alive" ], "client-request-id": [ - "13cea482-5d42-11e9-8b86-44032c851686" + "4291da02-6069-11e9-9452-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:19 GMT" + "Tue, 16 Apr 2019 17:01:21 GMT" ], "Authorization": [ - "SharedKey sdktest2:VCshcJZsdgtLjwX6QiaJnnSlH3ZpZzEP7SyZfkdetkk=" + "SharedKey sdktest2:oRlDv4IQ2bFnZh2Ypp4Hdty9q3ThlGC/Mzrp8seOU28=" ] } }, @@ -6146,17 +6149,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "c3b4bf14-c7c6-41e6-b074-608c7ba110b4" ], "Date": [ - "Fri, 12 Apr 2019 16:43:19 GMT" + "Tue, 16 Apr 2019 17:01:21 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6164,21 +6170,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "4a61eb9e-ea6b-453d-810e-a581dc63c570" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6201,16 +6204,16 @@ "keep-alive" ], "client-request-id": [ - "15b39d00-5d42-11e9-99a2-44032c851686" + "4484886e-6069-11e9-a1cb-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:22 GMT" + "Tue, 16 Apr 2019 17:01:24 GMT" ], "Authorization": [ - "SharedKey sdktest2:+VpuMCKpNBdgrCov199mzwmyRLUYmA9IwzNOGRfaDgw=" + "SharedKey sdktest2:vduk+eKzKvmrSNu0sB6gxu/6fjiNnZWIake20QzbuEY=" ] } }, @@ -6220,17 +6223,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "6a88e3ca-5b25-4cd2-acac-f60f96f23b55" ], "Date": [ - "Fri, 12 Apr 2019 16:43:22 GMT" + "Tue, 16 Apr 2019 17:01:25 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6238,21 +6244,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "a2f9d208-037f-496c-98c4-cadd6f8edbfd" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6275,16 +6278,16 @@ "keep-alive" ], "client-request-id": [ - "17a01a1a-5d42-11e9-a0c1-44032c851686" + "466f60c0-6069-11e9-8c5c-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:25 GMT" + "Tue, 16 Apr 2019 17:01:28 GMT" ], "Authorization": [ - "SharedKey sdktest2:zm2aZoSxySeRY+dISxCounGr2ccWLuxDr3hx0hJ3db8=" + "SharedKey sdktest2:CMSyBrOH2RFMFgEoDScGe9JEoWQ4x7nj8p6pOWATymM=" ] } }, @@ -6294,17 +6297,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "837c0ce7-8efc-4003-933c-0ffca553856e" ], "Date": [ - "Fri, 12 Apr 2019 16:43:25 GMT" + "Tue, 16 Apr 2019 17:01:28 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6312,21 +6318,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "91700e29-ebf3-4ec0-a8bb-5e2831e83d83" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, @@ -6349,16 +6352,16 @@ "keep-alive" ], "client-request-id": [ - "19890788-5d42-11e9-b15c-44032c851686" + "485baac6-6069-11e9-9cc1-44032c851686" ], "accept-language": [ "en-US" ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:28 GMT" + "Tue, 16 Apr 2019 17:01:31 GMT" ], "Authorization": [ - "SharedKey sdktest2:pHHvs2Sy46yENZUCY31hXcPxg+iEfaGRzA/4LQMksXk=" + "SharedKey sdktest2:dh+i5DHkzWlFLiqWZpKd+c0KXufd+POQsvg41lMWAB4=" ] } }, @@ -6368,17 +6371,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65CFD1231F" + "request-id": [ + "0bd5e3a8-cd1b-41ec-ba01-896b93737c03" ], "Date": [ - "Fri, 12 Apr 2019 16:43:28 GMT" + "Tue, 16 Apr 2019 17:01:31 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:42:11 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6386,27 +6392,24 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "ab7992a8-e7e6-4726-afa6-e3e0b2c8e727" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" - ] - }, + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ] + }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6BF65CFD1231F\",\"lastModified\":\"2019-04-12T16:42:11.8695711Z\",\"creationTime\":\"2019-04-12T16:42:11.8695711Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-12T16:42:11.8695711Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-12T16:43:28.5941813Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "DELETE", + "method": "GET", "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { @@ -6423,63 +6426,69 @@ "keep-alive" ], "client-request-id": [ - "19a549a2-5d42-11e9-94e8-44032c851686" + "4a46faee-6069-11e9-a2be-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "0" - ], "ocp-date": [ - "Fri, 12 Apr 2019 16:43:29 GMT" + "Tue, 16 Apr 2019 17:01:34 GMT" ], "Authorization": [ - "SharedKey sdktest2:7/uokf71N5MBmaYa0SNp2yZO6pEssR5cYIPtAcgE2nQ=" + "SharedKey sdktest2:DeQ20Jxq/03VUzgjksVSscAmmXjKVVyLLnKrvmF7oAQ=" ] } }, "response": { "status": { - "code": 202, - "message": "Accepted" + "code": 200, + "message": "OK" }, "headers": { + "request-id": [ + "bb36849b-8d34-4d28-83fb-d02f1e3cc3c1" + ], "Date": [ - "Fri, 12 Apr 2019 16:43:28 GMT" + "Tue, 16 Apr 2019 17:01:34 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "DataServiceVersion": [ "3.0" ], - "request-id": [ - "3b4aec38-feb6-431f-91c9-d6fb85b119eb" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -6490,17 +6499,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "19ef989c-5d42-11e9-85f7-44032c851686" + "client-request-id": [ + "4c3325b4-6069-11e9-aacc-44032c851686" ], "accept-language": [ "en-US" + ], + "ocp-date": [ + "Tue, 16 Apr 2019 17:01:37 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:HBRV6Q2GIHJPydVM0dtleLllf+wRxRiE5yLQhbol3fA=" ] } }, @@ -6510,29 +6519,26 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" + "request-id": [ + "7ff6c03a-64bc-413f-a3f7-14ebd11c2a1d" ], "Date": [ - "Fri, 12 Apr 2019 16:43:29 GMT" + "Tue, 16 Apr 2019 17:01:37 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ - "no-cache" + "Last-Modified": [ + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Vary": [ - "Accept-Encoding" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" @@ -6540,23 +6546,23 @@ "X-Content-Type-Options": [ "nosniff" ], - "content-length": [ - "686" + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -6567,20 +6573,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "1a17461e-5d42-11e9-a3d2-44032c851686" + "client-request-id": [ + "4e1b93d4-6069-11e9-bb94-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "0" + "ocp-date": [ + "Tue, 16 Apr 2019 17:01:40 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:rTUzO27h01j8M9KktJJkA1Xt3sEFN/ud1BCVKLqfQVU=" ] } }, @@ -6590,32 +6593,26 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" + "request-id": [ + "8538b9bf-8e5d-40e6-9c32-870570db10de" ], "Date": [ - "Fri, 12 Apr 2019 16:43:29 GMT" + "Tue, 16 Apr 2019 17:01:40 GMT" ], "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ - "no-cache" + "Last-Modified": [ + "Tue, 16 Apr 2019 17:00:14 GMT" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json" - ], - "Expires": [ - "-1" - ], - "Vary": [ - "Accept-Encoding" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" @@ -6623,20 +6620,20 @@ "X-Content-Type-Options": [ "nosniff" ], - "content-length": [ - "288" + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-08-01.7.0&timeout=30", - "body": "{\"id\": \"job123\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"pool123\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\"}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -6650,49 +6647,40 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "1a3a3b22-5d42-11e9-a829-44032c851686" + "50125a5c-6069-11e9-aa40-44032c851686" ], "accept-language": [ "en-US" ], - "return-client-request-id": [ - "false" + "ocp-date": [ + "Tue, 16 Apr 2019 17:01:44 GMT" ], - "Content-Length": [ - "428" + "Authorization": [ + "SharedKey sdktest2:PNB5VzRzMicxbstJhm8NiC40V0BxKE7kBCj6SFgb2Xs=" ] } }, "response": { "status": { - "code": 201, - "message": "Created" + "code": 200, + "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF65FF07B013" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "request-id": [ + "2a46784d-4a14-48ea-9aa7-4f7b4a748886" ], "Date": [ - "Fri, 12 Apr 2019 16:43:31 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Tue, 16 Apr 2019 17:01:44 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:43:31 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6700,26 +6688,26 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "91e9416c-9149-4d09-89b5-5d58d549fab3" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "POST", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123/addtaskcollection?api-version=2018-08-01.7.0", - "body": "{\"value\": [{\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat {fileName}'\", \"resourceFiles\": [{\"blobSource\": \"https://testacct.blob.core.windows.net/\", \"filePath\": \"location\"}]}]}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -6733,20 +6721,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "1ae4ae24-5d42-11e9-a57a-44032c851686" + "520352c2-6069-11e9-b811-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "174" + "ocp-date": [ + "Tue, 16 Apr 2019 17:01:47 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:M3BugpBZTjlV+HvpH/Z4DwPmcuaX3w5iYBLdpHiOr+M=" ] } }, @@ -6756,41 +6741,47 @@ "message": "OK" }, "headers": { + "request-id": [ + "c6b6ac75-5735-4b1d-9bd7-da2d45169acb" + ], "Date": [ - "Fri, 12 Apr 2019 16:43:31 GMT" + "Tue, 16 Apr 2019 17:01:47 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "f92aaa6e-b4d5-489c-b515-ee1a450d5425" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BF65FF79435F\",\"lastModified\":\"2019-04-12T16:43:31.8243167Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"resizing\",\"allocationStateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":0,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "PATCH", - "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123?api-version=2018-08-01.7.0", - "body": "{\"onAllTasksComplete\": \"terminatejob\"}", + "method": "GET", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", + "body": null, "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -6804,20 +6795,17 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], "client-request-id": [ - "1b6245f8-5d42-11e9-8ec1-44032c851686" + "53ec5070-6069-11e9-b5e6-44032c851686" ], "accept-language": [ "en-US" ], - "Content-Length": [ - "38" + "ocp-date": [ + "Tue, 16 Apr 2019 17:01:50 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:BfJkkfXykkhyJJnxuXJjhVwg/5dfgC1G/9qL1EUtX00=" ] } }, @@ -6827,20 +6815,20 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF660056C96D" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" + "request-id": [ + "ef4338a4-05c8-4c57-bdde-456a3188bef7" ], "Date": [ - "Fri, 12 Apr 2019 16:43:33 GMT" + "Tue, 16 Apr 2019 17:01:50 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:43:33 GMT" + "Tue, 16 Apr 2019 17:00:14 GMT" + ], + "ETag": [ + "0x8D6C28CFE8C1FD7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -6848,29 +6836,29 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "77f12f25-cb18-4c74-839f-956e447dbfdc" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#pools/@Element\",\"id\":\"blobsource\",\"displayName\":\"Blender Ubuntu standard pool\",\"url\":\"https://sdktest2.westcentralus.batch.azure.com/pools/blobsource\",\"eTag\":\"0x8D6C28CFE8C1FD7\",\"lastModified\":\"2019-04-16T17:00:14.1309911Z\",\"creationTime\":\"2019-04-16T17:00:14.1309911Z\",\"state\":\"active\",\"stateTransitionTime\":\"2019-04-16T17:00:14.1309911Z\",\"allocationState\":\"steady\",\"allocationStateTransitionTime\":\"2019-04-16T17:01:50.8744351Z\",\"vmSize\":\"standard_d1_v2\",\"resizeTimeout\":\"PT15M\",\"currentDedicatedNodes\":1,\"targetDedicatedNodes\":1,\"currentLowPriorityNodes\":0,\"targetLowPriorityNodes\":0,\"enableAutoScale\":false,\"enableInterNodeCommunication\":false,\"startTask\":{\r\n \"commandLine\":\"/bin/bash -c 'set -e; set -o pipefail; sleep 1; wait'\",\"resourceFiles\":[\r\n {\r\n \"httpUrl\":\"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\"filePath\":\"setup-linux-pool.sh\"\r\n }\r\n ],\"userIdentity\":{\r\n \"autoUser\":{\r\n \"scope\":\"pool\",\"elevationLevel\":\"admin\"\r\n }\r\n },\"maxTaskRetryCount\":0,\"waitForSuccess\":true\r\n },\"maxTasksPerNode\":1,\"taskSchedulingPolicy\":{\r\n \"nodeFillType\":\"Spread\"\r\n },\"virtualMachineConfiguration\":{\r\n \"imageReference\":{\r\n \"publisher\":\"Canonical\",\"offer\":\"UbuntuServer\",\"sku\":\"16.04.0-LTS\",\"version\":\"latest\"\r\n },\"nodeAgentSKUId\":\"batch.node.ubuntu 16.04\"\r\n }\r\n}" } } }, { "request": { - "method": "GET", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "method": "DELETE", + "uri": "https://sdktest2.westcentralus.batch.azure.com/pools/blobsource?api-version=2018-12-01.8.0", "body": null, "headers": { "User-Agent": [ - "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" ], "Accept-Encoding": [ "gzip, deflate" @@ -6881,73 +6869,64 @@ "Connection": [ "keep-alive" ], - "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "x-ms-client-request-id": [ - "1c59b8f8-5d42-11e9-bcfb-44032c851686" + "client-request-id": [ + "540b5234-6069-11e9-81ec-44032c851686" ], "accept-language": [ "en-US" + ], + "Content-Length": [ + "0" + ], + "ocp-date": [ + "Tue, 16 Apr 2019 17:01:50 GMT" + ], + "Authorization": [ + "SharedKey sdktest2:Cd3Tcjd4tXUMaq+5f6V74PmRz6M+styoIZs8CwHcOdA=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { - "Pragma": [ - "no-cache" + "request-id": [ + "1b0f1b36-21ba-4d80-b049-ff5244910d8f" ], "Date": [ - "Fri, 12 Apr 2019 16:43:33 GMT" + "Tue, 16 Apr 2019 17:01:51 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ - "no-cache" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Vary": [ - "Accept-Encoding" + "DataServiceVersion": [ + "3.0" ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" - ], - "content-length": [ - "686" ] }, "body": { - "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + "string": "" } } }, { "request": { - "method": "POST", - "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", "body": null, "headers": { "User-Agent": [ - "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" ], "Accept-Encoding": [ "gzip, deflate" @@ -6959,17 +6938,1318 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "1c8d4540-5d42-11e9-8bcb-44032c851686" + "544b1810-6069-11e9-84d4-44032c851686" ], "accept-language": [ "en-US" - ], + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:51 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "547c6948-6069-11e9-bd8e-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:51 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Content-Type": [ + "application/json" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs?api-version=2018-08-01.7.0&timeout=30", + "body": "{\"id\": \"job123\", \"poolInfo\": {\"autoPoolSpecification\": {\"autoPoolIdPrefix\": \"pool123\", \"poolLifetimeOption\": \"job\", \"keepAlive\": false, \"pool\": {\"vmSize\": \"STANDARD_D1_V2\", \"virtualMachineConfiguration\": {\"imageReference\": {\"publisher\": \"Canonical\", \"offer\": \"UbuntuServer\", \"sku\": \"16.04.0-LTS\", \"version\": \"latest\"}, \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"}, \"targetDedicatedNodes\": 1}}}, \"onAllTasksComplete\": \"noaction\"}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "5498e668-6069-11e9-a936-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "return-client-request-id": [ + "false" + ], + "Content-Length": [ + "428" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "request-id": [ + "773c18ce-8f2b-481a-8e86-9312161c7fdd" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:53 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:53 GMT" + ], + "ETag": [ + "0x8D6C28D398FD143" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123/addtaskcollection?api-version=2018-08-01.7.0", + "body": "{\"value\": [{\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat {fileName}'\", \"resourceFiles\": [{\"blobSource\": \"https://testacct.blob.core.windows.net/\", \"filePath\": \"location\"}]}]}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "55620fd0-6069-11e9-bcf8-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "174" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "request-id": [ + "bbdc3eaf-3ddc-4411-a6b8-07ac68bacd2a" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:53 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" + ] + }, + "body": { + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6C28D39FD76E8\",\"lastModified\":\"2019-04-16T17:01:53.8593512Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/job123/tasks/1\"\r\n }\r\n ]\r\n}" + } + } + }, + { + "request": { + "method": "PATCH", + "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/job123?api-version=2018-08-01.7.0", + "body": "{\"onAllTasksComplete\": \"terminatejob\"}", + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "client-request-id": [ + "55d0bcae-6069-11e9-afc1-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "38" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "request-id": [ + "307b3253-b753-423d-b321-2c756c93b09b" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:54 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:54 GMT" + ], + "ETag": [ + "0x8D6C28D3A6A185D" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job123" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "DataServiceVersion": [ + "3.0" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Batch/batchAccounts?api-version=2018-12-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-batch/6.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "565b5e9c-6069-11e9-99a6-44032c851686" + ], + "accept-language": [ + "en-US" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:54 GMT" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "content-length": [ + "686" + ] + }, + "body": { + "string": "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Batch/batchAccounts/sdktest2\",\"name\":\"sdktest2\",\"type\":\"Microsoft.Batch/batchAccounts\",\"location\":\"westcentralus\",\"properties\":{\"accountEndpoint\":\"sdktest2.westcentralus.batch.azure.com\",\"provisioningState\":\"Succeeded\",\"dedicatedCoreQuota\":20,\"lowPriorityCoreQuota\":100,\"poolQuota\":100,\"activeJobAndJobScheduleQuota\":300,\"autoStorage\":{\"storageAccountId\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2\",\"lastKeySync\":\"2019-02-28T00:16:43.578203Z\"},\"poolAllocationMode\":\"BatchService\"}}]}" + } + } + }, + { + "request": { + "method": "POST", + "uri": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sdktest/providers/Microsoft.Storage/storageAccounts/sdkteststore2/listKeys?api-version=2018-02-01", + "body": null, + "headers": { + "User-Agent": [ + "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-mgmt-storage/2.0.0 Azure-SDK-For-Python" + ], + "Accept-Encoding": [ + "gzip, deflate" + ], + "Accept": [ + "application/json" + ], + "Connection": [ + "keep-alive" + ], + "Authorization": [ + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "x-ms-client-request-id": [ + "568c4014-6069-11e9-9b0e-44032c851686" + ], + "accept-language": [ + "en-US" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:54 GMT" + ], + "Server": [ + "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], + "Cache-Control": [ + "no-cache" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "Vary": [ + "Accept-Encoding" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Content-Type": [ + "application/json" + ], + "content-length": [ + "288" + ] + }, + "body": { + "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "56c1ea08-6069-11e9-af9e-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:MXV0+v6IIP8JCZhAseQLhmujBF/3jTkH7p4uJDz0EIM=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "ETag": [ + "\"0x8D6C28D3B140035\"" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "56e72138-6069-11e9-b315-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:rcQ3us9Go4xYrCl1rkoDzXekwmQiB3ADSbFj8h/JZuo=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "x-ms-error-code": [ + "BlobNotFound" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd249-101e-00b4-2d76-f46802000000\nTime:2019-04-16T17:01:55.7688265Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json", + "body": "{\r\n \"templateMetadata\": {\r\n \"description\": \"A test application template that makes use of multiple parameters after properly declaring them.\"\r\n },\r\n \"jobManagerTask\": {\r\n \"id\":\"mytask1\",\r\n \"commandLine\":\"myprogram.exe\",\r\n \"resourceFiles\": [ {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"myprogram.exe\"\r\n },\r\n {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/test.txt?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"[parameters('blobName')]\"\r\n } ],\r\n \"environmentSettings\": [ {\r\n \"name\":\"myvariable\",\r\n \"value\":\"myvalue\"\r\n } ],\r\n \"constraints\": {\r\n \"maxWallClockTime\":\"PT1H\",\r\n \"maxTaskRetryCount\":0,\r\n \"retentionTime\":\"PT1H\"\r\n },\r\n \"killJobOnCompletion\":false,\r\n \"runElevated\":false,\r\n \"runExclusive\":true\r\n },\r\n \"metadata\": [ {\r\n \"name\":\"myproperty\",\r\n \"value\":\"[parameters('keyValue')]\"\r\n } ],\r\n \"parameters\": {\r\n \"blobName\" : {\r\n \"type\": \"string\"\r\n },\r\n \"keyValue\" : {\r\n \"type\": \"string\"\r\n }\r\n }\r\n}", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.0615716" + ], + "Content-MD5": [ + "GhvIqLxdhgZSxhi6CdQjLQ==" + ], + "Content-Length": [ + "1377" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "56f2d01c-6069-11e9-a3b4-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Wf8pKp5WhXxlIzMg3MGNnwjzXgXjqAqbGdj3crW3AGQ=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "ETag": [ + "\"0x8D6C28D3B287392\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "GhvIqLxdhgZSxhi6CdQjLQ==" + ], + "Content-Length": [ + "0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "56fd647a-6069-11e9-9301-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:s5OHgOByKE8b2KUD6sD9rOBShYJRYJw9mBq+M463tDk=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd281-101e-00b4-5f76-f46802000000\nTime:2019-04-16T17:01:55.8879106Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "5704c162-6069-11e9-b131-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:e6c2vQNqhq56q9yoKGKL8LvJOaTjJZDa8L2Xe/JKW1o=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "x-ms-error-code": [ + "BlobNotFound" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd293-101e-00b4-6f76-f46802000000\nTime:2019-04-16T17:01:55.9339433Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json", + "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies the prohibited property 'applicationTemplate'.\"\r\n },\r\n \"applicationTemplateInfo\": {\r\n \"filePath\" : \"sample\\\\path\"\r\n }\r\n}\r\n\r\n\r\n", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.252081" + ], + "Content-MD5": [ + "xbCZcjm1pOMcwR8Td2yo9w==" + ], + "Content-Length": [ + "219" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "570c258c-6069-11e9-86b8-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:iVbtnfxx+xJdQfqZVwOfLhEXy0ltrGgLYHT4skt4JM8=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:55 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "ETag": [ + "\"0x8D6C28D3B44DA4D\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "xbCZcjm1pOMcwR8Td2yo9w==" + ], + "Content-Length": [ + "0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "571d219c-6069-11e9-bb04-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:GAWbz0O87OAOiu5PXyjSz7hxrFRZJju1kVDXqbB9PHw=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd2e6-101e-00b4-3e76-f46802000000\nTime:2019-04-16T17:01:56.1070662Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "57265eba-6069-11e9-a750-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:xLRWTym8QwbONe7roBeFXGDjFxdOYXbcbBuwIFoBumw=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "x-ms-error-code": [ + "BlobNotFound" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd2fd-101e-00b4-5476-f46802000000\nTime:2019-04-16T17:01:56.1721124Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json", + "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies prohibited property 'id'.\"\r\n },\r\n \"id\" : \"jobid\"\r\n}\r\n\r\n\r\n", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.252081" + ], + "Content-MD5": [ + "HBCHz/rBYi8V9ILMKx0o+g==" + ], + "Content-Length": [ + "146" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "57303436-6069-11e9-b351-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:NWZG0jZRI/eO17Nidt0fD/sAjxE2S7IGGCzHlWdcTik=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "ETag": [ + "\"0x8D6C28D3B664B0A\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "HBCHz/rBYi8V9ILMKx0o+g==" + ], + "Content-Length": [ + "0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "573899e8-6069-11e9-92e4-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:0/8S8lmVBuNxUfU+ir8cbW9qNBVJDZiMTDBo3MbyoN4=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd337-101e-00b4-0e76-f46802000000\nTime:2019-04-16T17:01:56.2741853Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "573fc5e8-6069-11e9-9ed3-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:a3PgJPoMqwgQUEY6KBYxUc+ogdnqkfPE1PeZZdmn4ho=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "x-ms-error-code": [ + "BlobNotFound" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd356-101e-00b4-2d76-f46802000000\nTime:2019-04-16T17:01:56.3232201Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json", + "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies prohibited property 'poolInfo'.\"\r\n },\r\n \"poolInfo\": {\r\n \"poolId\" : \"swimming\"\r\n } \r\n}\r\n\r\n\r\n", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.253081" + ], + "Content-MD5": [ + "PFiBkLMhFseOyDvKgJXaRA==" + ], + "Content-Length": [ + "187" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "57474010-6069-11e9-8ee7-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:qZo8aIzYdYKgnPeNp11bFMyH6JULswrSi7AbLQXHjSo=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "ETag": [ + "\"0x8D6C28D3B7CBD42\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "PFiBkLMhFseOyDvKgJXaRA==" + ], + "Content-Length": [ + "0" + ] + }, + "body": { + "string": "" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "574f2dc6-6069-11e9-aff8-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:9Lhdqp4gPrbr7nMWsyg4WgtdvSlr6x2VTyewdgDM0Uc=" + ], "Content-Length": [ "0" ] @@ -6977,49 +8257,161 @@ }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified container already exists." }, "headers": { - "Pragma": [ - "no-cache" + "x-ms-error-code": [ + "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:33 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ - "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ - "no-cache" + "x-ms-version": [ + "2017-07-29" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "Content-Length": [ + "230" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd398-101e-00b4-6e76-f46802000000\nTime:2019-04-16T17:01:56.4222900Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "57564b4a-6069-11e9-8953-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Cp5g+zExabLMQt7SRhhaqqSIK1r9dSJpP2QJCvqsrjA=" + ] + } + }, + "response": { + "status": { + "code": 404, + "message": "The specified blob does not exist." + }, + "headers": { + "x-ms-error-code": [ + "BlobNotFound" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "215" ], "Content-Type": [ - "application/json" + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd3cf-101e-00b4-1d76-f46802000000\nTime:2019-04-16T17:01:56.4733266Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json", + "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies the prohibited property 'priority'.\"\r\n },\r\n \"displayName\": \"Static Application Template\",\r\n \"priority\": 100\r\n}\r\n\r\n\r\n", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" ], - "Expires": [ - "-1" + "Connection": [ + "keep-alive" ], - "Vary": [ - "Accept-Encoding" + "x-ms-blob-type": [ + "BlockBlob" ], - "Transfer-Encoding": [ - "chunked" + "x-ms-meta-lastmodified": [ + "1524153754.253081" ], - "X-Content-Type-Options": [ - "nosniff" + "Content-MD5": [ + "IvRrVHIc/lLy/wSkE22LeA==" ], - "content-length": [ - "288" + "Content-Length": [ + "206" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "575e28b8-6069-11e9-9c61-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Jdp1JbpVmXn7yzJhHbjH+Xk0VAqUjj+lyLmqMEDWACo=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "ETag": [ + "\"0x8D6C28D3B93A4C4\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "IvRrVHIc/lLy/wSkE22LeA==" + ], + "Content-Length": [ + "0" ] }, "body": { - "string": "{\"keys\":[{\"keyName\":\"key1\",\"value\":\"abc==\",\"permissions\":\"FULL\"},{\"keyName\":\"key2\",\"value\":\"def==\",\"permissions\":\"FULL\"}]}" + "string": "" } } }, @@ -7039,13 +8431,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1cbfea9c-5d42-11e9-ac7c-44032c851686" + "5765e2d8-6069-11e9-9b29-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:XPhccoGa4nBvjRirVx6OXEQ7k13zwF8gLG79uTpjiGA=" + "SharedKey sdkteststore2:bAvSqPr3hDolI8tUryl4T9/aWMHJLFiFupbykHisQ0c=" ], "Content-Length": [ "0" @@ -7062,7 +8454,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -7078,14 +8470,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2143e3-d01e-00cf-104e-f103b2000000\nTime:2019-04-12T16:43:34.4178844Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd413-101e-00b4-6076-f46802000000\nTime:2019-04-16T17:01:56.5713958Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -7098,42 +8490,113 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1ce15878-5d42-11e9-9f25-44032c851686" + "576d0ec6-6069-11e9-8f1f-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:e6K9zI+8T4ZLEcAAZa3Yp7rr/Bn0GaW6dN90podVmXM=" + "SharedKey sdkteststore2:ajWOrEcsR12KH+h8wU0pmk1JUNSGzrBxTG7J1wq0PK4=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649B3E0A69\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:34 GMT" + "x-ms-version": [ + "2017-07-29" ], "Content-Length": [ - "0" + "215" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd435-101e-00b4-0276-f46802000000\nTime:2019-04-16T17:01:56.6204315Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json", + "body": "{\r\n \"templateMetadata\": {\r\n \"description\": \"A test application template that has no parameters and has exactly the same result every time.\"\r\n },\r\n \"jobManagerTask\": {\r\n \"id\": \"jobManager\",\r\n \"displayName\": \"jobManagerDisplay\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"filePath\"\r\n }\r\n ],\r\n \"environmentSettings\": [\r\n {\r\n \"name\": \"name1\",\r\n \"value\": \"value1\"\r\n },\r\n {\r\n \"name\": \"name2\",\r\n \"value\": \"value2\"\r\n }\r\n ],\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"PT1H\"\r\n },\r\n \"killJobOnCompletion\": false,\r\n \"runElevated\": false\r\n }\r\n}\r\n\r\n\r\n", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.0625725" + ], + "Content-MD5": [ + "27HmU8S9AEeu90aG5z1x1A==" + ], + "Content-Length": [ + "740" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.0615716" + "x-ms-client-request-id": [ + "577488d4-6069-11e9-900e-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Ylvqz6Gh/H3j+Dv/pitowewaZ/BtfISzgfhu5uKG0Sk=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "ETag": [ + "\"0x8D6C28D3BA9EFEA\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "27HmU8S9AEeu90aG5z1x1A==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -7157,30 +8620,86 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1ce8c966-5d42-11e9-9db7-44032c851686" + "577c50fa-6069-11e9-b3e9-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:Ynfh63FqG5jNOy4hzZkrkLFLdot8HbmOsVTO0toGm2g=" + ], + "Content-Length": [ + "0" + ] + } + }, + "response": { + "status": { + "code": 409, + "message": "The specified container already exists." + }, + "headers": { + "x-ms-error-code": [ + "ContainerAlreadyExists" + ], + "Date": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd48d-101e-00b4-5976-f46802000000\nTime:2019-04-16T17:01:56.7174995Z" + } + } + }, + { + "request": { + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?comp=metadata", + "body": null, + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-version": [ + "2017-07-29" + ], + "x-ms-client-request-id": [ + "578355dc-6069-11e9-9ce7-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:22hgQ2MfNPLvThGBfbJIcAFzBZfRe4vG0iKElWAztf8=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:DnJzzQC3BKgHrinpkrlPmC7tY6CTKF/ZG3wU7YXaFTc=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 404, + "message": "The specified blob does not exist." }, "headers": { "x-ms-error-code": [ - "ContainerAlreadyExists" + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -7189,22 +8708,22 @@ "2017-07-29" ], "Content-Length": [ - "230" + "215" ], "Content-Type": [ "application/xml" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21441a-d01e-00cf-3f4e-f103b2000000\nTime:2019-04-12T16:43:34.5129524Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd4b0-101e-00b4-7b76-f46802000000\nTime:2019-04-16T17:01:56.7665347Z" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?comp=metadata", - "body": null, + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json", + "body": "{\r\n \"templateInfo\": {\r\n \"description\": \"A test application template that specifies the unsupported properties'fluxCapacitorModel' and 'vehicleMarque'.\"\r\n },\r\n \"fluxCapacitorModel\": \"DocBrown55\",\r\n \"vehicleMarque\": \"deLorean\"\r\n}\r\n\r\n\r\n", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -7212,46 +8731,61 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2540834" + ], + "Content-MD5": [ + "eSn7zZA04to5Rccq3nxw1A==" + ], + "Content-Length": [ + "240" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1cefed1a-5d42-11e9-8bcc-44032c851686" + "578af7e8-6069-11e9-9190-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:xBMsV2+frg7QYIdn4+eh3u71qpJXhURRPggZb0kQSkc=" + "SharedKey sdkteststore2:m10/BFvnBjKh+7tSWRKGSyXF7FYIE+KguO70LAno2DY=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "ETag": [ - "\"0x8D6BF649B542E8B\"" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], - "Content-Length": [ - "0" + "ETag": [ + "\"0x8D6C28D3BC0893E\"" + ], + "x-ms-request-server-encrypted": [ + "true" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.252081" + "Content-MD5": [ + "eSn7zZA04to5Rccq3nxw1A==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -7275,13 +8809,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1cf7732c-5d42-11e9-87ad-44032c851686" + "5792e63a-6069-11e9-8d93-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:dR765fTBaMXcbmyLVc5YB2tyFr/KOnG66CwNkT1nnpk=" + "SharedKey sdkteststore2:+AZ7Hir3nCYdwbHGjUuxowViKLmVk8POs0I7TFtt3nk=" ], "Content-Length": [ "0" @@ -7298,7 +8832,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -7314,14 +8848,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21443e-d01e-00cf-604e-f103b2000000\nTime:2019-04-12T16:43:34.6160253Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd4f2-101e-00b4-3776-f46802000000\nTime:2019-04-16T17:01:56.8646039Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -7334,54 +8868,51 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1cffb706-5d42-11e9-9874-44032c851686" + "5799ec58-6069-11e9-b044-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:LFB3mWJJpKZod0LxCr9VtNOVuUrA5DW32ai4xy6OCuE=" + "SharedKey sdkteststore2:/wkVx4TijO+TFjNaNJR9YkdyVOg7opWAGCyp548XdQw=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649B69410A\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:34 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.252081" + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd51b-101e-00b4-5f76-f46802000000\nTime:2019-04-16T17:01:56.9146394Z" } } }, { "request": { "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json", + "body": "{\r\n \"templateMetadata\": {\r\n \"description\": \"A test application template that declares a property with no specified type.\"\r\n },\r\n \"jobManagerTask\": {\r\n \"id\":\"mytask1\",\r\n \"commandLine\":\"myprogram.exe\",\r\n \"resourceFiles\": [ {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"myprogram.exe\"\r\n },\r\n {\r\n \"httpUrl\":\"http://mystorage1.blob.core.windows.net/scripts/test.txt?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d\",\r\n \"filePath\":\"[parameters('blobName')]\"\r\n } ],\r\n \"environmentSettings\": [ {\r\n \"name\":\"myvariable\",\r\n \"value\":\"myvalue\"\r\n } ],\r\n \"constraints\": {\r\n \"maxWallClockTime\":\"PT1H\",\r\n \"maxTaskRetryCount\":0,\r\n \"retentionTime\":\"PT1H\"\r\n },\r\n \"killJobOnCompletion\":false,\r\n \"runElevated\":false,\r\n \"runExclusive\":true\r\n },\r\n \"metadata\": [ {\r\n \"name\":\"myproperty\",\r\n \"value\":\"[parameters('keyValue')]\"\r\n } ],\r\n \"parameters\": {\r\n \"blobName\" : {\r\n \"defaultValue\": \"name\"\r\n },\r\n \"keyValue\" : {\r\n \"type\": \"string\"\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -7389,57 +8920,72 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.0829573" + ], + "Content-MD5": [ + "sWJuTwpMQ9cWToECYRCNiQ==" + ], + "Content-Length": [ + "1363" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d08680c-5d42-11e9-a5b1-44032c851686" + "57a1dbba-6069-11e9-90d9-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:/TXeoxiY5meJy+/EsTMWLi4FIItBRABKX6x4JCFFhLc=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:RsobeAL1F0L0tyXguL5Bc9Ei79GhRkqVHzNOiU26tXw=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 201, + "message": "Created" }, "headers": { - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:56 GMT" + ], + "ETag": [ + "\"0x8D6C28D3BD7BEED\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], - "Content-Length": [ - "230" + "Content-MD5": [ + "sWJuTwpMQ9cWToECYRCNiQ==" ], - "Content-Type": [ - "application/xml" + "Content-Length": [ + "0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214474-d01e-00cf-0f4e-f103b2000000\nTime:2019-04-12T16:43:34.7200993Z" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?comp=metadata", + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", "body": null, "headers": { "User-Agent": [ @@ -7452,53 +8998,53 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d0f855c-5d42-11e9-bf7f-44032c851686" + "57aa6764-6069-11e9-b3bf-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:kmCkbHTcTq0Y0nqVDwAWvHapaNbeKLtaMJIk3JAsx7c=" + "SharedKey sdkteststore2:rhHDRMxUQXjTDyhXdzG/czPtnrAjC4oIMTbtLkp1Ysk=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified container already exists." }, "headers": { - "ETag": [ - "\"0x8D6BF649B7EEFE7\"" + "x-ms-error-code": [ + "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:34 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.253081" + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd56e-101e-00b4-2c76-f46802000000\nTime:2019-04-16T17:01:57.0197140Z" } } }, { "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -7511,30 +9057,27 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d169550-5d42-11e9-9544-44032c851686" + "57b1e136-6069-11e9-909b-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:8vNTEKb/6an2Tp7YT4T3i6erDIdBv9xAp8XX4yQTXc8=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:ZJwhYYwwblLFBwMlyv4ZF2xcz3CAlmMSCVgQBYDGpM4=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 404, + "message": "The specified blob does not exist." }, "headers": { "x-ms-error-code": [ - "ContainerAlreadyExists" + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:56 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -7543,22 +9086,22 @@ "2017-07-29" ], "Content-Length": [ - "230" + "215" ], "Content-Type": [ "application/xml" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214495-d01e-00cf-2d4e-f103b2000000\nTime:2019-04-12T16:43:34.8131659Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd598-101e-00b4-5476-f46802000000\nTime:2019-04-16T17:01:57.0697500Z" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?comp=metadata", - "body": null, + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json", + "body": "{\r\n \"parameters\": {\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"helloworld-job3\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch job\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"helloworld-pool3\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"vmSize\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"STANDARD_D1_V2\",\r\n \"metadata\": {\r\n \"description\": \"The size of the virtual machines that run the application\"\r\n }\r\n },\r\n \"vmCount\": {\r\n \"type\": \"int\",\r\n \"defaultValue\": 1,\r\n \"metadata\": {\r\n \"description\": \"The number of virtual machines\"\r\n }\r\n },\r\n \"testData\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"in\",\r\n \"metadata\": {\r\n \"description\": \"The auto-storage group where the input data is stored\"\r\n }\r\n },\r\n \"outputData\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"output\",\r\n \"metadata\": {\r\n \"description\": \"The auto-storage group where the output data is uploaded\"\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"osType\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-12-01\",\r\n \"properties\": {\r\n \"id\": \"[parameters('jobId')]\",\r\n \"onAllTasksComplete\": \"terminateJob\",\r\n \"poolInfo\": {\r\n \"autoPoolSpecification\": {\r\n \"autoPoolIdPrefix\": \"[parameters('poolId')]\",\r\n \"poolLifetimeOption\": \"job\",\r\n \"keepAlive\": false,\r\n \"pool\": {\r\n \"vmSize\": \"[parameters('vmSize')]\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": \"[variables('osType')]\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"[parameters('vmCount')]\"\r\n }\r\n }\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskPerFile\",\r\n \"source\" : {\r\n \"fileGroup\" : \"[parameters('testData')]\"\r\n },\r\n \"repeatTask\": {\r\n \"commandLine\": \"/bin/bash -c 'cat {fileName}'\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\" : \"{url}\",\r\n \"filePath\" : \"{fileName}\"\r\n }\r\n ],\r\n \"outputFiles\": [\r\n {\r\n \"filePattern\": \"**/stdout.txt\",\r\n \"destination\": {\r\n \"autoStorage\": {\r\n \"path\": \"output-{fileName}\",\r\n \"fileGroup\": \"[parameters('outputData')]\"\r\n }\r\n },\r\n \"uploadOptions\": {\r\n \"uploadCondition\": \"TaskSuccess\"\r\n }\r\n }\r\n ]\r\n },\r\n \"mergeTask\" : {\r\n \"displayName\": \"myMergeTask\",\r\n \"commandLine\": \"/bin/bash -c 'ls'\",\r\n \"resourceFiles\": [\r\n {\r\n \"autoStorageContainerName\": \"fgrp-[parameters('outputData')]\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -7566,46 +9109,61 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1552419189.7367494" + ], + "Content-MD5": [ + "2ILRwlJk1kyfaTTP253tiA==" + ], + "Content-Length": [ + "4072" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d1dc386-5d42-11e9-b072-44032c851686" + "57b9d1b8-6069-11e9-a4e9-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:zpWVJ+sWmT7vXk63DnvpyY6lzjVAx5CR3CpNtmwH/Y0=" + "SharedKey sdkteststore2:3e1lKmwkbBwqgoIun30a1WeTU8L1igoEDRm0UCCHZ1U=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "ETag": [ - "\"0x8D6BF649B93DB4F\"" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], - "Content-Length": [ - "0" + "ETag": [ + "\"0x8D6C28D3BEF42CB\"" + ], + "x-ms-request-server-encrypted": [ + "true" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.253081" + "Content-MD5": [ + "2ILRwlJk1kyfaTTP253tiA==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -7629,13 +9187,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d250962-5d42-11e9-87dd-44032c851686" + "57c1a076-6069-11e9-8336-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:qC96WjOM15BiaSouaEP74rcGs8zvVZ89DLSASpuK14I=" + "SharedKey sdkteststore2:/6AHSyqq1Owv2/IqgXc9R19qwPUU0Qk7eAc5/hCsaBY=" ], "Content-Length": [ "0" @@ -7652,7 +9210,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -7668,14 +9226,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2144ad-d01e-00cf-404e-f103b2000000\nTime:2019-04-12T16:43:34.9082331Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd5e8-101e-00b4-1f76-f46802000000\nTime:2019-04-16T17:01:57.1718224Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -7688,42 +9246,113 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d2c5948-5d42-11e9-a259-44032c851686" + "57c8d62e-6069-11e9-9ac0-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Gt0CfE5FVcHj1S8yWDAQP+3NVrV4dR96gaC9dADHrf8=" + "SharedKey sdkteststore2:d3z9dZKheV9/wsO4NZuI55zYteiP06mMjMQ24qPOgQ4=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649BA93BFD\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:34 GMT" + "x-ms-version": [ + "2017-07-29" ], "Content-Length": [ - "0" + "215" + ], + "Content-Type": [ + "application/xml" + ] + }, + "body": { + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd60a-101e-00b4-4076-f46802000000\nTime:2019-04-16T17:01:57.2198565Z" + } + } + }, + { + "request": { + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json", + "body": "{\r\n \"jobId\": {\r\n \"value\": \"helloworld\"\r\n },\r\n \"poolId\": {\r\n \"value\": \"xplatTestPool\"\r\n },\r\n \"outputFileStorageUrl\": {\r\n \"value\": \"\"\r\n },\r\n \"taskStart\": {\r\n \"value\": 1\r\n },\r\n \"taskEnd\": {\r\n \"value\": 3\r\n } \r\n}", + "headers": { + "User-Agent": [ + "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" + ], + "Connection": [ + "keep-alive" + ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2550833" + ], + "Content-MD5": [ + "acLZykn1NMEO1oxenbC6dw==" + ], + "Content-Length": [ + "254" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.0625725" + "x-ms-client-request-id": [ + "57d02dda-6069-11e9-9389-44032c851686" + ], + "x-ms-date": [ + "Tue, 16 Apr 2019 17:01:57 GMT" + ], + "Authorization": [ + "SharedKey sdkteststore2:T6bjdu/ESPuIcsIu/2+5+ASPQrL1xtBgm8NrBYlRnLs=" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Tue, 16 Apr 2019 17:01:57 GMT" + ], + "Server": [ + "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" + ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:57 GMT" + ], + "ETag": [ + "\"0x8D6C28D3C05B508\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], + "x-ms-version": [ + "2017-07-29" + ], + "Content-MD5": [ + "acLZykn1NMEO1oxenbC6dw==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -7747,13 +9376,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d340afa-5d42-11e9-bdf9-44032c851686" + "57d80d28-6069-11e9-889e-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:PB8RGDMuzuebO5JREYAJ4uq7TT5e91Tmwli0+g8a3d8=" + "SharedKey sdkteststore2:tTS1IJlVm6Y9ZULJ8w90TWIPU4xn0X03+BFPsTdxZUM=" ], "Content-Length": [ "0" @@ -7770,7 +9399,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -7786,14 +9415,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2144cc-d01e-00cf-5c4e-f103b2000000\nTime:2019-04-12T16:43:35.0053030Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd63a-101e-00b4-6e76-f46802000000\nTime:2019-04-16T17:01:57.3219282Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -7806,54 +9435,51 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d3b267a-5d42-11e9-929a-44032c851686" + "57df997e-6069-11e9-8eff-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:62yHnctyVLZACTqoZt0f/UNTbiX0BP5ItXj9vEinxz8=" + "SharedKey sdkteststore2:SeN70J5RaK5ppwTUXaGJsMC+YYdhNYYZgcpBcaAxFv4=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649BBE4E7C\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.2540834" + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd660-101e-00b4-0f76-f46802000000\nTime:2019-04-16T17:01:57.3709631Z" } } }, { "request": { "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json", + "body": "{\r\n \"parameters\": {\r\n \"inputFileGroup\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"convert_data\",\r\n \"metadata\": {\r\n \"description\": \"The auto-storage group where the input data is stored\"\r\n }\r\n },\r\n \"outputFileStorageUrl\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The SAS URL for a container where outputs will be stored\"\r\n }\r\n },\r\n \"inputType\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"wav\",\r\n \"metadata\": {\r\n \"description\": \"The extension of the input data\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpeg-pool\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The id of Azure Batch job\"\r\n }\r\n },\r\n \"taskStart\": {\r\n \"type\": \"int\",\r\n \"metadata\": {\r\n \"description\": \"The sweep start parameter\"\r\n }\r\n },\r\n \"taskEnd\": {\r\n \"type\": \"int\",\r\n \"metadata\": {\r\n \"description\": \"The sweep end parameter\"\r\n }\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-12-01\",\r\n \"properties\": {\r\n \"id\": \"[parameters('jobId')]\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"PT5H\",\r\n \"maxTaskRetryCount\": 1\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"[parameters('poolId')]\"\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"parametricSweep\",\r\n \"parameterSets\": [\r\n {\r\n \"start\": \"[parameters('taskStart')]\",\r\n \"end\": \"[parameters('taskEnd')]\",\r\n \"step\": 1\r\n }\r\n ],\r\n \"repeatTask\": {\r\n \"commandLine\": \"ffmpeg -y -i sample{0}.[parameters('inputType')] -acodec libmp3lame output.mp3\",\r\n \"resourceFiles\": [\r\n {\r\n \"source\": { \r\n \"fileGroup\": \"[parameters('inputFileGroup')]\",\r\n \"prefix\": \"sample{0}.[parameters('inputType')]\"\r\n }\r\n }\r\n ],\r\n \"outputFiles\": [\r\n {\r\n \"filePattern\": \"output.mp3\",\r\n \"destination\": {\r\n \"container\": {\r\n \"path\": \"audio{0}.mp3\",\r\n \"containerUrl\": \"[parameters('outputFileStorageUrl')]\"\r\n }\r\n },\r\n \"uploadOptionsa\": {\r\n \"uploadCondition\": \"TaskSuccess\"\r\n }\r\n }\r\n ],\r\n \"packageReferences\": [\r\n {\r\n \"type\": \"aptPackage\",\r\n \"id\": \"ffmpeg\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -7861,57 +9487,72 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1117144" + ], + "Content-MD5": [ + "BvsOoLG3cYJ873sw8nI4/Q==" + ], + "Content-Length": [ + "3565" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d42cd08-5d42-11e9-8a10-44032c851686" + "57e739d8-6069-11e9-866e-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Zeh/8Q25vkncz1rvNN5aDafCLE4JEBsIMBOdjvPjSW4=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:qGN87Ms9uPT79A6zk8O9JKinBouSIDfiyqkcGpV/WdU=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 201, + "message": "Created" }, - "headers": { - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], + "headers": { "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:57 GMT" + ], + "ETag": [ + "\"0x8D6C28D3C1CC3A5\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], - "Content-Length": [ - "230" + "Content-MD5": [ + "BvsOoLG3cYJ873sw8nI4/Q==" ], - "Content-Type": [ - "application/xml" + "Content-Length": [ + "0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21450e-d01e-00cf-0c4e-f103b2000000\nTime:2019-04-12T16:43:35.1023722Z" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?comp=metadata", + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", "body": null, "headers": { "User-Agent": [ @@ -7924,53 +9565,53 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d49ca06-5d42-11e9-8af8-44032c851686" + "57ef2268-6069-11e9-bd45-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:6YAaSMICImm2gHEBAHcbHy7tmteYuc5qEDc3i/sY+Yo=" + "SharedKey sdkteststore2:eQgCx79Xtea0ZKVKe0R/LWJT81HEgTWfoe4NwfOv1s8=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified container already exists." }, "headers": { - "ETag": [ - "\"0x8D6BF649BD499B5\"" + "x-ms-error-code": [ + "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.0829573" + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd6ac-101e-00b4-4d76-f46802000000\nTime:2019-04-16T17:01:57.4700328Z" } } }, { "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -7983,30 +9624,27 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d51dd92-5d42-11e9-b1d4-44032c851686" + "57f62e62-6069-11e9-8263-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:rpeL9OX78aS/nYjka1yiXjkWGRJ2SGc3zS3C1oHX5XU=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:Z8PzdQmbZeVDNi5pcsAMG4JsbbBy/148fhE9q/DKty4=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 404, + "message": "The specified blob does not exist." }, "headers": { "x-ms-error-code": [ - "ContainerAlreadyExists" + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -8015,22 +9653,22 @@ "2017-07-29" ], "Content-Length": [ - "230" + "215" ], "Content-Type": [ "application/xml" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214544-d01e-00cf-344e-f103b2000000\nTime:2019-04-12T16:43:35.2124516Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd6cf-101e-00b4-6e76-f46802000000\nTime:2019-04-16T17:01:57.5170655Z" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?comp=metadata", - "body": null, + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json", + "body": "{\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2018-08-01.7.0\",\r\n \"properties\": {\r\n \"id\": \"job123\",\r\n \"onAllTasksComplete\": \"terminateJob\",\r\n \"poolInfo\": {\r\n \"autoPoolSpecification\": {\r\n \"autoPoolIdPrefix\": \"pool123\",\r\n \"poolLifetimeOption\": \"job\",\r\n \"keepAlive\": false,\r\n \"pool\": {\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\"\r\n }\r\n }\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\": \"1\",\r\n \"commandLine\": \"/bin/bash -c 'cat {fileName}'\",\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"location\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -8038,46 +9676,61 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1554911861.1736982" + ], + "Content-MD5": [ + "Io6RmJXooduSCCl/iHe+sw==" + ], + "Content-Length": [ + "1252" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d5a9db0-5d42-11e9-8db2-44032c851686" + "57fd8082-6069-11e9-9cf4-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:XVL01rxGA+C3cMop0AhoLdo4YH4HlelQlXBIO+mCwFQ=" + "SharedKey sdkteststore2:X4fBqLa2/DAWlLQHlF4kGBVBRbl9p6fkOU996DYonE8=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "ETag": [ - "\"0x8D6BF649BEC92E9\"" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:34 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], - "Content-Length": [ - "0" + "ETag": [ + "\"0x8D6C28D3C33D23A\"" + ], + "x-ms-request-server-encrypted": [ + "true" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1552419189.7367494" + "Content-MD5": [ + "Io6RmJXooduSCCl/iHe+sw==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -8101,13 +9754,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d625cae-5d42-11e9-b5ea-44032c851686" + "5806807e-6069-11e9-9963-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:3WXoq38flPeGAgGyx391T56hY8PHHWH7nfevI6DITDI=" + "SharedKey sdkteststore2:gxW6/Sm/m4UsQgE/j3TI7oowz8/Yuq27dSQkRItR7ow=" ], "Content-Length": [ "0" @@ -8124,7 +9777,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -8140,14 +9793,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214573-d01e-00cf-594e-f103b2000000\nTime:2019-04-12T16:43:35.3115227Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd70d-101e-00b4-2976-f46802000000\nTime:2019-04-16T17:01:57.6371500Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -8160,54 +9813,51 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d699fa8-5d42-11e9-8dcb-44032c851686" + "580ff5f4-6069-11e9-b51b-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:MauhyLlw8pRngeca7IbQwcc1FLj6BR+ZXIS87LjTnTM=" + "SharedKey sdkteststore2:cv4sQhr/HAM5MGGPWF3V047175QRAqrYMRf5QzMmrAo=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649C02B713\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.2550833" + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd728-101e-00b4-4376-f46802000000\nTime:2019-04-16T17:01:57.6971923Z" } } }, { "request": { "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json", + "body": "{\r\n \"parameters\": {\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch job\"\r\n }\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"apiVersion\": \"2030-12-01\",\r\n \"properties\": {\r\n \"fob\": \"[parameters('jobId')]\",\r\n \"ks\": {\r\n \"poolId\": \"[parameters('poolId')]\"\r\n },\r\n \"ls\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\" : \"mytask1\",\r\n \"commandLine\": \"cmd /c echo hello1\"\r\n },\r\n {\r\n \"id\" : \"mytask2\",\r\n \"commandLine\": \"cmd /c echo hello2\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -8215,57 +9865,72 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1238391" + ], + "Content-MD5": [ + "kPzKWo4J2zRaerzJw2Z2xg==" + ], + "Content-Length": [ + "1140" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d714f06-5d42-11e9-8eb0-44032c851686" + "581c33fe-6069-11e9-b251-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:sgWE3VrvdzANe+v2YB+Apkcu2+lsEX6ZKkeKunYNKnY=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:c9KShX/T6awgMLGQWRUgRsyBQB94Ritsls0EnyqQb8Y=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 201, + "message": "Created" }, "headers": { - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:57 GMT" + ], + "ETag": [ + "\"0x8D6C28D3C556A09\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], - "Content-Length": [ - "230" + "Content-MD5": [ + "kPzKWo4J2zRaerzJw2Z2xg==" ], - "Content-Type": [ - "application/xml" + "Content-Length": [ + "0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214594-d01e-00cf-784e-f103b2000000\nTime:2019-04-12T16:43:35.4085924Z" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?comp=metadata", + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", "body": null, "headers": { "User-Agent": [ @@ -8278,53 +9943,53 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d787e2c-5d42-11e9-ae05-44032c851686" + "5827caf4-6069-11e9-ae1d-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:Hei8ewrdFlLd3/WLQTgWmuG6SkFzwI5PM1LpZFX48eE=" + "SharedKey sdkteststore2:oFo3jw88pLcAFEQ0izW3gL8Swo4aUPaoJ0nTJHg6jx4=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified container already exists." }, "headers": { - "ETag": [ - "\"0x8D6BF649C195076\"" + "x-ms-error-code": [ + "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.1117144" + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd751-101e-00b4-6b76-f46802000000\nTime:2019-04-16T17:01:57.8422944Z" } } }, { "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -8337,30 +10002,27 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d7fdd82-5d42-11e9-bbd9-44032c851686" + "582ef852-6069-11e9-a598-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:hs92Kbl/gq/zzm8E5/RrshYJ09AyArZW/mxr8pLIIYM=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:Yth65iQdaT2irsfRYb+XOW0FEtzlZ5p9xzCOYW8pk1I=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 404, + "message": "The specified blob does not exist." }, "headers": { "x-ms-error-code": [ - "ContainerAlreadyExists" + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -8369,22 +10031,22 @@ "2017-07-29" ], "Content-Length": [ - "230" + "215" ], "Content-Type": [ "application/xml" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2145b7-d01e-00cf-164e-f103b2000000\nTime:2019-04-12T16:43:35.5026594Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd768-101e-00b4-0176-f46802000000\nTime:2019-04-16T17:01:57.8913289Z" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?comp=metadata", - "body": null, + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json", + "body": "{\r\n \"parameters\": {\r\n \"jobId\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool which runs the job\"\r\n }\r\n },\r\n \"poolId\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch job\"\r\n }\r\n }\r\n },\r\n \"job\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/jobs\",\r\n \"properties\": {\r\n \"id\": \"[parameters('jobId')]\",\r\n \"poolInfo\": {\r\n \"poolId\": \"[parameters('poolId')]\"\r\n },\r\n \"taskFactory\": {\r\n \"type\": \"taskCollection\",\r\n \"tasks\": [\r\n {\r\n \"id\" : \"mytask1\",\r\n \"commandLine\": \"cmd /c echo hello1\"\r\n },\r\n {\r\n \"id\" : \"mytask2\",\r\n \"commandLine\": \"cmd /c echo hello2\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -8392,46 +10054,61 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1388402" + ], + "Content-MD5": [ + "rdYsR2RLvOnr9kOYg2y5NQ==" + ], + "Content-Length": [ + "1117" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d86e5e4-5d42-11e9-8997-44032c851686" + "58370d40-6069-11e9-bde7-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:vLWyjjeYs8hA125ZuBJYtGhjceCcgx70M806VNpQCJs=" + "SharedKey sdkteststore2:Ow5RgGjHETikC9nlV+AgaBuYLkVTUaTezOsuzKGI2Gg=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "ETag": [ - "\"0x8D6BF649C2E3BE3\"" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], - "Content-Length": [ - "0" + "ETag": [ + "\"0x8D6C28D3C6C9FBD\"" + ], + "x-ms-request-server-encrypted": [ + "true" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1554911861.1736982" + "Content-MD5": [ + "rdYsR2RLvOnr9kOYg2y5NQ==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -8455,13 +10132,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d8e82f0-5d42-11e9-ae2e-44032c851686" + "583ef7fa-6069-11e9-b0b2-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:/To60WJEmDP6RuOuyTeNoNuNEoyntiN3BsLPExgQ0RI=" + "SharedKey sdkteststore2:dIhH2Sd9rAKUyVyWzSvjp/I8z6wqdhV8sRSV3TJBIyA=" ], "Content-Length": [ "0" @@ -8478,7 +10155,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -8494,14 +10171,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2145e0-d01e-00cf-354e-f103b2000000\nTime:2019-04-12T16:43:35.5987284Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd792-101e-00b4-2a76-f46802000000\nTime:2019-04-16T17:01:58.0094120Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -8514,54 +10191,51 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1d959168-5d42-11e9-a6a3-44032c851686" + "584933d2-6069-11e9-8a27-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:fP3Pmt50ei2DlLKO54iTgxZraQ8YLm3Xrny90RmCWsw=" + "SharedKey sdkteststore2:0Sw4CKf2EQTbOsNI04L7fvBqfVEKc9Hj1IRRpUywZVo=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649C499119\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:57 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:35 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.1238391" + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd7ad-101e-00b4-4576-f46802000000\nTime:2019-04-16T17:01:58.0724568Z" } } }, { "request": { "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json", + "body": "{\r\n \"poolName\": {\r\n \"value\": \"testpool1\"\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -8569,57 +10243,72 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1524153754.2550833" + ], + "Content-MD5": [ + "UJHCaZ8IYHwM3l1BfEkTHQ==" + ], + "Content-Length": [ + "52" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1d9cfc40-5d42-11e9-9083-44032c851686" + "585296f0-6069-11e9-a555-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:DP3V7bL66WSRm5hxECVj//Q2+rKa6T7Wg1+PtZa5uec=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:QtTogJTqa57sAIJt5a832Yi4Lzr3qnBUmfj/tB+xuFo=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 201, + "message": "Created" }, "headers": { - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:58 GMT" + ], + "ETag": [ + "\"0x8D6C28D3C881BEE\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], - "Content-Length": [ - "230" + "Content-MD5": [ + "UJHCaZ8IYHwM3l1BfEkTHQ==" ], - "Content-Type": [ - "application/xml" + "Content-Length": [ + "0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2145f7-d01e-00cf-4b4e-f103b2000000\nTime:2019-04-12T16:43:35.6977999Z" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?comp=metadata", + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", "body": null, "headers": { "User-Agent": [ @@ -8632,53 +10321,53 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1da4c5c8-5d42-11e9-ab4e-44032c851686" + "585bb9d0-6069-11e9-ad92-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:8G8GREJhACLVKXT2oeu4FQCiGOSGIXu8YpkV//qa1e8=" + "SharedKey sdkteststore2:MeuefQNcbGiw/UpEOhOfixSnhOLxSxZ0hT1yuFkLAL8=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified container already exists." }, "headers": { - "ETag": [ - "\"0x8D6BF649C5F8E1F\"" + "x-ms-error-code": [ + "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:36 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.1388402" + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd7de-101e-00b4-7176-f46802000000\nTime:2019-04-16T17:01:58.1815332Z" } } }, { "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -8691,30 +10380,27 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1dac1766-5d42-11e9-9c63-44032c851686" + "5862d62e-6069-11e9-8fdd-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:wCYHfIhowc5ibjWtUCXFDLFDZfGVZ2cFahX7096FBb4=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:n5sqW42lKb+ZNMCLc9L5MdK6uelSCt2356jxLUUNTe8=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 404, + "message": "The specified blob does not exist." }, "headers": { "x-ms-error-code": [ - "ContainerAlreadyExists" + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -8723,22 +10409,22 @@ "2017-07-29" ], "Content-Length": [ - "230" + "215" ], "Content-Type": [ "application/xml" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214625-d01e-00cf-724e-f103b2000000\nTime:2019-04-12T16:43:35.7948691Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd7f2-101e-00b4-0576-f46802000000\nTime:2019-04-16T17:01:58.2295674Z" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?comp=metadata", - "body": null, + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json", + "body": "{\r\n \"parameters\": {\r\n \"vmSize\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The size of the virtual machines that runs the application\"\r\n },\r\n \"defaultValue\": \"STANDARD_D1\",\r\n \"allowedValues\": [\r\n \"STANDARD_A1\",\r\n \"STANDARD_A2\",\r\n \"STANDARD_A3\",\r\n \"STANDARD_A4\",\r\n \"STANDARD_D1\",\r\n \"STANDARD_D2\",\r\n \"STANDARD_D3\",\r\n \"STANDARD_D4\"\r\n ]\r\n },\r\n \"vmCount\": {\r\n \"type\": \"int\",\r\n \"defaultValue\": 3,\r\n \"metadata\": {\r\n \"description\": \"The number of the virtual machines\"\r\n }\r\n },\r\n \"poolName\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool\"\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"osType\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"15.10\",\r\n \"version\": \"latest\"\r\n }\r\n }, \r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"apiVersion\": \"2030-12-01\",\r\n \"properties\": {\r\n \"ls\": \"[parameters('poolName')]\",\r\n \"fob\": {\r\n \"imageReference\": \"[variables('osType')]\",\r\n \"nodeAgentSKUId\": \"batch.node.debian 8\"\r\n },\r\n \"new\": \"[parameters('vmSize')]\",\r\n \"vmCount\": \"[parameters('vmCount')]\",\r\n \"enableAutoScale\": false\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -8746,46 +10432,61 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1398392" + ], + "Content-MD5": [ + "Vx+oh7HSZQSJ/EMS4CWYdQ==" + ], + "Content-Length": [ + "1685" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1db37eb6-5d42-11e9-a8be-44032c851686" + "586b8fca-6069-11e9-8d21-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:zjirUrQXfmo1bDXy58Kty9KI9mex5aFIybMvfkV5Lrc=" + "SharedKey sdkteststore2:aK8PNXtgxs/f9wcUg5kMgXQwu1/InB4uKhTtC2MfeMk=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "ETag": [ - "\"0x8D6BF649C769CD5\"" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], - "Content-Length": [ - "0" + "ETag": [ + "\"0x8D6C28D3CA40D69\"" + ], + "x-ms-request-server-encrypted": [ + "true" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1524153754.2550833" + "Content-MD5": [ + "Vx+oh7HSZQSJ/EMS4CWYdQ==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -8809,13 +10510,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1dbb2248-5d42-11e9-8138-44032c851686" + "587665ca-6069-11e9-8e2a-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:WMCoIcedz2/PMQ+EJLfhe4TjDUZYRpFmtp0JjZlYGWY=" + "SharedKey sdkteststore2:d/lF+s74OTiQ4YSyLqU0uYu5+k7O3rEv4NSMSjqr+vg=" ], "Content-Length": [ "0" @@ -8832,7 +10533,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -8848,14 +10549,14 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c21464d-d01e-00cf-194e-f103b2000000\nTime:2019-04-12T16:43:35.8919392Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd82b-101e-00b4-3776-f46802000000\nTime:2019-04-16T17:01:58.3556568Z" } } }, { "request": { "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?comp=metadata", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -8868,54 +10569,51 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1dc23148-5d42-11e9-8353-44032c851686" + "587dc178-6069-11e9-acaa-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:glIDj5RIVsDadNhQzNQEMKhpOm4NFlqutKEmMlorkG0=" + "SharedKey sdkteststore2:Ir/EVMYJOrhUfNo09DOmjOPWVzGeebpLhP3RAiJGW0s=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 404, + "message": "The specified blob does not exist." }, "headers": { - "ETag": [ - "\"0x8D6BF649C92675C\"" + "x-ms-error-code": [ + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:36 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.1398392" + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd84a-101e-00b4-5376-f46802000000\nTime:2019-04-16T17:01:58.4207025Z" } } }, { "request": { "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", - "body": null, + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json", + "body": "{\r\n \"parameters\": {\r\n \"vmSize\": {\r\n \"type\": \"string\",\r\n \"metadata\": {\r\n \"description\": \"The size of the virtual machines that runs the application\"\r\n },\r\n \"defaultValue\": \"STANDARD_D1\",\r\n \"allowedValues\": [\r\n \"STANDARD_A1\",\r\n \"STANDARD_A2\",\r\n \"STANDARD_A3\",\r\n \"STANDARD_A4\",\r\n \"STANDARD_D1\",\r\n \"STANDARD_D2\",\r\n \"STANDARD_D3\",\r\n \"STANDARD_D4\"\r\n ]\r\n },\r\n \"vmCount\": {\r\n \"type\": \"int\",\r\n \"defaultValue\": 3,\r\n \"metadata\": {\r\n \"description\": \"The number of the virtual machines\"\r\n }\r\n },\r\n \"poolName\": {\r\n \"type\": \"string\",\r\n \"defaultValue\": \"ffmpegpool\",\r\n \"metadata\": {\r\n \"description\": \"The name of Azure Batch pool\"\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"osType\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"15.10\",\r\n \"version\": \"latest\"\r\n }\r\n }, \r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"properties\": {\r\n \"id\": \"[parameters('poolName')]\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": \"[variables('osType')]\",\r\n \"nodeAgentSKUId\": \"batch.node.debian 8\"\r\n },\r\n \"vmSize\": \"[parameters('vmSize')]\",\r\n \"vmCount\": \"[parameters('vmCount')]\",\r\n \"enableAutoScale\": false\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -8923,57 +10621,72 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1551725410.1458392" + ], + "Content-MD5": [ + "sLKLnAZ4LgaLVKq3l8hvhw==" + ], + "Content-Length": [ + "1675" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1dc9e062-5d42-11e9-9446-44032c851686" + "5887c47e-6069-11e9-b4ff-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:JBZ4swb/BuqCeMIEhICUN5q+Vai1I6+l4xmNy3f3mWI=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:UdLrLOmutjAlpR+mSLRugTXge0EahYCFfaj2VYy4euo=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 201, + "message": "Created" }, "headers": { - "x-ms-error-code": [ - "ContainerAlreadyExists" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], + "Last-Modified": [ + "Tue, 16 Apr 2019 17:01:58 GMT" + ], + "ETag": [ + "\"0x8D6C28D3CBD6660\"" + ], + "x-ms-request-server-encrypted": [ + "true" + ], "x-ms-version": [ "2017-07-29" ], - "Content-Length": [ - "230" + "Content-MD5": [ + "sLKLnAZ4LgaLVKq3l8hvhw==" ], - "Content-Type": [ - "application/xml" + "Content-Length": [ + "0" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c214670-d01e-00cf-384e-f103b2000000\nTime:2019-04-12T16:43:36.0050194Z" + "string": "" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?comp=metadata", + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", "body": null, "headers": { "User-Agent": [ @@ -8986,53 +10699,53 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1dd3e7ec-5d42-11e9-9662-44032c851686" + "589031cc-6069-11e9-a307-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:FdUCIt43QScOI2ByRjpwEQR8lbVp2v+KTt1kpJFCCus=" + "SharedKey sdkteststore2:EfRR9hqD79OmXbN/tbqAGdPhgpg476ulP/k+hfnU0TA=" + ], + "Content-Length": [ + "0" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 409, + "message": "The specified container already exists." }, "headers": { - "ETag": [ - "\"0x8D6BF649CAECE3C\"" + "x-ms-error-code": [ + "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], - "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:36 GMT" - ], - "Content-Length": [ - "0" - ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1551725410.1458392" + "Content-Length": [ + "230" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:249bd86f-101e-00b4-7476-f46802000000\nTime:2019-04-16T17:01:58.5507953Z" } } }, { "request": { - "method": "PUT", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in?restype=container", + "method": "GET", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?comp=metadata", "body": null, "headers": { "User-Agent": [ @@ -9045,30 +10758,27 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1ddc3cb0-5d42-11e9-888d-44032c851686" + "589b3222-6069-11e9-b3d8-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:w1m+wEz1qjSwzpFo7G9daPPA0r1Kn0lIgY3LEeM1xAg=" - ], - "Content-Length": [ - "0" + "SharedKey sdkteststore2:KpAzi8OuWeN7/2pCGImqYJELcCdCz9sfrvKfI+9D8/s=" ] } }, "response": { "status": { - "code": 409, - "message": "The specified container already exists." + "code": 404, + "message": "The specified blob does not exist." }, "headers": { "x-ms-error-code": [ - "ContainerAlreadyExists" + "BlobNotFound" ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -9077,22 +10787,22 @@ "2017-07-29" ], "Content-Length": [ - "230" + "215" ], "Content-Type": [ "application/xml" ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:9c2146b8-d01e-00cf-744e-f103b2000000\nTime:2019-04-12T16:43:36.1100946Z" + "string": "\ufeffBlobNotFoundThe specified blob does not exist.\nRequestId:249bd879-101e-00b4-7c76-f46802000000\nTime:2019-04-16T17:01:58.5998301Z" } } }, { "request": { - "method": "GET", - "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?comp=metadata", - "body": null, + "method": "PUT", + "uri": "https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json", + "body": "{\r\n \"pool\": {\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"apiVersion\": \"2018-08-01\",\r\n \"properties\": {\r\n \"id\": \"blobsource\",\r\n \"displayName\": \"Blender Ubuntu standard pool\",\r\n \"vmSize\": \"Standard_D1_v2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": \"16.04.0-LTS\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 16.04\"\r\n },\r\n \"targetDedicatedNodes\": \"1\",\r\n \"targetLowPriorityNodes\": \"0\",\r\n \"enableAutoScale\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"sleep 1\",\r\n \"waitForSuccess\": true,\r\n \"maxTaskRetryCount\": 0,\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"resourceFiles\": [\r\n {\r\n \"blobSource\": \"https://raw.githubusercontent.com/Azure/BatchExplorer-data/master/ncj/blender/scripts/setup-linux-pool.sh\",\r\n \"filePath\": \"setup-linux-pool.sh\"\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n}", "headers": { "User-Agent": [ "Azure-Storage/1.1.0-1.1.0 (Python CPython 3.7.3; Windows 10)" @@ -9100,46 +10810,61 @@ "Connection": [ "keep-alive" ], + "x-ms-blob-type": [ + "BlockBlob" + ], + "x-ms-meta-lastmodified": [ + "1554911861.1757023" + ], + "Content-MD5": [ + "GqZFE1K6vOAb3BZx8aiwVA==" + ], + "Content-Length": [ + "1165" + ], "x-ms-version": [ "2017-07-29" ], "x-ms-client-request-id": [ - "1de3a18a-5d42-11e9-8300-44032c851686" + "58a2aada-6069-11e9-9ce1-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:tgKEDssa8/T2dxhj3PTNJpBJ8+F1Q0zm7i7mT3/iGt4=" + "SharedKey sdkteststore2:i+1l3hLL8kILZmC6qfo27CzW1LgRbm79zisAaBSchDY=" ] } }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 201, + "message": "Created" }, "headers": { - "ETag": [ - "\"0x8D6BF649CC8C3AC\"" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:35 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:33:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], - "Content-Length": [ - "0" + "ETag": [ + "\"0x8D6C28D3CD86D4C\"" + ], + "x-ms-request-server-encrypted": [ + "true" ], "x-ms-version": [ "2017-07-29" ], - "x-ms-meta-lastmodified": [ - "1554911861.1757023" + "Content-MD5": [ + "GqZFE1K6vOAb3BZx8aiwVA==" + ], + "Content-Length": [ + "0" ] }, "body": { @@ -9166,13 +10891,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "1e04234c-5d42-11e9-805b-44032c851686" + "58cabdd2-6069-11e9-956c-44032c851686" ], "accept-language": [ "en-US" @@ -9185,27 +10910,24 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], + "Expires": [ + "-1" + ], + "Pragma": [ + "no-cache" + ], "Cache-Control": [ "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], "Vary": [ "Accept-Encoding" ], @@ -9215,6 +10937,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "Content-Type": [ + "application/json; charset=utf-8" + ], "content-length": [ "686" ] @@ -9243,13 +10968,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1MDg2NTAyLCJuYmYiOjE1NTUwODY1MDIsImV4cCI6MTU1NTA5MDQwMiwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBcDdvMWpQdzFQSHBzQ1BhZnFUTytkZklvcjNkWVNUMnlWL0RpVEhNRTlZNC80bnJHeTNGNjFpc0dIN0V0a01Jc2RHTXFKSzdGdWN3S1RsTlpzd3B6c0E9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjE2Ny4yMjAuMi4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiMy1pVkxaVXFnOHJZVUU0eUtFdk9KS0RLQ3ZnUjRJUm9BcmFXOVFaYk1GQSIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiOUx2UkZsejNmRXV1R0hlaUUzUUFBQSIsInZlciI6IjEuMCJ9.GG5zIL7X0L58hipwGJ6qJzMHf87tsUYeQRb2gD35Xw2Y5FBri7WjYmV-r6t2Vswsgi5buH203n0JIfbjkJgvWaQkyu74tChsXgr6GKc0ZiZgc8-jep3hyP6WOLQ45DDs1OfcejFA1ZZ--UX_2rZSOCKRyJct6y2e-IUBVNkjw31Z_j_v1CIOMnPZhQlMl3t0b_q7O-jvja-H1xdFmHf_ajiSzAUNBEBJ5eO2_Br0pwM7WJOv47iGgc_Pw1F0myL6X8QcwXGN4f3QXET5FcfTGw_Qn8zC1jHE29IhhLvmvR6yW3pgEt9jDBOWrd5a-pXEMYitAVHi7SB9Q5izUo2gXg" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTU1NDMzNjk5LCJuYmYiOjE1NTU0MzM2OTksImV4cCI6MTU1NTQzNzU5OSwiX2NsYWltX25hbWVzIjp7Imdyb3VwcyI6InNyYzEifSwiX2NsYWltX3NvdXJjZXMiOnsic3JjMSI6eyJlbmRwb2ludCI6Imh0dHBzOi8vZ3JhcGgud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3VzZXJzLzI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMS9nZXRNZW1iZXJPYmplY3RzIn19LCJhY3IiOiIxIiwiYWlvIjoiQVVRQXUvOExBQUFBa292ejlkVG5iWkNiV0dnWEs4c2VRVnYwMWhyMDNpZHhVakpDcDA4YmpSdU9BdE5DUk9rZ015YUZTUGxFNk56a28zMG02MTN1M0t5SFRxamlDdUJKcEE9PSIsImFtciI6WyJyc2EiLCJtZmEiXSwiYXBwaWQiOiIwNGIwNzc5NS04ZGRiLTQ2MWEtYmJlZS0wMmY5ZTFiZjdiNDYiLCJhcHBpZGFjciI6IjAiLCJkZXZpY2VpZCI6IjFkNTBjNWRmLWZkMDEtNGE2NC04ODU5LTg0NzIzNzU4YTI0NCIsImZhbWlseV9uYW1lIjoiS2xlaW4iLCJnaXZlbl9uYW1lIjoiQnJhbmRvbiIsImlwYWRkciI6IjEzMS4xMDcuMTYwLjEyMyIsIm5hbWUiOiJCcmFuZG9uIEtsZWluIiwib2lkIjoiMjcyNDQ5MzUtYTRiOS00MGE0LWEyNzItNDI5NDJiNjdlY2YxIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTIxMjc1MjExODQtMTYwNDAxMjkyMC0xODg3OTI3NTI3LTMwODY5MTc0IiwicHVpZCI6IjEwMDMwMDAwQTkxNzc4OUUiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzLWlWTFpVcWc4cllVRTR5S0V2T0pLREtDdmdSNElSb0FyYVc5UVpiTUZBIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidW5pcXVlX25hbWUiOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1cG4iOiJicmtsZWluQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJWeDh4ZGxlMDZVT2NNbVVHRVlVQUFBIiwidmVyIjoiMS4wIn0.WpKlY4lVY522za0_1Fa7dh9lV6cQ3pFey30m9tUYZwStf5XIl_RpTZKQu6oMU-hn-LXG8xqnxIJY7GxCeFOmNRC2VrW6Cnje5g-jnrHnO9mXOWdtDIn-N71lPXf3RSnJz6gQXpqNvwACB3Q3r-OOECyg9_YZIHLimmCxSSXcSTfCR9NMSfzoKh2yVVUVjxG7ltUTJJvvfSI1vnFS__M90GH7b1Hf6p0UDkkPZjwdgT1UHM5QVryupIu6dPF9yWFEXiXzKz60q-dvKRoFdFDHLnHZWXpHaSZD1aaKeZidI2o7Wo_9YrRJO28HVyyRxefS6BzJ_d8yPJAD6eYjnxUixQ" ], "Content-Type": [ "application/json; charset=utf-8" ], "x-ms-client-request-id": [ - "1e3bffc6-5d42-11e9-b24f-44032c851686" + "58f65740-6069-11e9-8a8c-44032c851686" ], "accept-language": [ "en-US" @@ -9265,30 +10990,24 @@ "message": "OK" }, "headers": { - "Pragma": [ - "no-cache" - ], "Date": [ - "Fri, 12 Apr 2019 16:43:36 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0" ], - "Cache-Control": [ + "Expires": [ + "-1" + ], + "Pragma": [ "no-cache" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1199" + "Cache-Control": [ + "no-cache" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "Content-Type": [ - "application/json" - ], - "Expires": [ - "-1" - ], "Vary": [ "Accept-Encoding" ], @@ -9298,6 +11017,12 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "1199" + ], + "Content-Type": [ + "application/json" + ], "content-length": [ "288" ] @@ -9323,13 +11048,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1e6b31ca-5d42-11e9-8391-44032c851686" + "591fe780-6069-11e9-8336-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:37 GMT" + "Tue, 16 Apr 2019 17:01:59 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:WvQ+X74RxyjULSJ0i+OwWbbXrSpG30vUlkwugVlY+rc=" + "SharedKey sdkteststore2:dg1MWM8D/pMN6qza4rPrNfu0QuR5l32p6DMW2Fe6ZXs=" ] } }, @@ -9340,7 +11065,7 @@ }, "headers": { "Date": [ - "Fri, 12 Apr 2019 16:43:37 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -9348,15 +11073,15 @@ "x-ms-version": [ "2017-07-29" ], - "Content-Type": [ - "application/xml" - ], "Transfer-Encoding": [ "chunked" + ], + "Content-Type": [ + "application/xml" ] }, "body": { - "string": "\ufeffbatch-applicationTemplate-parameters.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B3E0A691377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B542E8B219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B69410A146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B7EEFE7187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649B93DB4F206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonFri, 12 Apr 2019 16:33:34 GMT0x8D6BF649BA93BFD740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649BBE4E7C240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649BD499B51363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649BEC92E94072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C02B713254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C1950763565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C2E3BE31252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonFri, 12 Apr 2019 16:33:35 GMT0x8D6BF649C4991191140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649C5F8E1F1117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649C769CD552application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649C92675C1685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649CAECE3C1675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonFri, 12 Apr 2019 16:33:36 GMT0x8D6BF649CC8C3AC1165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" + "string": "\ufeffbatch-applicationTemplate-parameters.jsonTue, 16 Apr 2019 17:01:55 GMT0x8D6C28D3B2873921377application/octet-streamGhvIqLxdhgZSxhi6CdQjLQ==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedApplicationTemplateInfo.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3B44DA4D219application/octet-streamxbCZcjm1pOMcwR8Td2yo9w==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedId.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3B664B0A146application/octet-streamHBCHz/rBYi8V9ILMKx0o+g==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPoolInfo.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3B7CBD42187application/octet-streamPFiBkLMhFseOyDvKgJXaRA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-prohibitedPriority.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3B93A4C4206application/octet-streamIvRrVHIc/lLy/wSkE22LeA==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-static.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3BA9EFEA740application/octet-stream27HmU8S9AEeu90aG5z1x1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-unsupportedProperty.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3BC0893E240application/octet-streameSn7zZA04to5Rccq3nxw1A==BlockBlobHottrueunlockedavailabletruebatch-applicationTemplate-untypedParameter.jsonTue, 16 Apr 2019 17:01:56 GMT0x8D6C28D3BD7BEED1363application/octet-streamsWJuTwpMQ9cWToECYRCNiQ==BlockBlobHottrueunlockedavailabletruebatch.job.mergetask.jsonTue, 16 Apr 2019 17:01:57 GMT0x8D6C28D3BEF42CB4072application/octet-stream2ILRwlJk1kyfaTTP253tiA==BlockBlobHottrueunlockedavailabletruebatch.job.parameters.jsonTue, 16 Apr 2019 17:01:57 GMT0x8D6C28D3C05B508254application/octet-streamacLZykn1NMEO1oxenbC6dw==BlockBlobHottrueunlockedavailabletruebatch.job.parametricsweep.jsonTue, 16 Apr 2019 17:01:57 GMT0x8D6C28D3C1CC3A53565application/octet-streamBvsOoLG3cYJ873sw8nI4/Q==BlockBlobHottrueunlockedavailabletruebatch.job.resourcefile-legacy.jsonTue, 16 Apr 2019 17:01:57 GMT0x8D6C28D3C33D23A1252application/octet-streamIo6RmJXooduSCCl/iHe+sw==BlockBlobHottrueunlockedavailabletruebatch.job.simple.apiversionfail.jsonTue, 16 Apr 2019 17:01:57 GMT0x8D6C28D3C556A091140application/octet-streamkPzKWo4J2zRaerzJw2Z2xg==BlockBlobHottrueunlockedavailabletruebatch.job.simple.jsonTue, 16 Apr 2019 17:01:57 GMT0x8D6C28D3C6C9FBD1117application/octet-streamrdYsR2RLvOnr9kOYg2y5NQ==BlockBlobHottrueunlockedavailabletruebatch.pool.parameters.jsonTue, 16 Apr 2019 17:01:58 GMT0x8D6C28D3C881BEE52application/octet-streamUJHCaZ8IYHwM3l1BfEkTHQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.apiversionfail.jsonTue, 16 Apr 2019 17:01:58 GMT0x8D6C28D3CA40D691685application/octet-streamVx+oh7HSZQSJ/EMS4CWYdQ==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.jsonTue, 16 Apr 2019 17:01:58 GMT0x8D6C28D3CBD66601675application/octet-streamsLKLnAZ4LgaLVKq3l8hvhw==BlockBlobHottrueunlockedavailabletruebatch.pool.simple.resourcefile-legacy.jsonTue, 16 Apr 2019 17:01:58 GMT0x8D6C28D3CD86D4C1165application/octet-streamGqZFE1K6vOAb3BZx8aiwVA==BlockBlobHottrueunlockedavailabletrue" } } }, @@ -9376,13 +11101,13 @@ "2017-07-29" ], "x-ms-client-request-id": [ - "1e94a65e-5d42-11e9-b25f-44032c851686" + "59450b38-6069-11e9-9696-44032c851686" ], "x-ms-date": [ - "Fri, 12 Apr 2019 16:43:37 GMT" + "Tue, 16 Apr 2019 17:01:59 GMT" ], "Authorization": [ - "SharedKey sdkteststore2:UmWf0Ir1zax8D+mbJBjAClquJ6weG5CTxO9KdaY33uM=" + "SharedKey sdkteststore2:qXB/0TVhk+f0V0FRh4+czSr1/WGQ39oNL0j06qKUOSo=" ], "Content-Length": [ "0" @@ -9399,7 +11124,7 @@ "ContainerAlreadyExists" ], "Date": [ - "Fri, 12 Apr 2019 16:43:37 GMT" + "Tue, 16 Apr 2019 17:01:58 GMT" ], "Server": [ "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0" @@ -9415,7 +11140,7 @@ ] }, "body": { - "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:326a7c75-501e-007f-464e-f1fa32000000\nTime:2019-04-12T16:43:37.3143318Z" + "string": "\ufeffContainerAlreadyExistsThe specified container already exists.\nRequestId:ce61013c-b01e-00b9-3376-f4870e000000\nTime:2019-04-16T17:01:59.7168558Z" } } }, @@ -9438,13 +11163,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "1e9bb436-5d42-11e9-a1ec-44032c851686" + "594d232e-6069-11e9-b887-44032c851686" ], "accept-language": [ "en-US" @@ -9463,23 +11188,26 @@ "message": "Created" }, "headers": { - "ETag": [ - "0x8D6BF6602F64AB2" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "request-id": [ + "b104726b-3900-42a3-9f0c-991060ca13f3" ], "Date": [ - "Fri, 12 Apr 2019 16:43:37 GMT" - ], - "Location": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + "Tue, 16 Apr 2019 17:02:00 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:43:37 GMT" + "Tue, 16 Apr 2019 17:02:00 GMT" + ], + "ETag": [ + "0x8D6C28D3DDB853E" + ], + "Location": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/job-1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -9487,9 +11215,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "e0f15137-8224-4f2e-8c3d-777bf7e11ade" - ], "Transfer-Encoding": [ "chunked" ], @@ -9506,7 +11231,7 @@ "request": { "method": "POST", "uri": "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/addtaskcollection?api-version=2018-12-01.8.0", - "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=8mtQI5w8zfOmv7JQYBIprvAzTFQ2UL1YLf3/tEFf2Tc%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=jIdOunkRfc8MZQeDDGUx4MvkqAPTlzRRmaKakJ3VQVs%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=YcUwn7cgK/i/0jYATmN9CXiUfu8TrxKoMg2Gh3KKfpM%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=pVOLDLgCiOpVaCe4VoxU4u%2BTVAXAq87k%2B1FYlJs1p4o%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=GpgR0ZwdljmKlEt/E%2BZB3/BqcFnUjyOBH7qMnVQauKM%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=ikNKjUd4B8SbUshl1u12eiWaoMs0aQLq5doo/S0EWus%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=RR4VVHcpmWQVNfISRRMztaaXLDZOEynTSy2ZjBJSHIk%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=IwBl9oCoS6oXwvw191XEGgTz/O6YL3FN7uLFJXt8WCM%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=1qsFbuwSx2tYxYebLl/8FKBXcXOt0Dg8gSN2Tg9jgMo%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=mCRASJMClyKDTSUuGdlAKgntiuuDxmxxxeCkKHpDS8A%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=kScG00Zsw5FiMLxJAs0IRkcx5RsDzqLgIgL7Q0WFH9k%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=ow0NhTbWuiadflm3qdMTPaF2x19sLIVy/D82k2pFba0%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=/z3773wyEFLBIlgT2sq6HtyCy4KiaGOFxXUOE0hOUGc%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=yApga2eUyxnFoTFMIyQd8uc%2BgtWGHU2E0YOc8MO%2B3kY%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=WDXUvPmzlvNiMczNKLY139NTw9POoTtes9OhFodddWY%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=a5Bhmb6U9pEE5ttLUuxoQqVtnhQHhiiMKZmh4J6AOzc%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=AlAjl0N8D/79f%2BkkJonwVwFdeAoCObo1WCx/Xx0gLEA%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=r&sv=2017-07-29&sr=b&sig=NeJ6Yt9oPcO8Yb8wIuw5QNfh%2BPWatyUDI4Pf5EQ/bqw%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-12T16%3A28%3A37Z&se=2019-04-19T16%3A43%3A37Z&sp=w&sv=2017-07-29&sr=c&sig=DKvqN2Ck6jqeQim1Q7KpSLNE4AkYc1p/%2BuK44Ol22KM%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", + "body": "{\"value\": [{\"id\": \"merge\", \"displayName\": \"myMergeTask\", \"commandLine\": \"/bin/bash -c 'ls'\", \"resourceFiles\": [{\"autoStorageContainerName\": \"fgrp-output\"}], \"dependsOn\": {\"taskIdRanges\": [{\"start\": 0, \"end\": 17}]}}, {\"id\": \"17\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.resourcefile-legacy.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=AjNlAk5ItnZ4gPzvOLZIGUtKeMVsWlGaiSh1qVCz020%3D\", \"filePath\": \"batch.pool.simple.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"16\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=tES75X7kqtOnfDvauwxdndZzdCe5aWcWi/D4/qMC/I0%3D\", \"filePath\": \"batch.pool.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"15\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.simple.apiversionfail.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=zaLc4TZUTuWAJAsL8wPI3oYSzM9nNkymEt0bnCrOY%2Bc%3D\", \"filePath\": \"batch.pool.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"14\", \"commandLine\": \"/bin/bash -c 'cat batch.pool.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.pool.parameters.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=mGAjS%2BkFsOQlzgEQ00iQTELfmCq3A3/0Dg0Z5wwry8o%3D\", \"filePath\": \"batch.pool.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.pool.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"13\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=zg%2BtFnfTxodj5D9KSLxAfp9hazWBBT/1WsuROtFQoIA%3D\", \"filePath\": \"batch.job.simple.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"12\", \"commandLine\": \"/bin/bash -c 'cat batch.job.simple.apiversionfail.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.simple.apiversionfail.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=U8l89TihsoJmSfuhwPH4JAC%2BmekUnX3zhuG5iSZM2Ek%3D\", \"filePath\": \"batch.job.simple.apiversionfail.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.simple.apiversionfail.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"11\", \"commandLine\": \"/bin/bash -c 'cat batch.job.resourcefile-legacy.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.resourcefile-legacy.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=0vX40PCSX85EWYzHFczfPdvZMUseEthRP%2Bbq6KD3GzM%3D\", \"filePath\": \"batch.job.resourcefile-legacy.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.resourcefile-legacy.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"10\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parametricsweep.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parametricsweep.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=gR3ruB1Ah%2B5OR7mByIQvhNk8kDgJ66t9TCp3dau2%2BqA%3D\", \"filePath\": \"batch.job.parametricsweep.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parametricsweep.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"9\", \"commandLine\": \"/bin/bash -c 'cat batch.job.parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.parameters.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=fapT6q0Ffp1/TjQ/XYIkxyZrIW7uvPS7IWFcI36B2vI%3D\", \"filePath\": \"batch.job.parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"8\", \"commandLine\": \"/bin/bash -c 'cat batch.job.mergetask.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch.job.mergetask.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=BG4/D7AkalmJUxnTTdn1aDU%2BsoMerZ6NObYv61cBy84%3D\", \"filePath\": \"batch.job.mergetask.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch.job.mergetask.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"7\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-untypedParameter.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-untypedParameter.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=756YoPteUpZ0%2BdTXALbqRJ33cvEdwpug3t22ALBQtSA%3D\", \"filePath\": \"batch-applicationTemplate-untypedParameter.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-untypedParameter.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"6\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-unsupportedProperty.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-unsupportedProperty.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=BnDMcuil8dHzUiKl%2Bv3Nb5BdFMyrTV2k56KrCBDSW0Q%3D\", \"filePath\": \"batch-applicationTemplate-unsupportedProperty.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-unsupportedProperty.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"5\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-static.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-static.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=mW5eJPq0AvM5nSBn5g8bY58mI4zd1iIZFeT9hyEbXU4%3D\", \"filePath\": \"batch-applicationTemplate-static.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-static.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"4\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPriority.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPriority.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=RkmNI4fOb76%2B2rUrfWsoHOmka8zf1oREd37Q2VXT9Xw%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPriority.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPriority.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"3\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedPoolInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedPoolInfo.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=e3GX1QIsSzCsK%2BCnWBFun1%2BuOP%2BBZDz/%2BEuD28bWz%2BM%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedPoolInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedPoolInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"2\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedId.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedId.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=kklMdXFS3OL47FBSIRK%2BfgQayEc5Y17TQhheJfG1CYA%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedId.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedId.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"1\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-prohibitedApplicationTemplateInfo.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-prohibitedApplicationTemplateInfo.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=hr6wjJ36XWa7%2BvU1rgCceJmf1hKSjQNYpMSESj2tO4E%3D\", \"filePath\": \"batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-prohibitedApplicationTemplateInfo.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}, {\"id\": \"0\", \"commandLine\": \"/bin/bash -c 'cat batch-applicationTemplate-parameters.json'\", \"resourceFiles\": [{\"httpUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-in/batch-applicationTemplate-parameters.json?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=r&sv=2017-07-29&sr=b&sig=RMK5k4HPIBmZW1c0mbHhZTXMIY0oNoYu9QHArtHLBjw%3D\", \"filePath\": \"batch-applicationTemplate-parameters.json\"}], \"outputFiles\": [{\"filePattern\": \"**/stdout.txt\", \"destination\": {\"container\": {\"path\": \"output-batch-applicationTemplate-parameters.json\", \"containerUrl\": \"https://sdkteststore2.blob.core.windows.net/fgrp-output?st=2019-04-16T16%3A46%3A59Z&se=2019-04-23T17%3A01%3A59Z&sp=w&sv=2017-07-29&sr=c&sig=uqsdttKm7eXjyEwem7cp9a9ETx/QWPNXgOEt0s3o1i4%3D\"}}, \"uploadOptions\": {\"uploadCondition\": \"tasksuccess\"}}]}]}", "headers": { "User-Agent": [ "python/3.7.3 (Windows-10-10.0.17763-SP0) msrest/0.6.6 msrest_azure/0.6.0 azure-batch/6.0.1 Azure-SDK-For-Python batchextensionsclient/5.0.5" @@ -9521,19 +11246,19 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "1ed34d94-5d42-11e9-9c3d-44032c851686" + "59adc4e4-6069-11e9-87ad-44032c851686" ], "accept-language": [ "en-US" ], "Content-Length": [ - "14628" + "14614" ] } }, @@ -9543,8 +11268,11 @@ "message": "OK" }, "headers": { + "request-id": [ + "dbbf81ff-7ed2-47b6-b6d7-299f07f6cc17" + ], "Date": [ - "Fri, 12 Apr 2019 16:43:39 GMT" + "Tue, 16 Apr 2019 17:02:01 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" @@ -9555,21 +11283,18 @@ "DataServiceVersion": [ "3.0" ], - "Content-Type": [ - "application/json;odata=minimalmetadata" - ], - "request-id": [ - "b874a186-b406-4b02-85e2-638cf80740e4" - ], "Transfer-Encoding": [ "chunked" ], "X-Content-Type-Options": [ "nosniff" + ], + "Content-Type": [ + "application/json;odata=minimalmetadata" ] }, "body": { - "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6BF6603A69C6F\",\"lastModified\":\"2019-04-12T16:43:38.8323951Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6BF6603AE8A81\",\"lastModified\":\"2019-04-12T16:43:38.8843649Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6BF6603BE8FFC\",\"lastModified\":\"2019-04-12T16:43:38.9893628Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6BF6603BEB73C\",\"lastModified\":\"2019-04-12T16:43:38.9903676Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6BF6603B58F69\",\"lastModified\":\"2019-04-12T16:43:38.9303657Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6BF6603C3992E\",\"lastModified\":\"2019-04-12T16:43:39.0223662Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6BF6603C4AA95\",\"lastModified\":\"2019-04-12T16:43:39.0293653Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6BF6603B8EAD0\",\"lastModified\":\"2019-04-12T16:43:38.9523664Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6BF6603C4AA95\",\"lastModified\":\"2019-04-12T16:43:39.0293653Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6BF6603C67F64\",\"lastModified\":\"2019-04-12T16:43:39.0413668Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6BF6603C1C478\",\"lastModified\":\"2019-04-12T16:43:39.0103672Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6BF6603C77C97\",\"lastModified\":\"2019-04-12T16:43:39.0478487Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6BF6603C67F64\",\"lastModified\":\"2019-04-12T16:43:39.0413668Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6BF6603C4D1AB\",\"lastModified\":\"2019-04-12T16:43:39.0303659Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6BF6603C08BF7\",\"lastModified\":\"2019-04-12T16:43:39.0023671Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6BF6603C1EB8E\",\"lastModified\":\"2019-04-12T16:43:39.0113678Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6BF6603C67F64\",\"lastModified\":\"2019-04-12T16:43:39.0413668Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6BF6603C790C4\",\"lastModified\":\"2019-04-12T16:43:39.0483652Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6BF6603C790C4\",\"lastModified\":\"2019-04-12T16:43:39.0483652Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n }\r\n ]\r\n}" + "string": "{\r\n \"odata.metadata\":\"https://sdktest2.westcentralus.batch.azure.com/$metadata#taskaddresult\",\"value\":[\r\n {\r\n \"status\":\"Success\",\"taskId\":\"merge\",\"eTag\":\"0x8D6C28D3E8CB747\",\"lastModified\":\"2019-04-16T17:02:01.5090503Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/merge\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"17\",\"eTag\":\"0x8D6C28D3E9408D6\",\"lastModified\":\"2019-04-16T17:02:01.5570134Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/17\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"11\",\"eTag\":\"0x8D6C28D3E973D22\",\"lastModified\":\"2019-04-16T17:02:01.578013Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/11\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"16\",\"eTag\":\"0x8D6C28D3E9D0992\",\"lastModified\":\"2019-04-16T17:02:01.6160146Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/16\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"15\",\"eTag\":\"0x8D6C28D3E9E6920\",\"lastModified\":\"2019-04-16T17:02:01.6250144Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/15\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"12\",\"eTag\":\"0x8D6C28D3E9E6920\",\"lastModified\":\"2019-04-16T17:02:01.6250144Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/12\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"0\",\"eTag\":\"0x8D6C28D3EA2AED2\",\"lastModified\":\"2019-04-16T17:02:01.653013Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/0\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"5\",\"eTag\":\"0x8D6C28D3EA2D5ED\",\"lastModified\":\"2019-04-16T17:02:01.6540141Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/5\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"14\",\"eTag\":\"0x8D6C28D3EA01706\",\"lastModified\":\"2019-04-16T17:02:01.6360198Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/14\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"13\",\"eTag\":\"0x8D6C28D3E9E9033\",\"lastModified\":\"2019-04-16T17:02:01.6260147Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/13\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"10\",\"eTag\":\"0x8D6C28D3E9E9033\",\"lastModified\":\"2019-04-16T17:02:01.6260147Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/10\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"6\",\"eTag\":\"0x8D6C28D3EA287BD\",\"lastModified\":\"2019-04-16T17:02:01.6520125Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/6\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"9\",\"eTag\":\"0x8D6C28D3E9E6920\",\"lastModified\":\"2019-04-16T17:02:01.6250144Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/9\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"7\",\"eTag\":\"0x8D6C28D3EA10DC1\",\"lastModified\":\"2019-04-16T17:02:01.6423361Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/7\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"3\",\"eTag\":\"0x8D6C28D3EA287BD\",\"lastModified\":\"2019-04-16T17:02:01.6520125Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/3\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"8\",\"eTag\":\"0x8D6C28D3EA287BD\",\"lastModified\":\"2019-04-16T17:02:01.6520125Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/8\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"2\",\"eTag\":\"0x8D6C28D3EA2AED2\",\"lastModified\":\"2019-04-16T17:02:01.653013Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/2\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"1\",\"eTag\":\"0x8D6C28D3EA2FCF9\",\"lastModified\":\"2019-04-16T17:02:01.6550137Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/1\"\r\n },{\r\n \"status\":\"Success\",\"taskId\":\"4\",\"eTag\":\"0x8D6C28D3EA2D5ED\",\"lastModified\":\"2019-04-16T17:02:01.6540141Z\",\"location\":\"https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3/tasks/4\"\r\n }\r\n ]\r\n}" } } }, @@ -9592,13 +11317,13 @@ "keep-alive" ], "Authorization": [ - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyIsImtpZCI6Ik4tbEMwbi05REFMcXdodUhZbkhRNjNHZUNYYyJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTA4NjUxMCwibmJmIjoxNTU1MDg2NTEwLCJleHAiOjE1NTUwOTA0MTAsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQUJXenRjQUNLaU1BTzRCVlBqTXJVQUxoSTExNnhuRHd4Z3k3OUVKcWhvb0owNjJOZ1NZYnlOL1hJamtwbEMrcUo1Q3JKL2d6eFpxNC9aQ21xWmpKdk5nPT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxNjcuMjIwLjIuMTIzIiwibmFtZSI6IkJyYW5kb24gS2xlaW4iLCJvaWQiOiIyNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEiLCJvbnByZW1fc2lkIjoiUy0xLTUtMjEtMjEyNzUyMTE4NC0xNjA0MDEyOTIwLTE4ODc5Mjc1MjctMzA4NjkxNzQiLCJwdWlkIjoiMTAwMzAwMDBBOTE3Nzg5RSIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlpOdElJbXhqNWVKT1NuclFNeHVRMUZ4ZU84eGJidWFCYWtTQVhiNGpETzgiLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1bmlxdWVfbmFtZSI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInVwbiI6ImJya2xlaW5AbWljcm9zb2Z0LmNvbSIsInV0aSI6IjJMV0tUOHRaSEVXQy1Xay15QzhBQUEiLCJ2ZXIiOiIxLjAifQ.kkxCPCcmU5HpDY1L-xZB31pt1jwTMW4expbOdRzu2oknBDsChM-0yN_4drVPRwvIwdtb8vzU_WifXfzCc1rHlNk_ZAmP1yWdr_I48W-GZtkpCLzMRnNTRSxi7y-yrkPwsvn9k2YrSQVIHRkEis9zAfC9VXFbi0EKzDQKBpy-F8AWlvJQryC_lX0L_49gtwDwp4NhZKBpfODsX1F491GssMAskPCw9YJBgUoqDv_hXqU_g-ZXQtNXYXpVjsTacAv3NAKL7EM7cnODG_8FxG6sasOgmeOanrYKJAfNeuwcWibPSiksB2P2YHcd3CntpMyxJ0xo6qIf6YWlZ14T1P21mA" + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.eyJhdWQiOiJodHRwczovL2JhdGNoLmNvcmUud2luZG93cy5uZXQvIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3LyIsImlhdCI6MTU1NTQzMzY4NCwibmJmIjoxNTU1NDMzNjg0LCJleHAiOjE1NTU0Mzc1ODQsIl9jbGFpbV9uYW1lcyI6eyJncm91cHMiOiJzcmMxIn0sIl9jbGFpbV9zb3VyY2VzIjp7InNyYzEiOnsiZW5kcG9pbnQiOiJodHRwczovL2dyYXBoLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny91c2Vycy8yNzI0NDkzNS1hNGI5LTQwYTQtYTI3Mi00Mjk0MmI2N2VjZjEvZ2V0TWVtYmVyT2JqZWN0cyJ9fSwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhMQUFBQWpyNXBDalpjNktNOHpaU1pnMFFUTVc1OEFpdEdUbEpwYWF6UjZQN3k5M1daR0JlTUNoUjE1a1BMcTFDWGpWRmwzWERrRlJnaWVzTk56UGN1VnBISDl3PT0iLCJhbXIiOlsicnNhIiwibWZhIl0sImFwcGlkIjoiMDRiMDc3OTUtOGRkYi00NjFhLWJiZWUtMDJmOWUxYmY3YjQ2IiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNlaWQiOiIxZDUwYzVkZi1mZDAxLTRhNjQtODg1OS04NDcyMzc1OGEyNDQiLCJmYW1pbHlfbmFtZSI6IktsZWluIiwiZ2l2ZW5fbmFtZSI6IkJyYW5kb24iLCJpcGFkZHIiOiIxMzEuMTA3LjE2MC4xMjMiLCJuYW1lIjoiQnJhbmRvbiBLbGVpbiIsIm9pZCI6IjI3MjQ0OTM1LWE0YjktNDBhNC1hMjcyLTQyOTQyYjY3ZWNmMSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0yMTI3NTIxMTg0LTE2MDQwMTI5MjAtMTg4NzkyNzUyNy0zMDg2OTE3NCIsInB1aWQiOiIxMDAzMDAwMEE5MTc3ODlFIiwic2NwIjoidXNlcl9pbXBlcnNvbmF0aW9uIiwic3ViIjoiWk50SUlteGo1ZUpPU25yUU14dVExRnhlTzh4YmJ1YUJha1NBWGI0akRPOCIsInRpZCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsInVuaXF1ZV9uYW1lIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXBuIjoiYnJrbGVpbkBtaWNyb3NvZnQuY29tIiwidXRpIjoiU3NGaFg0Mk5DMEdzYmdGZkEzVUFBQSIsInZlciI6IjEuMCJ9.zXPrHZNGJwecHAA1TDD05PHydzsmx1OccGI2o13Imlm6sgfTLF7ueHh07cAPL9xFLW0B5O4EbkWV6bNW_BKQnM4qua0TVbPg56GowEvnl6N6d_kVIJVW3sjacRAnis_4T-PWkbHOHdM18X--6YefMWVrrlpu6BO4Synhh4MWbwBFHg5uvPw0GosZF2PSa56nxyC0L-8lAKNxxhYk2laA6kiRr8pDKRNCfeUNMvSPcsbl3OaPoxaMY5jzUEwu0jZxSHeO8-XrQwWHJobaIPn6ctVN-RyczQr5SqyiCz_KldjHwNc4OzxwWNyxMvKbwxbkcOZETjas_Yj_INOhAWxz0A" ], "Content-Type": [ "application/json; odata=minimalmetadata; charset=utf-8" ], "client-request-id": [ - "1faedc18-5d42-11e9-9f61-44032c851686" + "5a7c0e66-6069-11e9-9ea6-44032c851686" ], "accept-language": [ "en-US" @@ -9614,20 +11339,23 @@ "message": "OK" }, "headers": { - "ETag": [ - "0x8D6BF6603FDA175" - ], - "DataServiceId": [ - "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" + "request-id": [ + "99df0048-9294-4161-9be6-196c8a0cbfde" ], "Date": [ - "Fri, 12 Apr 2019 16:43:39 GMT" + "Tue, 16 Apr 2019 17:02:02 GMT" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "Last-Modified": [ - "Fri, 12 Apr 2019 16:43:39 GMT" + "Tue, 16 Apr 2019 17:02:02 GMT" + ], + "ETag": [ + "0x8D6C28D3ED8C082" + ], + "DataServiceId": [ + "https://sdktest2.westcentralus.batch.azure.com/jobs/helloworld-job3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -9635,9 +11363,6 @@ "DataServiceVersion": [ "3.0" ], - "request-id": [ - "fbaf4691-c6b7-4303-9bc0-ace034233ce5" - ], "Transfer-Encoding": [ "chunked" ], From a3f123f71f9d2361b78fea09ff97bcfdb54c1db5 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Tue, 16 Apr 2019 10:57:38 -0700 Subject: [PATCH 08/13] Update header verification script --- .../_vendor/v4/azext/batch/models/__init__.py | 3 +-- batch-cli-extensions/azext_batch/custom.py | 1 - scripts/license/_common.py | 16 ++++++++++++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/azext/batch/_vendor/v4/azext/batch/models/__init__.py b/azext/batch/_vendor/v4/azext/batch/models/__init__.py index b15eb7ab..6826fe50 100644 --- a/azext/batch/_vendor/v4/azext/batch/models/__init__.py +++ b/azext/batch/_vendor/v4/azext/batch/models/__init__.py @@ -7,8 +7,7 @@ # Not ideal syntax - but savaes us having to check and repopulate this # list every time the SDK is regenerated. -from . import * -from azext.batch._vendor.v4.azure.batch.models import * +from ....azure.batch.models import * try: from .extended_task_parameter_py3 import ExtendedTaskParameter diff --git a/batch-cli-extensions/azext_batch/custom.py b/batch-cli-extensions/azext_batch/custom.py index 521f771d..6d956e71 100644 --- a/batch-cli-extensions/azext_batch/custom.py +++ b/batch-cli-extensions/azext_batch/custom.py @@ -2,7 +2,6 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- -import json import multiprocessing from azure.cli.core.util import get_file_json from knack.log import get_logger diff --git a/scripts/license/_common.py b/scripts/license/_common.py index d6eca574..5de63fb2 100644 --- a/scripts/license/_common.py +++ b/scripts/license/_common.py @@ -7,13 +7,25 @@ ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..')) -PY_LICENSE_HEADER = \ +EXTENSION_SDK_LICENSE_HEADER = \ """# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- """ +PYTHON_SDK_LICENSE_HEADER = \ +"""# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +""" + env_folders = [ os.path.join(ROOT_DIR, 'env'), os.path.join(ROOT_DIR, 'package-verify-env'), @@ -21,7 +33,7 @@ ] def contains_header(text): - return PY_LICENSE_HEADER in text + return (EXTENSION_SDK_LICENSE_HEADER in text or PYTHON_SDK_LICENSE_HEADER in text) def has_shebang(text): return text.startswith('#!') From d373aae5d969d77dc3db345a24b447e9ef696e09 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Thu, 18 Apr 2019 12:55:21 -0700 Subject: [PATCH 09/13] attempt to fix 27 CI --- azext/batch/_vendor/__init__.py | 10 ++++++++++ azext/batch/_vendor/v4/__init__.py | 10 ++++++++++ azext/batch/_vendor/v4/azext/__init__.py | 10 ++++++++++ azext/batch/_vendor/v4/azext/batch/__init__.py | 12 +++++++++--- .../_vendor/v4/azext/batch/models/__init__.py | 17 ++++++++--------- azext/batch/_vendor/v4/azure/__init__.py | 10 ++++++++++ pylintrc | 1 + 7 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 azext/batch/_vendor/__init__.py create mode 100644 azext/batch/_vendor/v4/__init__.py create mode 100644 azext/batch/_vendor/v4/azext/__init__.py create mode 100644 azext/batch/_vendor/v4/azure/__init__.py diff --git a/azext/batch/_vendor/__init__.py b/azext/batch/_vendor/__init__.py new file mode 100644 index 00000000..59333308 --- /dev/null +++ b/azext/batch/_vendor/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/azext/batch/_vendor/v4/__init__.py b/azext/batch/_vendor/v4/__init__.py new file mode 100644 index 00000000..59333308 --- /dev/null +++ b/azext/batch/_vendor/v4/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/azext/batch/_vendor/v4/azext/__init__.py b/azext/batch/_vendor/v4/azext/__init__.py new file mode 100644 index 00000000..59333308 --- /dev/null +++ b/azext/batch/_vendor/v4/azext/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/azext/batch/_vendor/v4/azext/batch/__init__.py b/azext/batch/_vendor/v4/azext/batch/__init__.py index 34913fb3..59333308 100644 --- a/azext/batch/_vendor/v4/azext/batch/__init__.py +++ b/azext/batch/_vendor/v4/azext/batch/__init__.py @@ -1,4 +1,10 @@ -# -------------------------------------------------------------------------------------------- +# coding=utf-8 +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/azext/batch/_vendor/v4/azext/batch/models/__init__.py b/azext/batch/_vendor/v4/azext/batch/models/__init__.py index 6826fe50..f133834f 100644 --- a/azext/batch/_vendor/v4/azext/batch/models/__init__.py +++ b/azext/batch/_vendor/v4/azext/batch/models/__init__.py @@ -2,12 +2,10 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- - # pylint: disable=wildcard-import,unused-import,unused-wildcard-import - # Not ideal syntax - but savaes us having to check and repopulate this # list every time the SDK is regenerated. -from ....azure.batch.models import * +from azext.batch._vendor.v4.azure.batch.models import * try: from .extended_task_parameter_py3 import ExtendedTaskParameter @@ -16,8 +14,10 @@ from .extended_pool_specification_py3 import ExtendedPoolSpecification from .auto_pool_specification_py3 import AutoPoolSpecification from .output_file_py3 import OutputFile - from .extended_output_file_destination_py3 import ExtendedOutputFileDestination - from .output_file_auto_storage_destination_py3 import OutputFileAutoStorageDestination + from .extended_output_file_destination_py3 import \ + ExtendedOutputFileDestination + from .output_file_auto_storage_destination_py3 import \ + OutputFileAutoStorageDestination from .extended_resource_file_py3 import ExtendedResourceFile from .multi_instance_settings_py3 import MultiInstanceSettings from .file_source_py3 import FileSource @@ -48,7 +48,8 @@ from .auto_pool_specification import AutoPoolSpecification from .output_file import OutputFile from .extended_output_file_destination import ExtendedOutputFileDestination - from .output_file_auto_storage_destination import OutputFileAutoStorageDestination + from .output_file_auto_storage_destination import \ + OutputFileAutoStorageDestination from .extended_resource_file import ExtendedResourceFile from .multi_instance_settings import MultiInstanceSettings from .file_source import FileSource @@ -71,11 +72,9 @@ from .application_template import ApplicationTemplate from .job_template import JobTemplate from .pool_template import PoolTemplate - from .constants import ( PROPS_RESERVED_FOR_JOBS, PROPS_PERMITTED_ON_TEMPLATES) - __all__ = [ 'ExtendedTaskParameter', 'ExtendedJobParameter', @@ -107,4 +106,4 @@ 'ApplicationTemplate', 'JobTemplate', 'PoolTemplate', -] +] \ No newline at end of file diff --git a/azext/batch/_vendor/v4/azure/__init__.py b/azext/batch/_vendor/v4/azure/__init__.py new file mode 100644 index 00000000..59333308 --- /dev/null +++ b/azext/batch/_vendor/v4/azure/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/pylintrc b/pylintrc index 86387600..f92661cd 100644 --- a/pylintrc +++ b/pylintrc @@ -1,5 +1,6 @@ [MASTER] ignore-patterns=test_*,.*?_py3.py +ignore=_vendor reports=no [MESSAGES CONTROL] From 999706c5ed33697cfd26492d800221ea4d3aefa2 Mon Sep 17 00:00:00 2001 From: Brandon Klein Date: Mon, 28 Oct 2019 09:04:02 -0700 Subject: [PATCH 10/13] vendor msrest --- azext/batch/_vendor/v5/PyJWT-1.7.1.tar.gz | Bin 0 -> 41979 bytes azext/batch/_vendor/v5/adal-1.2.2.tar.gz | Bin 0 -> 33520 bytes .../batch/_vendor/v5/azext/batch/__init__.py | 11 + .../_vendor/v5/azext/batch/_file_utils.py | 355 + .../_vendor/v5/azext/batch/_pool_utils.py | 28 + .../_vendor/v5/azext/batch/_template_utils.py | 1230 ++ azext/batch/_vendor/v5/azext/batch/errors.py | 25 + .../_vendor/v5/azext/batch/models/__init__.py | 110 + .../_vendor/v5/azext/batch/models/_models.py | 2114 ++++ .../v5/azext/batch/models/_models_py3.py | 2245 ++++ .../v5/azext/batch/models/constants.py | 70 + azext/batch/_vendor/v5/azure-batch-7.0.0.zip | Bin 0 -> 236003 bytes .../v5/azure-batch-extensions-6.0.1.tar.gz | Bin 0 -> 69828 bytes .../batch/_vendor/v5/azure-common-1.1.23.zip | Bin 0 -> 17297 bytes .../_vendor/v5/azure-mgmt-batch-6.0.0.zip | Bin 0 -> 78197 bytes .../_vendor/v5/azure-mgmt-storage-2.0.0.zip | Bin 0 -> 577882 bytes .../v5/azure-storage-blob-1.5.0.tar.gz | Bin 0 -> 71909 bytes .../v5/azure-storage-common-1.4.2.tar.gz | Bin 0 -> 41507 bytes azext/batch/_vendor/v5/azure/__init__.py | 1 + .../batch/_vendor/v5/azure/batch/__init__.py | 19 + .../_vendor/v5/azure/batch/models/__init__.py | 726 ++ .../models/_batch_service_client_enums.py | 300 + .../_vendor/v5/azure/batch/models/_models.py | 10458 ++++++++++++++++ .../v5/azure/batch/models/_models_py3.py | 10458 ++++++++++++++++ .../v5/azure/batch/models/_paged_models.py | 192 + .../batch/_vendor/v5/certifi-2019.9.11.tar.gz | Bin 0 -> 154855 bytes azext/batch/_vendor/v5/cffi-1.13.1.tar.gz | Bin 0 -> 460208 bytes azext/batch/_vendor/v5/chardet-3.0.4.tar.gz | Bin 0 -> 1868453 bytes .../batch/_vendor/v5/cryptography-2.8.tar.gz | Bin 0 -> 504516 bytes azext/batch/_vendor/v5/idna-2.8.tar.gz | Bin 0 -> 174481 bytes azext/batch/_vendor/v5/isodate-0.6.0.tar.gz | Bin 0 -> 28480 bytes azext/batch/_vendor/v5/isodate/__init__.py | 72 + azext/batch/_vendor/v5/isodate/duration.py | 321 + azext/batch/_vendor/v5/isodate/isodates.py | 213 + azext/batch/_vendor/v5/isodate/isodatetime.py | 68 + azext/batch/_vendor/v5/isodate/isoduration.py | 151 + azext/batch/_vendor/v5/isodate/isoerror.py | 33 + azext/batch/_vendor/v5/isodate/isostrf.py | 214 + azext/batch/_vendor/v5/isodate/isotime.py | 158 + azext/batch/_vendor/v5/isodate/isotzinfo.py | 112 + .../_vendor/v5/isodate/tests/__init__.py | 51 + .../_vendor/v5/isodate/tests/test_date.py | 132 + .../_vendor/v5/isodate/tests/test_datetime.py | 157 + .../_vendor/v5/isodate/tests/test_duration.py | 606 + .../_vendor/v5/isodate/tests/test_pickle.py | 63 + .../_vendor/v5/isodate/tests/test_strf.py | 136 + .../_vendor/v5/isodate/tests/test_time.py | 150 + azext/batch/_vendor/v5/isodate/tzinfo.py | 157 + azext/batch/_vendor/v5/msrest-0.6.10.tar.gz | Bin 0 -> 96756 bytes azext/batch/_vendor/v5/msrest/__init__.py | 40 + azext/batch/_vendor/v5/msrest/exceptions.py | 205 + .../batch/_vendor/v5/msrest/serialization.py | 1806 +++ .../batch/_vendor/v5/msrestazure-0.6.2.tar.gz | Bin 0 -> 47208 bytes azext/batch/_vendor/v5/oauthlib-3.1.0.tar.gz | Bin 0 -> 155362 bytes azext/batch/_vendor/v5/pycparser-2.19.tar.gz | Bin 0 -> 158295 bytes .../_vendor/v5/python-dateutil-2.8.0.tar.gz | Bin 0 -> 327134 bytes azext/batch/_vendor/v5/requests-2.22.0.tar.gz | Bin 0 -> 113406 bytes .../_vendor/v5/requests-oauthlib-1.2.0.tar.gz | Bin 0 -> 83381 bytes azext/batch/_vendor/v5/six-1.12.0.tar.gz | Bin 0 -> 32725 bytes azext/batch/_vendor/v5/urllib3-1.25.6.tar.gz | Bin 0 -> 248292 bytes azext/batch/_vendor/v5/urllib3/__init__.py | 86 + .../batch/_vendor/v5/urllib3/_collections.py | 336 + azext/batch/_vendor/v5/urllib3/connection.py | 448 + .../_vendor/v5/urllib3/connectionpool.py | 1051 ++ .../_vendor/v5/urllib3/contrib/__init__.py | 0 .../v5/urllib3/contrib/_appengine_environ.py | 32 + .../contrib/_securetransport/__init__.py | 0 .../contrib/_securetransport/bindings.py | 492 + .../contrib/_securetransport/low_level.py | 328 + .../_vendor/v5/urllib3/contrib/appengine.py | 321 + .../_vendor/v5/urllib3/contrib/ntlmpool.py | 123 + .../_vendor/v5/urllib3/contrib/pyopenssl.py | 498 + .../v5/urllib3/contrib/securetransport.py | 870 ++ .../batch/_vendor/v5/urllib3/contrib/socks.py | 210 + azext/batch/_vendor/v5/urllib3/exceptions.py | 255 + azext/batch/_vendor/v5/urllib3/fields.py | 273 + azext/batch/_vendor/v5/urllib3/filepost.py | 98 + azext/batch/_vendor/v5/urllib3/poolmanager.py | 470 + azext/batch/_vendor/v5/urllib3/request.py | 171 + azext/batch/_vendor/v5/urllib3/response.py | 809 ++ .../batch/_vendor/v5/urllib3/util/__init__.py | 46 + .../_vendor/v5/urllib3/util/connection.py | 138 + azext/batch/_vendor/v5/urllib3/util/queue.py | 21 + .../batch/_vendor/v5/urllib3/util/request.py | 135 + .../batch/_vendor/v5/urllib3/util/response.py | 86 + azext/batch/_vendor/v5/urllib3/util/retry.py | 450 + azext/batch/_vendor/v5/urllib3/util/ssl_.py | 407 + .../batch/_vendor/v5/urllib3/util/timeout.py | 258 + azext/batch/_vendor/v5/urllib3/util/url.py | 439 + azext/batch/_vendor/v5/urllib3/util/wait.py | 153 + azext/batch/models/constants.py | 8 +- 91 files changed, 42195 insertions(+), 4 deletions(-) create mode 100644 azext/batch/_vendor/v5/PyJWT-1.7.1.tar.gz create mode 100644 azext/batch/_vendor/v5/adal-1.2.2.tar.gz create mode 100644 azext/batch/_vendor/v5/azext/batch/__init__.py create mode 100644 azext/batch/_vendor/v5/azext/batch/_file_utils.py create mode 100644 azext/batch/_vendor/v5/azext/batch/_pool_utils.py create mode 100644 azext/batch/_vendor/v5/azext/batch/_template_utils.py create mode 100644 azext/batch/_vendor/v5/azext/batch/errors.py create mode 100644 azext/batch/_vendor/v5/azext/batch/models/__init__.py create mode 100644 azext/batch/_vendor/v5/azext/batch/models/_models.py create mode 100644 azext/batch/_vendor/v5/azext/batch/models/_models_py3.py create mode 100644 azext/batch/_vendor/v5/azext/batch/models/constants.py create mode 100644 azext/batch/_vendor/v5/azure-batch-7.0.0.zip create mode 100644 azext/batch/_vendor/v5/azure-batch-extensions-6.0.1.tar.gz create mode 100644 azext/batch/_vendor/v5/azure-common-1.1.23.zip create mode 100644 azext/batch/_vendor/v5/azure-mgmt-batch-6.0.0.zip create mode 100644 azext/batch/_vendor/v5/azure-mgmt-storage-2.0.0.zip create mode 100644 azext/batch/_vendor/v5/azure-storage-blob-1.5.0.tar.gz create mode 100644 azext/batch/_vendor/v5/azure-storage-common-1.4.2.tar.gz create mode 100644 azext/batch/_vendor/v5/azure/__init__.py create mode 100644 azext/batch/_vendor/v5/azure/batch/__init__.py create mode 100644 azext/batch/_vendor/v5/azure/batch/models/__init__.py create mode 100644 azext/batch/_vendor/v5/azure/batch/models/_batch_service_client_enums.py create mode 100644 azext/batch/_vendor/v5/azure/batch/models/_models.py create mode 100644 azext/batch/_vendor/v5/azure/batch/models/_models_py3.py create mode 100644 azext/batch/_vendor/v5/azure/batch/models/_paged_models.py create mode 100644 azext/batch/_vendor/v5/certifi-2019.9.11.tar.gz create mode 100644 azext/batch/_vendor/v5/cffi-1.13.1.tar.gz create mode 100644 azext/batch/_vendor/v5/chardet-3.0.4.tar.gz create mode 100644 azext/batch/_vendor/v5/cryptography-2.8.tar.gz create mode 100644 azext/batch/_vendor/v5/idna-2.8.tar.gz create mode 100644 azext/batch/_vendor/v5/isodate-0.6.0.tar.gz create mode 100644 azext/batch/_vendor/v5/isodate/__init__.py create mode 100644 azext/batch/_vendor/v5/isodate/duration.py create mode 100644 azext/batch/_vendor/v5/isodate/isodates.py create mode 100644 azext/batch/_vendor/v5/isodate/isodatetime.py create mode 100644 azext/batch/_vendor/v5/isodate/isoduration.py create mode 100644 azext/batch/_vendor/v5/isodate/isoerror.py create mode 100644 azext/batch/_vendor/v5/isodate/isostrf.py create mode 100644 azext/batch/_vendor/v5/isodate/isotime.py create mode 100644 azext/batch/_vendor/v5/isodate/isotzinfo.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/__init__.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/test_date.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/test_datetime.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/test_duration.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/test_pickle.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/test_strf.py create mode 100644 azext/batch/_vendor/v5/isodate/tests/test_time.py create mode 100644 azext/batch/_vendor/v5/isodate/tzinfo.py create mode 100644 azext/batch/_vendor/v5/msrest-0.6.10.tar.gz create mode 100644 azext/batch/_vendor/v5/msrest/__init__.py create mode 100644 azext/batch/_vendor/v5/msrest/exceptions.py create mode 100644 azext/batch/_vendor/v5/msrest/serialization.py create mode 100644 azext/batch/_vendor/v5/msrestazure-0.6.2.tar.gz create mode 100644 azext/batch/_vendor/v5/oauthlib-3.1.0.tar.gz create mode 100644 azext/batch/_vendor/v5/pycparser-2.19.tar.gz create mode 100644 azext/batch/_vendor/v5/python-dateutil-2.8.0.tar.gz create mode 100644 azext/batch/_vendor/v5/requests-2.22.0.tar.gz create mode 100644 azext/batch/_vendor/v5/requests-oauthlib-1.2.0.tar.gz create mode 100644 azext/batch/_vendor/v5/six-1.12.0.tar.gz create mode 100644 azext/batch/_vendor/v5/urllib3-1.25.6.tar.gz create mode 100644 azext/batch/_vendor/v5/urllib3/__init__.py create mode 100644 azext/batch/_vendor/v5/urllib3/_collections.py create mode 100644 azext/batch/_vendor/v5/urllib3/connection.py create mode 100644 azext/batch/_vendor/v5/urllib3/connectionpool.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/__init__.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/_appengine_environ.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/_securetransport/__init__.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/_securetransport/bindings.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/_securetransport/low_level.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/appengine.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/ntlmpool.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/pyopenssl.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/securetransport.py create mode 100644 azext/batch/_vendor/v5/urllib3/contrib/socks.py create mode 100644 azext/batch/_vendor/v5/urllib3/exceptions.py create mode 100644 azext/batch/_vendor/v5/urllib3/fields.py create mode 100644 azext/batch/_vendor/v5/urllib3/filepost.py create mode 100644 azext/batch/_vendor/v5/urllib3/poolmanager.py create mode 100644 azext/batch/_vendor/v5/urllib3/request.py create mode 100644 azext/batch/_vendor/v5/urllib3/response.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/__init__.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/connection.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/queue.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/request.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/response.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/retry.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/ssl_.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/timeout.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/url.py create mode 100644 azext/batch/_vendor/v5/urllib3/util/wait.py diff --git a/azext/batch/_vendor/v5/PyJWT-1.7.1.tar.gz b/azext/batch/_vendor/v5/PyJWT-1.7.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2ce6449e18eb5b58429fdae250d437fdfd6bc619 GIT binary patch literal 41979 zcmV)aK&rnViwFoLcnVws|72-%bT3eON>@}ZF)lYQF)nmrasceT=~^mF(lFY;xr%yS zrw`Bzks0*a?rsEB91z7}>H7RwMNvR$QH50ni2d%L=N`@toFCtHyf=0ta;O;um%4|B z-o1pX93mqlBO@bYXwHsqE;rN3Vlut;w-5TH;8V=!>E8nVo66+qU;6o5I-7$>#at=} z&&iL!3HiT$!e?w+q9F)>dl-pbMODRl<)B!v_sSq~ApGy23n0BiUs2Yt%z9EhVv*bX08H!eNWGF+$QYNxJE<`q9X31Jf zQ#KSp)r*Mu^Wp|SsxEfhBYD_{DihI?+mG@r;d(mmsEXuzXqp4pL()uqX;?&aHXO<@ zzf#gL#UL;jt#Xrsaf}_}PtukBi@t1(haK54T?P0PyCrD8ZNP+2U?LCzx!n^bOUFw1 zN;0f=cQ{JBe?7T=DNn=E+s7tL!J*YuRRI!~Dq~|Jy9eog!H4_i&Uw$Wln{U?bzvzj zZlxnikFwUa$*U{(#Ib6%+4DJ-=dQ>Wr}_w~3B=l_6@^{l(iqDTT2rW#T4eF=1WWFV zstGL^^3zx`Wd4Ho4X;hvihYk>v@-cZG$Fv3Y$->-ndU$bwS}egYQ+W{0>_ z<)N%ua#!fgNHO4}hG@)^o_2yg0T%vkk1DF^njGB`8t|vgi^Ss2u%m}$JUhbSX}RK* z@cc@)4$Dx;TMGyOYAq<_t%aC+wH6ej1pXT(6{Y8*fgQWK;LwxfQ5RNE?BAYQW#q7f zOu^~Z{UbO)R*w#HVLk5xm zuhkNSFTx(MiK%FG1-7@tCMkT$q_>5h^6YK3>C8{F)$*Xs{d>;%o6an~Ryza_O=qrN zt8J4dA&}0ZC(^ckLm9Wcx6Ej6vINp#3?+YB4cX#_8#U(4ygDBmlv>(Ba|H&GGxeM1*sM z3jRL_qN;4phlxl$0Fi)V5Qor~&ICZRBf|-F#jgrHV;tT++y3U`A59hb#z0rQbe$o? z5T*kFSffk>Nf#ayYEvY#v`IZ&m?D+aP~KnyRd;oc0=qNfWp`JIMt3~Sl{_ZHi1%@ zS6ry9A`?&940`39xiiSwFrO})IkNe3&lTlG*f6P!MZJp}4}n5&tVvkjJDYU>1QfDU zdD0w+@PNOA-O>9F9`JXt_j%vJ0|!IxwxTIkyUlQf#c(Hdp$A_i`E%A1evK?mW|Wv* z$8KaRuDMny$+W4G0HxsX9>VHGH}SJqJE%8==GERwy&@dfZplO6F~C!_QoFdU@7F8k z%i61Dkw?7NG#ryR;V>DsAK!Zxhp5eB-zx26i@B zo+yPlXU9j%+Me^NZ9$R^i_#|9I-Wcdb ztBxwAWOqCqnf@cdBZzn&Eltd??1}kEi}Vopi;Iue3|flnk`)bzf-CJe&^nMP0T{I> zCVB0l1SpY&vt*3)85jO*mv*}pyM%4U#x{&41k--)7Ye7}0ZsSu6cE5HwHhs+*c7SQq*EY{yo^QX-yO-tPjH(qt6waq4 zQ-bj*_TtE6{+FMhgjM14mal^_RI z<2!RzPqg0ECvJ`nXs;9@?S|63J41`EG+>#?8v5 z&3g@iw+%LYkd!-K!t^q}SbK&AXpzM%G;61u^k8byUC*;2&7-6slYez{a@f6B6lN3x zJRU$Wc*TSe<&&UM-E}lUDuxiu7k<_dxW?W6Vb!5u)^yU>a4dwDDWLxjohrWj!2+D4 zIE|8?MkbW{9!0(xy`NK13v9@NYmgWNGs$Rz|J3}uvfZfs_D1EojdoXPv^%$z(JG+L zZRKf&R-WdMXcb`aGGu;BPb;{1)-?gwWMRg^z`cijc;#Ysy1M zAH1X(?C-It-e(obq0_J|XAYNJ1&UIX1x5~go5P%4B0qB7Wf=7wiG1!(9xke{xYf-W z@Uf!{A#a4E)>*?p)bPUqlFVv|wUt;Q9RQod6D5ung;gK|&rgm2Ty+z|rgdvDzxo28 zuQYQ!!plI|pAm8wHS7q#3K@ai-%{+^C8J?05M*z>?S*B8dI4a@3FM^-!U_|FjU@;R zx(`$(mD)Xh3|N4w_>&{1M+lVtc6tc50cZNQw;ep?yPkxAOjQA%YB&)%R8dtul~=+k zS7Q>LnW9PRxQiE%DhPUp2#W=o8||B@1wpDeWerd9rqTsehoaZZ0%3Um+xJ)~gdt`U z^b{(?DKs(vwT6dOe`8CbFdS1}xIKmhvAJ?{cXuv)T?Bt_#nJqVqlFcp=2v`LSP^&d z1<;OOsr zEg^Ih{)h6MQN1VCb{A3RXc6^2y+UDb>zNo1?lr1%8`xllr`IUSZG#gVEw1nu>Y1lX zu;p^s;rP|_C~kb(oIUl;LgycYvHH>C9NB;3l>Sy(@O4F{_bBgD7&0rUB}NQQgn_<;BxBGaI?Wbgrf9|P_`_22o!4RMCC`8gm5DZU0sV>!lR~7N%vON45=&% zEkOwwZIf=35-!|#-FO_(!>rI_{+?G= zZ3Om`Wp_b)*sme-)Aqj*Gr*;{LD6M>Ma?w$Jz%RPAiEGw5BAfZHhxly2@DJC1&`-k z!f3U^<;7vYx62D5h=B4y(B6t7F+_9yWBb{x;a^J};cKSRIoTKn7j^B?i?`~OiR@b~lmd)@ypl}!iz|5Ew% z+W+q}KDfJ~UD*#h@jry2-W{vNB78zL$xLBSwCEk?Dqu2S0i~m;iZ!E~CNXV|IA-W@ zs+w5?T}v6k zK`G)0x$YY5;w_{WwiR(7$KYAau9|R{c6$+iVQy6@m6Z1?CUe})QUTVDNw+mA|2wvphPgo1=$giNw%Tcw3tn!)atPT=KS<`v%p+#vCY zi04desteo@72%bi#-f^_TOhqFn!+h2>Bu&?RIppY0=m@jN>I_d@(7Mac>AK$R;j`b ze@O$;5G8V1L!1HNz#|R9t;hf(kRQk}$h{%^kqH+qeL}n;n{Yw{bf+R7KZ56kfY$lK zi!usFkgM{4@4`{N8+(om|C@Z71&tATH>960!j(x}Vv>06jEjV-1VG?WOv@BvZ1S@4 zi0giz_}E5y4e#wfPA+-eCaO==cLKN`Q^TRC5XHhS4#a+rm6-J9#ldu-sIsdX;5FqR zywjxf{nuZGlGh&C)x+0aAss*sfMeq!<|++??I`^y5q&keyGtf6?qVme4!Se$;f?0K zZ%|OkJCX@fE*%2;80-pNWdh7RMxLWTmUlqoUJ`jQoagO2t_jE2hK&4Eb_t(std!{{ zkypo}e>eA{!ruwGLZx^@_y_)3%a4E7_zxqc4S(NN09-8prHk2I+AsfQvbnYV_lfZz zNRS8i9V9$tf-H1{B*N0}0*csM-2M7P`VO6V$!^F!&)M$;DbN6cddE8ZGO|omyr*+dD z%iXdSEKlATtn{g3qE79CO>#vQl_B+)i-*Pd7|KQ;1w#|3!A?ZB0*0ckjZsjz4vc+J_i-5mU5J`(H$aC zCPGWe&!dI!wN7v0dquPsz8A;c#q~`y{5@NO3_v22%qc-ZSX6=zf(oQQ3s0O3=CwmK zfsue#ZicrJ31>>k+Wbz}Es=@>R$4@lXqV?lHn$ZQUunB6X2Rm)l(tNE=V6!R?1I1& z00P-1^G7mB&5(+m4FxKDD6xXPjvfxCGI9(-gi``NUAc}1$Ov7ReKz74mk4zzn{)TV zT4z4533T{^1tsX3I^&0ZQ;05%w-H6_N7jIe4KR32&o#~$p-CTmU7N|F4Y>jyOuk2v z1VKnfI)gt*O!wZw0FH=vyR*Fr#FrN&~2XQ-Ixn5O&Q$8WYYl* zgjn8H$WB^)^c(UT8oUvO!q#CAE66t3(3J z!lq5KQblJwWGgKpgahHQ4Cd(;$}&JUUA&&5*WD%-zk zOSs_>RTW*zaAx|L$T_%pL?J4C4K_g+7Y|9W;Xtw>0Ni7Aho@fbASSBFRoL9cli}@M z4$x)QuE}&+Ll`O2?u^roBss7~EIo5sZeItlUr}%)5-Tsj*G}Be93nUb2l( zV?a$lXHG6wnIS&!{N=9j?=U%lK60$;gZJXBfut#0OgxDN8%nT-JU42HROAUE3z18*VMRsgoYMy$+EF1 z6Ey8ksZ6{h{M|&|gX=2%ja%hXo$>GmA{jB;{-W`amFw+-h`8OhLp_enOK%wM31DC1 zK?|lf3;4n|71J4(w{>R{gG`)NafJi$H%hN-?WXNEMRp)yEKMQuKK(IYPEcieD$aIO ziFsVkB_%7={EXOL(z2lo=et|5#$A_|r5+c-))GYYjW6Jt#HBt^(Xp{dKG0>n2FQA$ zSQKrlvS<=7dRLRgl9V$Qph?&RlMADn1zDSy!d#?HG3+{Q`)HfKN0T4&C28rFsJ2a@ zb*=01fC{b}KH~`?=01NW$X*sBI@^SOSdG6Xe)85_ONh1#v}7N6ffr!A?gix|eXckN ztO0x7*fr5W%@)eIFo%*DynxNgCz5%|5=Bv*HopEv`+~|#X;?1I+Ry_;*A!Ep^Ln#*BwpMslyI8m zlo=1>ihg@FOJswC;=OycKp*UOpA-7g6U;mAXl^fu(-cI`tR5j1`Vc{N9>xJ11>zz6j;fNag+wj^hGGOR`0q&e+2HYRMG?$=3+=l7M=^k^m0N zCdjVN{8>SkvP5!fB{Q2`jiZs>DzYT@mK$qVp<|(Ao&`o630m9JAt43eFWMOy&3u06 zxgv0mOuQ%ep!hSki^2-CR~PnlKTo>#)m!M?5bWc-@6r7d!mizus+iWI7+rHlPuDin zJz``{#A`I}4;$v|UGj~LXj>$r3Gu@9ju5?q@}+R?M)G~&EP(@sw;{uzu~WUT-Y_&j zsre)VGa#-p33A6fc6>HR90@X{C|C3vbaG$~ zRRRsLxwfTPs@z7UesnYg@{PhXZuCo@62iu(;@BGK27P#>oB#8FgeIMDd1L#NT)*Aik;#3{pJR!yqH* zWxxNb7L7sw4-Kud-!%`|>iNI&h1@#-*Y7(2&PCzY=g)rztwPuH{|A}>(Ts-ZeX~gT ziu{)e*#BlSnPPS=|9ztUZ-vhAp=b_xsE+VA7^Nfp4F>2S(gu6((JtYs2gui!r?4i9$!A5v@1G}@c0fIiN7(vd{{58`oVr^J8S*VJM8~$50*Ap|9_7Dr=eT&4&6n1=vauCZQ>9Zglpbm-;qQ#Y+^fXM;?e11y~B% zREV2rCh|p?lAAPI(yoe0(VoV*=i#PA9`h85)C^U@l$9fr!E!tzJEAWsZN$!q33WeK zG^kZROfpz5mfBotz(L;Ui35M8{6mX&a7v3TC|PKLw(uHu7_#F9A%6Z?vcsE0x4k`V z+ma#M=0*B}Q3bJ`B+k$ydFT~B}MT?*$RzV;0k1w@CCB*9I$Np zfku@eio(7jjs`Q34_<~CbIwqPilt0sGwEcs^hOJa`CQ`KUDI@2=MwCe-TO2`J=qoq zdWevOGoEBR#PyL0Kwep$yzz$c+6jpVG?x8-a1lG?e6Y1J+27q(Bq*KEkxbFdl^r~2 zRbmt743NesdUbfO0TeigEEwGDsCtj#1#)F7+GuQrj*+|xA0v51?7-o#JxH=1qINR* zp+F;a(H?}q3%LmI1z-N^4l_j?{JJZ2qPtPyA3`iAY+@;IW_k*I5}-H59!ydp=NUv` zhzv0I5a+h!DVu}?H0Gj?Avg(4q0Ac(rjK$WQK4_6s0zQh2Sz8zF@}#tPi_CMk#3T; z%njE$>fk2}7PcD}_R7X0MJ_8FCn3k&777~mxjYB z1rb65k%d!9SF}U~&`*`lIB94v7EWud1p;be3p5yk7;wYM0|F2={%3gu@w+&|=nfhE9U+(1(Gw%BxZMJ!iszn=3Dy zL{lnP6ftkXB<(83!HBqyb}?^=z=Vs|;y%aW0JGq|6O9{d+~t3WNWeH9FapPm*o|W^ zlnjA1vR~T{^aj5Z_>d77-%+|0k>nr!hZ~c__kZgfj}Vwg6BHGV|i}G72OkyTeXKBptGXZn9Y%3Y`WcrwxqK(eWc@pf=LmP`2EI0Oc!Ub?-*!Yw}@ZEatVQd3hnmF*N zs^HLyrzAU3(Xs&xEuOYeL-FN0n(r(%uX@N;B8}VSyGNwnZ@bKw(Nz^>99A=U8jW6Z zkK-W)j7C2CySYKzL0QgeJ%VwNE1uZq05U8UQ;0c%L*fxX!2wjEG#K%b7nBPlxQK_A zoI)bQoVou>W@z{1zj1z`n z;Y~KGF$HYO4_4e09rJ=@aBz1(%%Ma>MnetaFehWMcS}ZpbWadXv}sT@;-?$NfVW}l$dG5we(PaTFs<`WI(Xc$F97A=oW88N9L-jC+o#1Rw(XJY3C zj11}%956%`y6(FJ+1Ulq|5SDu_R4aEz7y(~NXqkq)#1Fgvk6`#O z7yZ$3V&FH{^W4Rp6uaFRE$%XO33IUY%;KEMyRz$<7*FFZbLYw+V(3#-;BvKx#c;gv z-q5IT@sxYk^WtfDGWK42><^vZ-GNYeewl@lX`+r@s1*XcH~p_VcRuIOA_XEik+|4h zOx-8Rhh=>c3A03sV=<0l|xL zrZw?VwX+g}AvxTkBcd7x3!GDXscnwRh0cC_NCQTAQAC2h!Wdy^ptfwb@RFbev*UF8 zn+F<(;)Sv3SeY36>os(w5BdFwUBnwM+J@47w;Kq`92Q2}=^`xCQ-JJBS&MdKaB=i587EyoTZ?B!$h z>wSnH5384S8!iWoT1}T?fLEZFqHd6>wP?g|0m(UgK;pw?;2c}XzT{eATKF+$UMk;) zZq>O7x!k2&N$BRV;p~r5yjt^YD?QBjmK3Twi9S6LK>+rgp*F&sw5{C#i8q~2Y?#Gq zF&AYf4jYb393mmK_)ZaBg@Wy=j0Y`&!w7C2_WWm~B>Sa!UfFK#dr;874+-1sYGECE z{T)NE`*;|SUgDmwMKRfN9>U^k&kg1LZt^Oy!=n=@d98OX@B0;0;5ffhQ=_0vAsBMNjJT>=F zlU*dkP8&{uMxC@8Xwl)@1J5=zR$*CM#@NJzz*w^s)z!GinMk*ZiR+IdR)s{$! zU@tF{Bz*~Bz3Cxb1Ng8M5v<=phKL1fEY2`j&Jf}2>(vAi3zBFAX46N7A2OZ1`(@_S zy;}!>^{%-OfmPzMFan@5mbv_X=!qEW-&K84Lw{y(GPGop;s? zw-IqgzxHhSJyB7;gI;*fUWnjV4wT-YwOlG--qB1p@a*)_M}TfXSE<}1-_%@v~8 zns1I?YyM31TJsMOz1DC4F_6{KJG+0q8vi4m_UHf2=hJKZzfbv)YyWnep8MNve)T^x z&}G7jN)cifGEzkgMR(gtY-U?o@K)TxSTRc^hG^xFTpnSpv|A52*OFLR{r*gEmv0J=-*Z{;@@^E9vewCz8@M?U+kcrm9{gyq7 z#eZ}AQq<3Ud)I=FHm)?1OmoB2f&G--bNB*^>^cyPNJyBrw?NEs?(x^$6*ej~jLe2> z`|%XwWE0X2dlPeepanZ<&YH7jTHpA)nI!+AqS<>W1^hstqnSDLr+A4I&BzPcnvm5M7f0i1RFhcecA9`2+SSw2GvOiq^IxURT4`;aUXIQ<6)Al@Ne9ION3c+*i;ixW6d@RuO_Sq`I4JkVQSyj zStDs%W@E{i>q3z7Jq+w(SSW{^>~28Ox`2k=4C-AX3Yujh_AnCmE)EIdfbmd3C{Sx3 zkiUli2cO)}i~pa7{{{R%vZ=NG@8`sS`>(CBX>4^AZA;cB0^L%X92XP|#g3_~W6ZBY zekbP1iK5YmL!K#z$&Dx{vagtf(JwQ4Oj}*t(+Qo=4tta(GOskIuZgi+MSA~#X%K^C zR-S89FkvXMpY&Up1g+zaX))W%nOwJ#=HRTF6k4(@Y;F?qjv9i2v}YSVeG&G?it6at zs5a0CkE8$NW|Bm}H2OrNgOCQY%seK92`W*HK2t;!FYdI*@By=eebswCQ)YRfL{*Sr zXa1*Kl6XXBPE$b=gSGFed-CKf{f#b)leqA!koHOu6Y8;yF4ZJudJ_MM#lI2{>hI~D z`?%K#qavDQ)XWdu1HvS!m|dk0gNO$^Aq_5ydFr&?0~A^Rd_CG2HcQI78(u1dA?3RL< zvR{3l+y|~-zdxeAn+#Rqv1 zNGr~!$|VodNCWO;ql+Dfdfa<-^_K(LkcFv8tYl?UhXBXDsOU_(?qsN|I`YXj-!hCC z*N+o^ik5y+dTn1LXfOrds!XL@CnJsNIxog0HwULhRQQ z^%FNM3MGvmDn81XM@N)oZl^~>4{lN2{YX^UwYT%OGZUai;4?yOmqbpW_z`N$jE`wu z71P`u%DA`ern9L`Dz}{~reCkt)AijBNLX0!YdXb)l#+%7wh!|?3Wp~F>EIBNgxD4a zTvi$z2HwS9Y05JZ8>j{aNrQX=>S_(4kx1OTJX~LJz9i^JxD8WA75z#5d>B4ZnN?#ME!1$x90*RMfejx2# zBn;H@$w3IH+{8HqT5jrStLfeFChZnz18(rmafd>0QVMd9#d+t9hNPa_jnWvpXe>cF zis>Dn1ltB90UEa*i^Z#JnFHF@BH?hE67t_ECbr5w_CASHk^jvA%Kq6yX$nmE~l zC|d3pXTx=oGYTQ2oBFn zR#6UXLeOw~+Xcaujn55sJft1daTPLSBuuII6k+3>Zf<^@+v3Y&oYP`{oU@(4g>$lp z!A9Uo7wYL_-g=@H{AA>9&*{@`u*NX(*NLGM{F-T?(C+$(~5MOSC>hp62=8%;oR2?>kD5$R(q zRK7kYSdq%(bNQ7d)3g(QL=vwylxEs0`}*6>77vZFcpgg08jE3l1Gb7;yk z6Ww+Mm~J`l9*7M*IrZa2trdTNA^l(T_+Yc%*gt#kK3>!RrHXl9{sv$^kCaK4&K=CGDf7gd?BS*iY*^jF?LpQ5#p_`skrSG}b4NI>Uq-5q z(8Wi|gemB~)`PWu1s7@{T(c84Nbd$@G~J3vi+ z*|NvFsHHirECLML5l5qmJkt%*pg2;t;QWB9MRN-sqsQjfprl#Fl=xLmg+ZT%Af z-nHCr&3-t;T4t^KXJ{E9m0>?=4is7Knn^{6iU8!qLEb_zurRyWP3lIUR$jhqNeAIT zR8`V3UeTMr0c>@|ZeLzu4uh@!{4An22#!^l?UoLb&!7v$t$*?(qKcsltyi!{jGSG~ zDtZu-GSAiGTdN?V|G3z%2*rGQTlmFZ1GgY^!=qM0rwZq=MKfTEY(k7NG}RX%j`BI>Zuu_s_94 zY@7PnkmTKiLzB|T|BVlaau;aH_fQgtaOUi5yJVHnN4jR=1vj=$i21)ij*`Cq1u4nR z+&nbp=X7xDH8#mZGf7uHK4Iu5lUmAV)7x9wbP;oYW;eU?cD~c;%A1|6EN-ULa&dFJ z(CKaFdO5k&+fL{6rBZU_ayqlW)TxW8+ab*XeQt507ZU#QkC8I^$3J#L2Z$%d&5o)| zk1#NE5G;eA|4V=tcrqrR+!6e8Wh)tNFz0r?v%_y?Lp%QU*I)V7se6;;uc&6D>vjA2 zchm%-ED9$)u0;6_PWDvE=eAepiZ<`PM^v624LS#sa;6;BuU_iuhEg}{+C^Tf)C={; z(YNc$(RLCFy>v2Zwf>+h(!qYdbFe+Q!xuSgx^Lwh%8S-0<;pj@p6(Wp&(fFenJ%U7 z3g6B~XV>Obl$v+_==>q$XxPOE8)E1P%-!#74ENqagrH!-d{wCWN5I>l5b6q>Ju<~R zJK-ZBoXB}Cv*TJLq-@BIgtw@(2Lq!XqArFzK(eS^0M?Hm zykpb_{P>YvfWoRSjcp+z6o(;5yvCgX70~FfC!k;>=o(G}?i!1PpDkJ2qH@#L0+=q* zPV=>8cndouUP>5a*z<^CCk<2vP_d0qFm$}c>!C%vr0OJv7P6I}V<&XKG-Yc%B5Cy8 zGGOFbo=tV5Ywi%AKH_fVsQk#@jmDy2o_cj;;>cU|I(qShbd zwH_3$X?;}z1h~twqa40IYt@DF2v9tME_TS_j=%O)X`%!v4u^xkh2-8s2eS>LW$M7gxj%S&_{MG%``TvbkA%hC}KOyEzFw?y2IVTnaoU z)`!Ob$z-x=zy1$I!L|PHGd|_3%fqvaR-|%RZXDE3&JL2pZseq1 zsWn=)$Z5Gz->2 zOP@HSp}+CpwihMt7Y=3uPyLNZs^WhV)|VH7t{1@;ZEVtKzMo;}^}d-qHVlmtQja`- zm_7ocF?vdpggFSl8jU-luLeU=3VmUi;@tM|U08$o6~1J!KoSd#kYyQ3We?OP~sQo{c%KPsBGVrUo-v2-2^Bsdn z=&IbNw`S&jgdXXszKCyyJNPHEmiPao*1ubd`bhadmC5?oe=4`W|Nop%{$)wY3`TukF|Me1BuYb1wncDZ=`*=llwpa$2Q81G%yi4y1(f}M1@?Fi-H6_MKBRKrYAJ@o;4L&v>(wlbx9#H zqPlM50ima;vMIz!TErHsu@O(uP)DK~QD`83{)*hi>thVUh+!Nh8uwe#Bz4^7SM~T> zRfY=dfyD90;hPa?bd2FS5zYjL?^k;GS0=+6jXQXSoe;VTHr*Lp@X*AE1e*yQ$Chqj zViq+5Ehreiu;+m;L4*3~h#Tmip~%E1(*d(Hut%bpk>1$Qpi7z5>FR(o(jyNpON=FS z%-e%QlXQ*76vGIAIMrfD$Be7?>}t9Npi&TU0!GfPvRCFnq?sZq!sISZHslP)!0t)> zQ4HaSCqrT-;u~fX`ai4*t+V~hoAO0XsJDdX#o2YeTB`~hz55|bN}oD&11_Km-WikN%=x(UR^ZL zS~cjt3e7g^jr|MgrFL3tTqdDccqY`Y;fK&VET5cUR}prV2Ji`$v*ztZ{owFYI6OP4 z*5Kh@4InG;oz!SoFsRB&xqg}us^!!2L5%6akpMlRi@#V(2%q?PY2 zd5F7>Brw+`*y-+L%-_b8hZET#9t&~UbG~0`EGtR({`=VZ9(gyT=*X8ZUj&N9ZiM{U zSDyLTa<_|LzfZ^lyZ=uAykqC?4mX9X5hipawpoIGddE$g7&(s=O#>twWICWUR1>J~ z)y|Pj{WoY@We#?Vf}MJIux+Gm3K#Ma<&w(9$v&~M6##UELHPb9o6p{V$A7}dN`vkj zFa{`E09f%K5ArvK7EQZHV(T*#xoonC6^ePN0RNEh+xUH(d@tqTJN!d&P)Ozw2l(fm z>Bb(-g^b=lG7ZD15bJmv3ASU%;v4ltBz-Y-qC-+U$o>`KEvi z+%e36g$t__gjZr2OSTjmF&u!);hf|Ga{^yTPGDhx*UO|J;yi~aCND|MS(+_N_+FI6 zTw1>8e`#A)T{2lyGI3bpZYeZyII$MSDaVV<@LbgtdkA12$(z%ZD)&WcMvVClYW`}n z1P?e7+-L^tW{Xf4{^6KUQ_QD7j81G*TPKI2H8Aw4Dg59WC|Ln)zC*HoLAT4Wj4{7WPzMm zvdJt0mjbNgKZqW5JY|uV?Z~m3KBd9xNtDwcp~*mh@U-s48O{~d{s;Du#^I+6einob z6n&C5WuP|$b3mvxy}3@K{1f1is#CcD`3L6_!DNGl1qDxV_arMLh25t(_VaXo=Rb6P z*EPw&ozlsD!t-;nbDbv-AJ23L11C3!$y74p=Wm3;k4<_2=KBq_%X7!L%<9A1PC_F$ zB1Y%!;8~pLZK90OomWXqgS zOc7Wr{=>F`5Xpp2r=3`Wt8W-T3s8l(&H9jd6nNSl$|mj@wEGkmCA$H=4x#g~BM|y! zo-&MrG$1wZ6oXZfh>Gc@q>lntC;*w^KS&SHBXoJkttvE=Fe#qH;yHWPQ*_opj0w{T zaP!|Ya{k@XR8#1tu;4Q0UwxNQwbR3!1x_ z>|^N?5CZ-K;Oxm3a$TCG#HIj3T6CWmHFp+)foOTNa)dD{x_>H|Gg*tms-B37O3pyI zK9I1ogs@n$5;7#3VM~ZAq7|jdw_%qeo0g#J8g46wj0Ye<9KgSgbG}U)Y3SOf228_% zsqoacw>zGQxsDj@mT3x9_de&^<{TDHyJMW*109RL4r4)qGeZPUXRT9eA^Tsn*2=l$xym;W&`S^L0ZRuSRG?D zq|w+3mI{caf@dL8@Q!YdJp_GtTCNaL;sV;|94LjOOL1{JM>m7qM{Ne1sCTTLZqhZw zQn}b}o1!Un@Q4QJ8>^Tc1=9$KuycXv%;XbTDR7D=Gu|bb$s%U5Huz}@e)^-pZ^%=i zQYIdd-MvW3xe^LkB^!ejf2ohcU+tOb)%o5a zi4v;t$rT4XPQl5KDK5-pfTm&6HF;|9LqH9TO$m~0;57?dw-G^zu{Uk4(@XGTZCKmR z5BYf%CkujdkRPX1&bnYyUDQJTEGcsj9+2WXxT)!Zro;j=+sYT+}$5|N$`U( zasz(wgggvD2N`#(yxDBEgjka{ z+@uXR0}W%NBn=65T}8pt6jcjT{q=DxLIDNZ8DSzC%x?(Y6c8tc?0p#7iG=WeEI3{h z=0xR1LQ^a?+yHZ8V+np+gmWgcGv~-q01lS5haTYE`99bJpqo{fNNG%@%20aX+os4F zJ&Kq-W3)hYimsy!4~Sw$3_v?z8Sv9h3Rff#kl5?dowqY%*OLRn(#9iTCtY&ffg|YG zB&D7V705ClM?VzpWQ%2o8C#GfSM7r!^6nJ}#n!*;Fo|7ry|Qa`A{S)X%##VGawFxN?tT~_VYBK&$~(`hcQLu8 z67M?3F_E?GifTYGnZ=zmo4L2!=&ACvg5oC0m7`oqa~33OL>RxsG}*$j6_fyzzWA~W9W7cG9;_Jh5N(= zm9<1_CxQ|j*q-yLZ6fzjil>yF!ZD{(_bx6bh$PCGOZh|?7N#7emK3ocgqQt@(-x4( zQm(b(S*^1Q%Q*)`K|C($YX1NCNL%jF;@}iZ=BeF8v^2r#27rF>6R4X_yCbpO z$A1tQ(l{Y$yb_4G@8q1QL30BHQg2j4-XaGwU@M0}ED=W0tJF_H{VdccH6x6JtOfv7 zWDTVM7!9OX!~v;D8c0(dWL9n<%^=9o2C^$RkYNpEX#=^H8_2Q-a=d}`%5=mVNJrQ? zf7J%ktbt5~DdgTl$)sk4>2X(UAkT)7r$flEJcK+OLY@yHyK)132-yg`8Ctagx*7`< z2Zfb!P+&MHP#hFi9zucPpumTaTe$%~gj|H(n6KJEjxq1MK-fa4eSF%<>hN+N)d86TfRmPp~|n)M;`kqtTLwsT#?1x3N?zj z1WT*ns)V>ItpZgEq1s-B{*LT6=tv)Ay+cXLzTrD%$8QE0o0Cne9PA;Aa)C@%y|Ll zytv9Zia3s9dX*aK2)ROCp$1~Nv`QZ(=p(zz{*XTE0du6(JT`E7U;j=2z(>kA1AdeX_`X&>nDw8o;U1 zEO7Z61%#@&%A6N*&Wqct)Bp~LHipaBC;@i4>BkE42CLGQGsTYBlhXyc*iCmj1v#5f zZ*R-RVrjdODdsW}ZeF)i+gKx??PR;f?shLPb+hSCw_6f3ol-W_O>bvXsX`{Zz4jOQ z6WISV2bRzF|4XMc*?|9FA+@&u|FroRRJ=It^3bi3IY!&Urogcz{1VK=075{$zwv7% z60ws4h$Lx8B&?ZD!N~}~zx}I^**$nGP0^AD#9Xs0w8s6uY!W4HWUe_mK(?nFiYe^N zYFGHBgWr=q`2H_VpNJ#fw30pJSK${`w+4zKs$Eg@^a%C;=l?N>W9aXH{@qRj6W` z5ok+!l#`=@qAH_g7azHX$==e(Q{8w3_?+=yE1KRF4#p!3CKpw=#sr_Z(IjBGs%*%Q z!i}t0FVO8T-G^zZkjlG@t(oedl>gIUe1H28{=ZuOuUsDftn+{UF7xk+r1>fPe=$|$ z{(qTFmc;+frq}VmKIKDhPVv5u%s9^^5hIc2VMCMTHnBfUupeVh!M!0tZd}`#7p9OK z8)|#3Xcju)`yNH&kqB#&dYZxJ{xAA1i924BnE@EeiyYffw9(j_h-yN99udQvjfC)> zKoUzOgif?vj>Z%8cbfb@w|{5yd3@5I+D{7ke6~nSmG_)_KwtR+oOtlfUV75lx7%P~ z5r|@&&_Ohs5D-Xn*A4MA+7HI4J>u>)UU(7{vUoglACGk99`U|w2QU${2Pg2+#c6&3 zY7Zdn3iIpG)D@y>%792-e%Eg3tw<#pO$aHD9D>n=kam6pJ`)1q)?EUynGgteou>?w zP}jjPymezFgkYAy$)Z}XW5wy*O}uS7d2M3)-PW}>a~W#WyZ;!2f%;5Rw9*NGg#lo8Zf6j-qXA(}D zeYcdM93dNnB&xF31^l?)^oR5vx=P}2{*M1nkWyV)wM14>mXsmQ6Nlxh^k*buZ#|6I zcmbL`$$sm0Gj;DyF7Jf|`p=+su-B)jhO3Ra#>pWY z9~n^69VMNQXCRtwmVJX3^6bT9OKKxVfdGdi7pw0n&p0B&YyeN3fiNRmg2Y&SPI;E| zh}YTJ*bpj)jQMiV9*E=`5>PKdO~+-6xxdQjk0A2e+=!4S#ep{5{r}r$RZ+kZ=2?1> zd%bAFc?^6S9(zU?iwj?cblz2n0D!d>%@j4on$eU{zrnbONhwL;1CY{j*nF27ADL~+ zVG%o~to9O!Cl?cCS(Vy+JiEfbqeQKN9l`-wbti@5g;{!~T|3)Upacz{9P{M!>9~?+ zm6g{1>8x>itDIEIO7~Em)*tjfPn;F?)x$(u`rXa5*_qV~^~zDUlRYx;!V1Ek*gvVB z=%R9T{Csx&G}`;tsvXRVt=pE;yBj=cR)4rHS)i*c`_;pUy$t5 za|@L_QtKjHy%`U;)5mB1-tqI*;jmaTPRw@IFz(V7quL)`?eD*+rhB0*FD=hCAi7|V`9kD=R&8?b`+#YF z12=R};*xyPQ{{~ua^dOejnkg6!(;5G--!fxgRVKJRFJR(KP1p+4lTT+i&r@sVj~5# ziKO&#lRuwFFFWyCcOng+AM46gx&3zi2(9vzj;fox41r*++Ie7o6e?(e1YMJcm)Xl|CQ zbT?C}oMy`Zp(H_F$lD#<`GE&|X4~!y-z@SLH8!y0OE4SCf1yEf*y)Np?o7m%leITKN1ow&GmeV3(nAlywqgSRv)ZT;3?t+( zcA8*2=`lTVMxoZGsBJ<;ciQ9lPZ9b8K?ka<@*$Cv#+~fBb$gSu#G8DouB8^#Y8LX! zZC^jM_MY}q#pbEC*BT!;u4?sWv)LOy^o|ZP>7rDt6$-0LK1&O#4rT%(Dq?b3c{FVP z6w!La{9zP|-(~(rx8KfJoWH~L!B9Hyw`MIde{yzw+j%({ZfHNUz1}?()4M} znFE&!#djVj+|l1w!dr+g!B+}VYVa4b%Q%`E7+{-)-ti`=XFxh9uccHVuI8K#S(W9f zIP-|^jElv5jeRF5xQCrKKs!|L9rF(fv5SA%mKl$~-UTA?gS$ZV|6CUly3C^$bZ^$x zs8CZ?WrPt|D`R8ARKrAHOkyL5u6LXoS_|4&TC-6XpvI(?phl{)swJ$1og@t$}8BN$@=k0f3&caSDs)cGP@S zMoKS+aYh`)J4Qee;n=;qQ4!Ho7n8m7z+xUpUN**!_#%a~Y-UTj_fcjNwgY3=V$r#2 zJ3(lR8d0*j_eNeuWcM}hU|6ADD3FAac4P6Cm7z!bS1+fzM&&grzcWX+*HVFUg|&XGIKA}eK{?hZQtGvuk}sq*=$$j@=?`ax1m={CynB*(v(kzR(6YE?$kaDW|w0T?1NV)E@zwW5qFw(ukVeNMCFxrz+*>SrwNfny6r;?Fx zWHz@Sw~L!kz0IRatK+Zx@^n+U$mCP!#eSpmEq_sL7!|d6dU=|wUhdsJ9(1nMCv*Qw zm6Zea;iuH>bjseYw{@>y3~#kww2K$5@mY(OCAj^hRoi;^RXb~(XSMqFq*gVHYHhGt z8I{tfQgf`F=k6{hh5eJ9Jh{BREf3P){B_lf%gc*w<)t)gmbY70-_%PN;`Z~wUhZ4g zPz^CHm5yH0Dedy=VeGGamMWZ`4vYG?uAx1T(#LfL*n(`_96p{G)ofQ)Uh0qO&hWIH z%NPB1Z!*2cOQUyqt&D5ce7$v=Dy6&qURx}tpZ2Cl?OAJZdTO-Jde7Bof8F7?Z7ElM zxX}9-M+c?WX}&obojldsmEpE>-aI&+3~!H%{TJyeBOUqcj*Y{Mqw3M&5XjrYA%HGw3(kPivN2ye$+Mh|!$4`g7 zE3JFisg=(jq)K_PXZY(r-P~k{t!rg+)f;!r+s^c=dv%cQwJw?u;#E@`$))n|%9}#< zR!-O-X9Xs>yy{wtesL{uhrH?1CC-;TcHwr$EKvu>9Jv}bOfsb9#-}IpO)2t)&F=+5{#sqN)AvZoWfKS2|w1?&1 zCKfubu3W8s5pHnZWw9S!>zeG8o8S@ZI+M**`K0mc4MCyEuG^^CO0|=~m(U zjY7yR-hU8+7E#tf8NNzdiq;klL!5o=68p~a#~{N>K+~HtNIlW}-fFhdoTXq{+OtoM~tta6IWp9 zwnFFRwY|hks6Abe{xnZuP8WgpK4M1+qrX>K;>WMsr7`mUywK$+6#uz(Y~zvWeY~>D z2a0ux4<(p@&WCm$uJdsXTz($C>zJv!Enq7lY`U}&U2%r0h|k5xGI~IAfalALIF&NP zIG(bt-2uLhhCD2t#(Sdf3%c35b9MaD8M}jGSE>^jAEto&Z8;{76;_!GG;;f#xqzPj z+;c(AidL8ltgy;lpjq4J%mwuH=bj6ye_vrPu)=(vZL76I(adoX+gQdHa3g5cw}IEz zFP%(Utv~3Bbg-ZA9BdEn<`vFa(|s%7P+qh~DObMH^>nv*e3rg!&vYquSNL`|I=eQf zqSU-AZ@iIr+XG%^M*}*3*By;6q~MPB_4nSjgC@AF2+0T(3xJKff3+7+a>#V|^_ggi;gjEH;ROJj48B-2lgvcp zVFLb=(KYyNvN^}jLs@eOeR#_z1otHF28JAFmiwyi*Ts%qb{7BkW5YEOzb&}X3gldB zW4^}zAJqhdO`enUsg1dDV{`Vqg#WpH&*XW*?wmZ&g1M;3VztZsyjjRHLs>MOg+rP* ztni`XZtp3!=n9nbGEr?ixm^}h%b$e+BCm{I(_KU63#W%v@rmQNjM-0Q2y= z@KJ-;dyV&rSNh2sSMB(~0v6>|gC@PN83Uu82^&`$58GrX6N46SSi)zT;W4?f4lVf! z@&9O|-uH_Aw?zEER3@MI#s4kj(z$i~r_cC&5qhflD3^BN(E23WL5s|p8HqG+v%r<$ zYm((nY%5w%|DHnU5+Ms^djb@p>zcZcwz)qk{G==d{aeXX`Y_^f0$&Xb^2VIt0~J|x zwe|AA9`PqGHDmn<)_)tg zykfQ6?_}_(0Y90Ukcb@qxW) zk%+Clvio7wmh=!Bb>8LGFIwd?e@iM8v62_sC0CUZrkJXeDnyRl2`fu=xXZ%Prs=#H z9JNXi3|e3b7N!hvz>XI`8R{m>;%PavPNu}O<#;$ z!xZ^t`A9TOxjmAHZJMp74Kqemnl2?KA_m}hPe#oBBT3WV_|@XX3z`!Eb%%yu8SVs~ zgifPz#}gW1fcHLKA@q?P88W81C7`iV%qKcvapnw6lyFAu!0#VDEbQ7n8ieHa(Rd@s zvpRfi3kGM%7$K5``eeG4_Z#1GcVvN~V8Fsqh?Ty^!S2hLWZsh7l5Q9{0QU^blS4g&XwO|1WP;HmZF_V3;zhkV|$7Id&80Zp3>BIcpVO9=EG|kK=<& zOWJ!mxq4}h^zHt^(eu&%*}>%MsgX)6Cxe?q<7MxB`>ytq{aTi@rSi9tFFI{Hb#XH_ zrBN<3YgJ15yTXg!C=_Q0k0*^Atv9UPwQ7^E&rh|JgW6>8Xd)?R$EGn*&N^4Bucgdz zBDbWpE}v~>#t)AN)yK!jql`S#Qn#uiO4ko}`}wb1`jgI5@oSdW2T_RINJw=bPui+jd_(N~6sbkb=)jODZA{eJ80YpeB8uc^o7 z-CaAh+=|N=9`zJe4%`d3X;6j$^|SI`wzNc_BpSpr{X)5w`z9rEiFw`Z*f5-%9YZ$9 zs>Pe8cR|4_41$Db!31Iw(Y8YP05_503=GWy=nWbgX*rC5843R`tN^R5xxinX3-C$) z>LZGDCJSp&_#)Uh_o!&p^r^r|@{h5oS6r-Yw1IVs0_SRL)dD%!yHwW;b-hr3zwP?Z zu*&AHFc%PfnRQ@wb!9j}THG-CBhMCAf zPS@ll{@T%+9@oRp)ir!G_fRcMZ#kX0Gz&4;_m4lDIp8jRQeF+#IkYEBZnBf5l~2jE z%Dh7|4(sPnoJ)`NQ_q{_%GY7;sJHc8&-TaVN@1FsW{Xz-=*WP<8JLGf1;c! zm-UBAD>sp@&@wZC2E+#zXn?@+|#O z`}(wZw_PYyF3wx67pZdk)q0T*U#7m6PVQRy$Ij$eO(n%TO^?xh>@b$)-V z|1i1JwjR!=;z|Fec6Dp^Q+n>(wNdUD@=No2FU5Sy$&3Zp{L3HAV70u@x$Gks%$tP0 zzwlc5-~-GD)BZ=FU*?hYYR8u~J^xX7|DRUO2SR+Kl>bh0)?ZY_UmI?H*!};zrhZ?> z{v(~sW&QSFnc_PC?`Pis>!xk_4SS?yy*>ReGY<7Rgn4q)vOELF3szrLO=ocNtM8$J$7g z9%Ip8>o7Z5=lf3X-n$do{lwU}Uw#p?83GSB7B(2tP;Tem4J@H7wxj)Tn|EDv~xj6_~==W_A9!{yjkYBeB^Q7gjkQRLk($I$4@yvA2XW}rZ zm7|O+v;prq$#VcB&IE~&XLG$h7lUYPMY>9_*9PX*w+7}MSdq!T6TID@2iVdr%)mha zmyNKK$4^1s4S+58`U4NxYjOL}!vArRf0qA8I-M){<^N)FZU6n5@;}Tsx83#dc8?hE z_WR-)>!`|#F_Dc88g%D!pqMm+ko>FwO$j4I8H$FY&M?!DteL2mq{)PUBboTn@qHIW zINy66)`hN)`F-T)kqW<(!l{nQiN=~l0}&|JOkf?-+(zgSMhKfmNMZh@07#O8rnn&z z1yj_p2@-(@VHt{#vOr**@~%5@fOy1qNn6xPR_LpGM^tS<%%leiVIgaH5W)w!*K>uc zVS(sE;=<=$g{X5I2KLY>#8jwf!9Bu*46K%6Z`JI2UMIbfxP|F7S1{@q3*l5BkF{-4RE(tiK1Jdn$J|Nn%~CVuv62la+fsa;&w_v@AN zWsN+IoYw2r!DXdV9%lOGX??HUuOF2gwVbIK+1lf`(rGz$P-#6KwCbH~^}M!MnO>Do z_aC1tFXf}Xe&af_SH8V0tJjyO=ecRMd|SOfKd)EI*H?Gn1_SA(*2D(N>8sk_bb4_9 z?fRvAppIQ-k0Vg{T)rB8yRO#mPWL2IxH6rdUmrl>%3k&E+fhoqxf|VP_EUG4WqE&^ zdTv~nUrsOk)6>gZCUSatA>zZcDn69RLwx22a}ku0Wx!knWh4kDAhcDVR?lybj`h3x zU?MfjfV{o)a<$*DHOp0af38>H`(C+mk&B#8zs)+^T2)USm-^=6qo& zuZFq&>DJbr-aAmTAWR)AtwOiZd(f}TSI5%HbiZ89H5-!$_2jmew(_abZ7z}>h}&|x zcicb94j#2;>8N{@n@p^$$D8Z@=c}iaQug?Gs22w`zbyGVytTd*%$4YrxE0@K_`DraTJv@i0yhxqx?cLV)s~3gd zb$9>yu2wDFo(`*p%uVD(-MjhvRNFh(lew(><{qR@g3Eo|3Y)>G^)-w0yc( z?v?!We!}K`ue?94Hm1X`>ebfcLGNa&+?=LPCK*vTzv-5)97Hb7z1B@#%P6;_!BcAT zqV_8Tsi8}a?UzUK>?QjmZI7gjTCxw}#tK#aZ?5yGS98)x7)+pi@nn2rFB}LURAyw46VVp$Li6n zTk9DIQZ+Rzl$-TIX*WU`TCGtHGP$+<7qQ6_Wx`q??3++3+wnVpL_l{buHrD z1Pc`pdRs_U?R;}GEUmn5%bKZrW*fD+gbxixfV)0SK z&50e2lpQ{8dm0Bwk39`mh`VnO{r7CNnFPHw<9*^8wmle%)G?Oz=-6F&ZXoT!K^qU# zM^Y_`=yh9RD4N#@1De%44|v|j$gL#tA1%U8*bLZ(L!)hck3L5439`IC&hG2V8b6$YxSBXTzav8H&UwO_ml{?ugQ(j2Y$l{V$E$+Gfwa-qns*^+KoaPZ$8p=epc|kqw{K+=#xT9AnqRKKPR9 z!jkct128{$jW)Q;abQnV(pw-FdN~uQ^%m?cJGVcBJu;S1^Xq2S$M%&prC|3 z?g9v{TBVuKq%YELwjQd5SkbDYd9JS z$F*Bq2UHuK*Z0ch;|d&C%jv`Z%U4Ra2Vs^=rCyad-7?zok!Jq^I+nF zx%SvR8QmSu29vQelWwJYwyL1g>AbvG)&be)6>EF^GTpmN9bO-tn-TTk>O{L57g}az zTluD5Y+qiVUXHr^hVqbWoK-u;ODQjzsq>eko5z`DJWTd-ExGt@aGX8XPETf|h%^~* z?Mua@Z13Wze%;tESzoX7qqAzkI4D1>^=379Jt@5u)N^TCnw~fMox)97yfc(VJGnBShfgQxd-e0e#l_ay)j@f3IcN>^ac%oJ*GNr{_cB+_ zv&uMs^|hOSX=VTa_TIEhaid8Xov$yyg13ForTVF+kc0%N&(t#`1c-fK)#Hn`AqlN$ zVe|OE-%LsD)Y{eMwq5c$?n25XGBPqUA~G^!6vOcj;d9=4qV~%9{-nYdnz)Z;n=^|T zQMXKgS=vZVx0Ugl&5=Htb<4fHXBwFvTbQH>6|cr->o!)MAS+il1frR=&n5vtfOPWtvsL&rZhO7$G1eLyZB3nLO3Xa%3YVE_)fN zplpi0$%dY{Gph_bFJuRkDmwE;Zc=gz(!%6AIU?KM;<3C?Tc>Lcqh3-AOTQtT!{I#F z1${BI#t_-Ivu?rkOWmqDng}gvkdrWX#PF;!Vn*8~(ksMnDaE#XY+o7RMm5KADNlAK zn=Wfrb7qZi)2n8-M>c1S(#SCdX5BAWS9yC~X@(HD@EAMvOtMqtb%P$KI)pT@m^z-G zkY?AN^*5xRC+jvUY({i7ElGAp-}W;|E!|?7VaxBywN7lwrZ`$}&<%d!QWS&FYWaD$ zNM-D-hNl)>gR;vV-^fvIS|LYmw^rx4Y}`^tseFBIY!@rW z*{I^OHFLLxl~T?+&7slt0+8zyMqD~Qu3H|uyvKUoMj9xYzTcwP=p-{hIG$~-NqUuT zSA5MfWolj5wK~D1#^ZEm)N(rOkyaSg$TZS2`EjR_WgUP-LL8-XcCL<)>ks$yA5R2rW1Alf2m(n)If+MCEzjx<%xeWGId|>>!)WZOQS(;(9o5 z7Pq`LZjTB?c|lsW$t~xus%EE=E0 zusMSCvU6cca~!(hL=#=`;>_1ryg6QGiM(wEV@T$&RcRVM{s_Fi>V)4A{0R>Z9 zbB3);`_jHE!P2fO?_UYd6259DftI&_xrVQ(a*eImTQ1$&ZV6#RW~Ehgz|Hd{k=-Qe z!CoOykTttN&mD+dN2BCI z+gWv-s==FMQdsHCteq?`%4`??6#FCgPgwuQmZcxM{_u2YtkY~kiZd&te?P9qu;!b(km-@+8ay-Q5 zU285jl{FyI!m=r5%|!9W zM@>xUw?a|MjA=xqY=_v0ow`$AXyvjhr@MK}5ji$P&68HXyeJjR6T2;C`?i#9&4#nG zh!!(KFVjFvtWZFk&HAK3=%upVu8@3xRn=WlO8W}4pb?h#i)A^dE8A78?0A(9-$P16 zo+q_*(i`>%_)MOr>(iyF4oXyQ<=&Fo?M$x2*Ijcw25>yxZ9U8rlTo1FvDrcBa9a^m4_SMcP-zyi9v1@j#dAg+W838NQv$yPwE)_IVQ+g96J#>bxRtJ?TPAg@# z3=Cmx3>TMea@^@5Ga^s&^-fu4N~X3E+m!~_+_ncz+OpAXiSWxU#q&!Q#c1hDTDSZ2 z%^dS2GnWx)38+>mrg1Bv7NaTEM^-Ll4P`BDxtYy?Dlbco5<}hJe`p&|?*F^9n;&Zb zO=IZg{{JEWf9(Gs`~M5}|J|E#(nbTC%qNSbZpF%JHZxNY*55GgWusYJPDV{HKUFog zOllYck&P~Ij9kkONcMNu8C z7jh1B#~!96>kYG?M(_;PnpCZ>YHhQG*Bf+Z4DBkTe%@>oeqk=6IjyE_mPl4tX1%KD zw8aL|);BtaDsE|p*QZ9A_N@}rX$)l7+Y#CI;ONl``OB-=$cAy(D0HbL31-j zQ?;#9bREMK%bEJRFCgH4t%!+AQs~bz#cm1LaA`WJnMo(ROm9dhQ(F--+2fRPe&vn^ zTN@?&LtU;UC&L`EK${gFb=DoPkgT}laW|dpa{!Tkx83!KR=y>w4W?t~Y~I5%vOb^8 zYJ+K!T${=6pkCf0Nl7G&q&%+I3iyyQWqX@!&pOiuM%o&&9+j=CjUZ%ahL)GKqOQAR zf|L~XfO0XwIbAOp1xEChjV_Q@*2&>caWFKq_O_F0mvZSzQq8k#qS;UOZL`JJN~m3Q zsK!vLZA(QRM+vs&ZTX;zyq zt1?qwmDh5c8)I#A*-maZMXgZm`m?07!G$S{qV$5K7Bsez>KRR}^-*C`${mPB4amH$ zE|%j?6WOjBQZeb~m#nN}IdTl-G`dqt4@Zmkwox-Ha>ve2`@U>tl1(;WqdRV6mM(Ke zCO_{FtL}6z)N;vwcf90kQZmanxXwH`oaM!d=DNI(G;4)|GOs2XPjw}(FdTVVQ79wA zY_*n4gRKtt>M?gZ=kS#J?x?zf79A zwEuqSe;@YWpVa<)B56^S(rq;{hZGj$F{;SPu2so&QEyDxm@}XzqG6X=i$=%I29c?G zuHcL_TfU~+9fux~G{ctDecb15)9Tmig-LZfE2XDS)q5vi_PG7$Bu~qav;QLLbNdgT z{_y{PZ~ve6AYZT0C$2yF%A9KEWo-dOOom(`d8$(^Q9zrcIynk{r{%~k$QzW?DP)70MWxeM3x#Gy zD>GcF*;tw>i6!uIOm(w}E%xVKqGsKuHmQ}IMa3Cv@+qRW^1R-1gG}7MpBmem=v!vn z@h3BC*k#h?+HIO)#n`&Pk?VrU87qmL&u_K)+8cLuXFP0l)G<@)4RV7FKj&s6v!iy% z@pismZsfd&umwcxT88>7xqx- zxKw{7^>dV;V(RGyw;eQEI89Qlt(chsm1ah%5P zsZ*j&I+yQIw}mZ_6Fn^7C(&)PwQ6nETzhaUsQkFO9%cl)?KMexKKA?-pUaXgu`RSG*m#U- zOP^|~E6m5ol1k|lAOI|Dv)fvOq@_;I*R@%Vxy{t8Yh^VTTGcqmxrT3w)_)tE>fGs; z!0GR;zdW)2ZB1~|?-c-^JpZ}y|3EY7$NvA``+wk&bs+;V<{L}#R;HX1maA{NblF;y(< zh0%H_&QW{Q5*6TeB%|Zd1m1rF4ikTNxM?5#`YSTx*Wi+IE>K*q)bPh<=&hriMt-E8liz zqYaYB^9oBeVrG9+VCKRWEp!$&QCds9vbA_#=~dXdJrN0RfafgI8QZCrNtq5e7e$+K zs|eqm;f~j+$MTEPq}t5XTdq#!v+I7oE8qVhLHh4!|J&bO{f{5K{xRZQ{|Enltp7j5 z{$~l^xd9MCa{|IiL=qQCK8a^hKFQC-Oj43&X%y#$EMV4;nE^RnhOf#!jL00?hOd;W zH?FXl-)j;Y-H|10xg-_L^*__~?eW@IhPx3%KdMU`^P<=tCG#dOWjP0Dy(>)}OoK@P}y zuQgv5g;KK|Gg5SCUQ#-ME50i>r^|GlpCxDlY?M!4U>PF z^&f^5*46il|B8a${v!WFHvO^w-{si_ec>G0<{VdwT?q)|ZroVxC{XM^tjBa}aH=_- z?&HJwDoiC9HRXKS1#8&{8;zpI?tjDT`=-OZhNmIKb@l66ubb3f!n$w~aWuNXoM!^fPC;V3vk@FMsGy9htu1^)!^Zs7ke zGuj;0x(hNB-A6E;X9_w&%{0vJ7)Dc=N-+3Ikp4z>r;fDnRY$r=S`{_0$H3JA!?+R_ zf8SF*<#~fY$L!^>kNSN)Q{@njB}`QrWPMxcL5I1W2T={<__Jv5Virr&k-C|d6>k)0`RYuW0`W&voy(kD>NVV z{y3W9!Yl-ZpTPAg3Le6BUy)!SWY7o)a12`vD*{XhahAhDz7@^^fpeZ0<{ky?!7>4g zZO#*vlX;lMgLg2=;l`c19sp(<#;rMvcLRHfpCRNJ+dt!!9u4}=mAoLQ3>fBJFw8G7 zgfzqu07>TzUgW+8!IC~dyE?=ZsC*rPe-p~`B*#!qPMyR!^ zzwa3A>Dz$WDlqF`as{*g9esbzZgUFZ6Wn)KH^3Yye#T8Nn|x|1oQ!_I8h$+o^0e+x zMCiI|N=FTZh&d)j!Sgx&IB3!y*fXRZ58)#9U)apIVD1yY23!0w1w4xl?rGMvyeT(* znh8FSbG?Y>e)I%}*{UApF_qS9c*{xV=!m`0oEhc^<)V~b0a#z-J46S0PPll#KS{*@ z=OP!_BV6Ysxi~-)7X;4RN;fcX*cV6xUx1ADMOxcm!eo*F0|(Y}v!9{8L>5S6U*a%9 zcliIKkXbhgoXBKhDazzD)r5alB~gX{-lBKjEyGEB;P=tu2d#v|f4ZTt+(}yz z=8jgw&$B6!m-rNr zWH{O&nk#q*w5yvd8rUh=Q04(;KhD|y+2?=3qT+0II$ym}8tBLE{}~)b(J=oHhNe*@ z8=U_kANK!uwf_h9{xGq#B&Y_Ea-t7~@aIuT_{(74he+OsLLmX|N~%1) zHq7S-ucpB^<3Y|mu<^nfjr(BJhStV?YCh3-0%IfOd;7e7QU52IOap69JhbL~J~^QR zK%Ql|btGAJ!HzqH>trfgk{g=-U9H5c^>%-WY7Gd_ZMXQ_f+o~J9_Wj8&Yk6n(^pyr{_m-wrO`?8_##%K7@J3*R?s&Jhu zA7Fc5!kIb18shEdNKJlj&6|X4fn}q>Q}7G6ea)u(zyw^+B^%-TB%iGNXg=A8a>}}g zoU-l%Ic1-hSN7_`%8Ubo-W2)-1YAQ6_g_Ge5H*%~%s~P^^F6qDj8wz&U*h}z?)Uut z3hC}!yMl;o=OovJ<138!q1KPU3Rzb=heOtN6{A4#(Evt4;hjtzHg z%g8rp)~`)f;Tb_~sg&9)H8#!uM6J`5Dwg$CWp2q8%^nZwDw#N~b_eQN>}c)sn@Xla zSJQmD>athLc}q^N7wQ(LR%`24ZDHrfy&|*8_9i`b#wv5ulMPbv?9Dv)0GBx$$Ju0^ zBhFA=7peuWBtt`wyWeQf3{}s?U=(#B!r;v-arFwc9al+wj>mtAH^QOCqoF-YtmjSx z0@w<`>_14YN5j0b8urM8X0EWM@O!F?1~ZL^d+cMP45|)1ET#u z7jXfHg`$(e**4@GiUdzi-kNJPItjRf!FoX7k}tfLv;Nc!V>g@OOhjg$uW=~s#d#^t z1%|VDD6&1^(s|H|194;ODweN{P*fB+7m}Lk1{R#_a>&UB^pG@sRmgY@!GI4|AjTjE zl*DHs`n>1x2=Ay@#Xalwd$7J2YXa3{uf;yVs$Y)a2iec@mRhxhZ3S(r6}Mt`34sRd zV7HyZBqLYWZJDL|^AawbgBt2Eo0Cc~kQQ|SteXk=OMs#U2*jvQIvsq|ngi{37 zA%I_q{D(Z69w(qvOZ&qkd|#N)m_Xnv4`dE#NPd)H9u_Jd;0PyUc&2mlT`rCgTO8opy6q`*Pf{kLvd)u6qs4G@ z4_(tWongj>YOdW#T=;B0pj$sru6d@8{YyMSgN5!`dLq8d9T^XjM}}th!1gZ2`AwVy z%US_DrLOW0=WOnx>H}ATB2h490p&ZA>;MW0&VW1xEC&HH?Kn4^ft@tYgGQp7JHP&T z>fj!1*-~gZ2c)?0IbGkxZv@VF_tyNVF6hwpR9y#yaox{%mrgCNrrPT42C|~VS;ZIV zGzhl!`%g4yCcL=go5Aw1eDCB8W;e!9pC6-0$pxzQDP3M6$HNr<9-cNNzQz;bfx{nH zvW6xejMb1hqzRp!ySVN8^7-H<3Mdezdwo9b?`XX=*f#JcePwSvtMj}q5R{`B56B}m zS>Y<&L_s%_Bx$8GIqUk(Nmik`6`>4dmf#q)d0rPQrNOey6_Z#+OML#0bsJ9Ek>LoC z=W+FeKibLB<;_`7pRX7@Pg=S^C&K zxhxjktX@=-w4Fm6Lfcn6INM!jN_AXX_9qicLC5EH^=`l4P1D<)-KNN%C%aaz%aLm) zkB`%i?r^A(t8P)m><{MtdEFM0X*GvMzGb(GHtezHibz9L;-e^!b zkv*?F!e-5Fb5{?uZNZju)L)sk?N@N%^bno)yq_$2COcj(tryFZ zy^4dRw~Y+Wtwvq3?NE(r2JMVoR!}HUE)3JQt<1{p_DHKF&a;-kYzCn#>$zb0+OwO` zJp!`k>9Hp89m?NJHN2M}SVbPL=eJs3I`oL~C(f$^H#Cb`rA4r$SDea;E@sXH9^bGh5St?SQYTm6fU z#}bkIM}+35xBTm~6nc-me3CBbh_@^1O5UqPba)my>)hY}v*+p5UFXH~w2R5|>gDv> z)x`ZXr)kISUc0U$A?V$w>$$VVaeuG*ith5gbh-k4Cs1~v|Lo2`3mPOI-_M`ki4QvZ zLEa4FMEp?2_xi9nQ#`fhM&pFWl^-|Gr@U_-v!KFzMZOs-v(kQ-3NJvqyPv_tzR3U{ z@mBoukVD+z3BiGeFijPmokdd|T(^aB65L&bJAvTPxVyW%yKAt<2_D=D9tZ@dad&rj zcW>w~@8JG{JJ@xmr}p4ft-aQH_Ks|YwJw6SQ?JxU|BYmxO*>#cvz_1oyAp5?qvoyi z40eBh)K_6ddGbUUYq%!aRIeZJUUIaC4|xKT4?VEC`ru4K!+)I=-Kyjb`GV!*tT7ix zHvj$c)1HxT!?5|oo&3v=xR>_z+O-27*y)~W&D~tAo3MGe97eCan)nU@hS#o5b6N`@ z*cIJg8XHdw2gqOf>(w?oy>jm&s&F6KZiAtfFS!!GJZ0t2xHgw}bmG(U^v?d)u7n~j z<4dt_Q;M-Q7BaKZPer$lF*5XFhc1oczy40qQs~n1@bVK`Y`4C^kkZ}F0L_IGt-9`) zO{Jj&bss%To&ND&ef#}8GhH|pBHS`vhZ!KZ;x&_$&j%F*O!&0KTCzoA+zzm1aMODR zqbRw)iafUeA^EzSKU4Gi)}a45v~-a-G?RefzOZ^@hn`@v3}1&dB}rOCr~7N4dXJxd$u#%U#`oNismc!wW-op+m%27O+R7yi zye@jmz34(^`=W9lhTlof26OzeEeRnox(778TXh^`Y<+4xmhs!3z6%#vakWUpRv%X# z0DgHQL7Wr3Zm&w(5JXxoylIqeBn#J zw4p|7lp&WdxT|dN74K?4RujM9D|wUEo>wJPfM)kqN{qWNsdu7OWqOOpm9X+!tH_$~ zRuvzBmlZuSNh?ABiWl8)~{b9AoDMyLZVSiKURwuuP_7cziy zdbLeIrY!l;iSPhElWVs*_zaokf=9oH-8W5RAb5gD0|?>h>358N)a>`x7JTFm`^x!E zJZ4nD1v2J~d<6&_NaBX|U!ffxC-tJAZ46{Ew*FU`E{XK5Z??!z2}npkXZwU=tJIrf zmwoR}_%g-;h8%;+-xFaI3;iseDqz&V_(W3i89*YXxlsO1B?Tou;bfu%#@3m{SYP5j8GAiHp&Op9xb1dX z6Yu3D=RNY@dE-E~?DK#=3WFgY?tIbCUuopH;R&)kA27yC>r)8_z`0|1Q`%91rA5sv zTGxzcFe)DsNzk>iKmBWuFHCH9-RKdMDTdO~f$i_6l-)xAHB3yyw0J5UvH`~<3D+ah z=WtwGbSMPiVvauZ|4IA zK+X2O<~I1^;G9PW`cdM8jXHPY12IdK{Xm0la?J9ZT~t$@tv$Ww2?C@NVzcLzK9$wzYe(n84uYEF(B*mb_7XIp^2E9lC7^ zkxq&HM1D5}=-cY;O9CclTeCER0_guRwKcZ3%MWcM_~+Vq zZv>(KCGilT_Ea9UkU_I5Yfd0uto*X_^V39w#T?>nkRhw#&!!6!a0sEa2(V(G!Xrru z!QK$@&SI&R@5OV8Nu40cw|3&V$LART+PGdSP?_R>mo;)$sS=INm4-|dgRUFz5tDuM zlMp_v(BE&=EopFyFd2lU38MZ#w?N-;op;Km2pCDk^5)16=ktP3rG9F4rY zc`OWAbsQsii56iLQNs28hdQ*19D$b1>&i5a$>;8;Bh%yY!YAu~bivNoJBDNP2t#Y} ztnDJ{@#9~`1yJ4O33T+J^Q%(Cll`aW#Vr&nYuIqZUeHy6-phV>ulk01=EZ4CXo&Dz zl*5xW7EeAs;)|a&d+H-Z5iVnj?aLflY|9d30N=MD+@vI&_I74Aodnp3jN-N1-{J?j zg6DAEV|Pu(B11`}_-ME>_+510oMD|u^h5DwF0Y-Ti6`OBqo_YxxQjY{+OdZyB=c)& z=mjt5kH}?NljOjHF}^p99U4frSj%q)N=VLMNLhxhN92dnf!TZHQ++q;)r7rJAYn=j z>Cz92YDux1%rSM3<43A`e1o>nKL#O|^^c8=H;XO&2A94>n!jRXG^~Lw!pQE3ES|3= zS+8pQLRZXS7-eZp=S_4{fuj^st!)4SJSe)_(X?*vnB?m1tH-sd06}N)s>Y)0c!pA zGG_*c+~UDUT^nqilLW0=lfC6K>7!5F4S%yT&m(6}CzAL$ZJM+VHf!+*_|**#tK>!h z*=o|N`d|@Z`_G)|YRV!k6=}WT)`2q!a z#$LUO@(%K3T4=voH`x%5OwwT+(MW0<^0=pc=SY8DchF46tp3uN72|BOk0C7;R3_=8 z;aH+Q#oN}rR7tVV8UzX4dQTCj{oa>!Z0TrIWyiL;yY)spk9QqLh0^E5cj7 zWBc1|I{|s-czlk{acu(Ivoeg0XJ-u?XN&O@c>=VaH%6>~GrVWcyMuJWT=d5lyOW=f z&-e2G?2yz)vX3E;b08XrU2rHcd`J}?WM6}|S13i~lQ=IbFpn%!dsTx6L31V81r zo^Qe3GbVxqW0}6^E9PN|URhMso02!@Px^_^ zI;L;cb?-Vm1G+l{#U=#YerTV49(>XUEYk*xHRmH-0dUW!zjm8cUomgOEE&+9vJRD%q<3{@t&1ofo5xd9pupXjfmp5PkH2v zi3C(KX5F?ua04j`95hQZ0EQR*BU~E_Mw`Fn8{@Q`>XWM$STnO_6@x)!qa%#E-g9%J zvAttr(ckC}P?`x6Vm&K=GTEzFf()uG23>xC1L7e8{+_e1hbx|HxYw{Psr{Na^9LKO zDaneDxOzrc)Zi_&8SiMarqNomZebC$tpmQ;kW3<#LUm4cr;7Jd}d%fSuvF(Rt88vngi*(+*m?8X5+$cAc>Du zKQz3rl!RLOW@I*%QOW8!)|VwDdkHb&S2IntDh{!gvb6Hsu};4t)HV3Fo7-KqO{DXT z&T8}YN|cu%pXv_Z6feUE3+@>NNc#xy%nHXWUFR*&T(vy0@e|Wd284{`i4oS?YBTq$9Y>DmEV=q|XDbJO>#I?=B}+^X)(x);87-h3 zgX#l>HKyuhnxIvg)v&6IG~x@XdUn&~ws8WI+C5Ipjr$>jg{SK8l83;W1i{n72ZVMN z%t~zs+pra_sWDHuuGP)%-BY>tBmDkXDZGbXEibU?S}I(>_`6p90C56)rOl{a$c%zD z(}Ga2z+_{jn||wRUb-RjVGi4~QkQU}v}H-`u%P^N)=bapNVIaId!QOA7x8$<#<^{P zmMA;Ey)5-w=jvutJjIG9B4K*6gI8z8n>~y81B!jz<7|oW)eR9hBjs$%%H?ROCY>vw zD%M2nrn)Gxj!@3?eWrw;3fZr$P;Rf4cSyoYvFU8NAny6lML$x^$W zy??kZzIimw$@3pZzf7rzkZaXQn;R$#^Ym+0<6qZ{TV82?^=$iGfv4z?XS{1*Q z#{XVWfA!0qVN@H!NEu}oD4sPU6?HdoZO{7ltR~LRFvvWbVQyI7V=~Yxi6uo=flgPs z=-@u`e=%iVP=88V=_>p9c#~F{ww?WY8s1*-e<|flA_o)u0+n84EW%BjFFyACj!uy@ zqP1qTC=)+W^tIYcV+>X(9EG&=ZBQff=IutUW`;+X*7SK&I^i4W@9p7<`VK$Mj!j0; zOt>D0Vk>&|#Bv&&-yHg6vY72QZi>0m5LV!a=VYB!U}@677Eh|}$+~)xc4P{T_(WhW*?Q&NSEpbKC9V2Ju1%iO z3vc|avLxq1J{QrclPC2CcNh?)#SsbrHgHyUo+0}~eYB@gyzGR1CK;sYX0NJW*xE7T z1KV|ez2>G&9+yIFc?w12qa)=%Ft!sp=G9ro1X2^BeJ$@t57(5n>Ich|YsZ~LA&^k7 zjal;!N&_Q;HhQE1G57Mt2(!+wOFimvZnKNjh$$C*^~-7q1Q&8Y24hg{mXu006NwU4MhF|*_gJb9p z;U|rDpWn)s_l!e8>f!Gd&-|S-4`j#xJSTnP;GpWx_~5e!)n~D*MdMvm70SysSLLLH zoS|n_g3cOun8pHk*NH|gE0U%Mzb>5^5ZCo7^WWMM%lslvCX2L5zy2osr(?CU@HaD8 z`T2#&)!*YMWFVYKH7VxC#lLHVnO(o?=jB=-+fLc=&$y+UXWyMxXOSHBl(~*Hy0*lQ z2G%6=XgCSm)=nOpU^ZGFn#6qD`RywvA3wz#F9w8T^=q)q&DPJ;=SpYK{-7`2e@W(2 zzgvu{8Y|v4*&U6FNCcwMSV#36Mv7Z7HH%+2RV<;wSI)R6ViB zW<1_>73ja_OWQenAs$#-@EH5f;U|+--`)~4R1tBRw57r1%2^IJlPxdOb2Kpc#Yb$o z`86r>Sf|J}>8|NmwdLZn7*nSc_7de1t6+^Kv`bp8adR?R#w$hF%dAoWY0XaEVXZm- zMgP5CSiTbT2)uAq6h?K(?4>S=u zXcE&Z<##JgE#3*gdPSp?YZ!ntf=;4VG7+z10uRieSSdBZ9cM7d6%{8{v*24inZ?cW z)6uuj`UKuRn{JLOnPH4yGN*YTrG%ByyHm@nb$caJUY#_j`DpJUCg0(Zw3GLq*pFMN z+@2OgNeH3B?#mElnZ}4U^-9$j^FiddgDsFWtR88(iq9!&`rou6BJkGixS%_Sr*JQ3TB&a=OMbdq_5s z21tyoiBi;h3_O@#3L}D26kys!mvIpUMF!^1WI8Ibs+?RGY7Z)#vWz7k6dp7C46NgP8mMe|miY`FND{))ymR5Mt3RK8y7gaK|!yBFI6bkZ;%%e9r!+ z!-ZZTuxpFHj@0&v;O)AjH7dE{A+3gc?C4H!FucDr^s(~9hY%OC9zAP2`43+I}VIKWlCSL$|N*rT$8=Wzk$|O)GwW35ZAC=5DK#B zRzk!*t4@^aU*EE}YGTcZfo>R%Y@DGVr~T8Ibx=LG+BhE$vhjDUYyPNb%QrC%k46*x zULCvDo!Sivq`!HsDX+%)i8flxPqNRy**>hj8)XqSyJ}o${3OZ{rw`|P{rCY@WVE7} zO{MU~Cf(+gD^Xps%3@yU49wc7<5a-n5JFt#sCiy3%TdgFVc>T$=2x2R$b)Q$W}NwA z0V>da!A+Ye3jQ;`OXxYPT^8%s{A1)G zo9y%{tC6$dZ6Q?JMdNG3Kj*||f~vIElU2ZLHGO(dqCt?gMv+b1b);vJ)e9Ik@8sRz zCM>7z2W5ZqP_~QH!cR5n+0{v=f|OrjzOEx={c;R7;2>{-AX5W4zK>C_O14le)>6!H z=^DUO_&R4Qt+}PCLsGifaH3Ey!WKVCLWy|ik?Kq1_t3ErE^Et&xAD2^HdTwmB z*Ag#6G81ntQ>%7s3frtu<;Ek>#{Ex6QGD}ALOvo&IaFn* zeVTf|f;Z-vIWvvBK+E;>K*xQKb+j)zdXIpK8~?O!mFpJSdX`ka^-&|&`_IvutP{Oc zQqYzzdP$HTkK30M#oHUu=7?Szvw*3>Y>IRh2GfTv#bV{hj;t>tmh;hdZTJmJ8|3b!|K$ z7f|#&c{Q1FU&bP6(@3e;p^GZ>vQe%2;DRG<$q=+mX1zX3y@d6%xA*kbckFt^6VX4l zS;(zSx?uUvXO$A;1KrG){6#q7Huzh)RjJ1L!M3BkhO-zkbwE0 zRG&e6mGTS>HGOQ580BA&QrmEnSxUcyAWONOFSI&cgCP#=ccG4J?>dE7%^!vo<}1!W zu8vk`hq3y_&+~FC?X9Jk0v}k)3cu=hJ&-E%czqF^FQ|egmoP)Xn4Jj;YThT0SkS!* zPM;;Bxk*nZ(|Dy-oB*Uf#Bku}eC4jqfH%mtaC3f`aXzS<6|gmuaInThj}c_np0t%u z!SdA@p0bdfVD%DM&QEJC!!t*re(QmR=)L_CJ!QJg$c{qAudrA+mrmarT71c25T5T1 zt!{RTqV!67G(6@k`%M9dkT<*CqMK_b=A1;(!&tz>SKtcMGefeEOXCM{XzV!W>7^|FyCGb*M`CIxg+6A zJ4qPk51)Xc^WEC=-gB>O$XwbN+1FpOjFf^PRLfaj=AWND0<6p$5?bHX@?Cor^N^ zmHp7{)<9MLDYDa1#D4?7fpzKIMvYQHBABNiAMLoGTOYyh?e<)iJG31p?sXyhW z$viqpgn{Au`%-D~+h#Np1+_Yy0L(!wW8+}Ao~nKUaIZ+Q9M{dSV>0s(dNZ!dADdC= zD}F{TbZdkl#|K8&QH0ol&-_qbJq82CQ$t)(AtHWUD91s8>(3+M!o}2J6eH@&)68wqT-3rpv zV0$kP@lQM={&{a~F7gmI`fuL@(99=sBF-B+MZ*?(Gw=f&)h-jH@i3(l*%bU{H3B7L*3garTpp#Z|xLb z%otRplwgc5SVy9mo|Iq~8Cz-^|MV&ktdB*LhoM~C;j{Op+6UX_ zKe61(!&_I3K)j%cq*2_x){b(I_F%=IjCI^PdllXVSw&5!v^p$&xa6 zXnjxud{pt?p#~FPu~&L1CvqlNECg@!QFP=v7;vH%mJIoD^uu@NtE|p4q2jl99B92s zEA|uF4}01Resdng1fFuDWgNUCykJDOx-ITHW4+*K%pz$idSS!q!>pKkkG;UM?5_uM?Ur{ z-;o4}iEm`P)E~cA>zP)}o!z(9gNR1m_FJs!iU&V~9CgoKQR@C2R)&NsLpC)hm^pgN zg@K1kHFWsk(xISwfN{qcOJg04;=&jRjD);q)T}~YmzJPZd`2_&J>{pNLTa)2Y2Sr! z_8KZ&jN=Cou6He%?Y>sNKAc_VaFst_1w;J3RgichHkd}jEeD1b@ITsKgfL6YAVkW` z>j-4hG#?>fnS1-|jA4SyyT?ues+Xn`wEU=TL5Wl6STG*g^XE4|YLmSSrqhR1Iyss( zzB6D7!jj&0Bd+VG2^Lj2O<1A*l1h(=SzAvLrN!aF7aP;>7cxVDw{5BVkN4WW zwjFH&Zr<`DrB8N(JQ6Rfn!(FoKV{F2=yaPz{^0C^?aM?j|KybFIu;%lX>eXY@r@?4 z!UY1~rdv(^JSpMWJ0}Z$Ejq*_>uui}#52b+N@<*C;0&`YQ$NF`l3X((s3?n=t1p goIeC8^>7m)NIo@m_y0Mrp1=@rrcx}F3oO+C09T+zv;Y7A literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/adal-1.2.2.tar.gz b/azext/batch/_vendor/v5/adal-1.2.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..02159beea18d0d7fae2e271263e43817ab91e54d GIT binary patch literal 33520 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 literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/azext/batch/__init__.py b/azext/batch/_vendor/v5/azext/batch/__init__.py new file mode 100644 index 00000000..053eb92a --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/__init__.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from .batch_extensions_client import BatchExtensionsClient +from .version import VERSION + +__all__ = ['BatchExtensionsClient'] + +__version__ = VERSION diff --git a/azext/batch/_vendor/v5/azext/batch/_file_utils.py b/azext/batch/_vendor/v5/azext/batch/_file_utils.py new file mode 100644 index 00000000..b1376276 --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/_file_utils.py @@ -0,0 +1,355 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from __future__ import unicode_literals + +import os +import re +import hashlib +import datetime +import copy +import pathlib + +from six.moves.urllib.parse import urlsplit # pylint: disable=import-error,relative-import +from six.moves.urllib.parse import quote # pylint: disable=import-error,no-name-in-module,relative-import + +from azure.storage.blob import BlobPermissions, BlockBlobService +from . import models + +def construct_sas_url(blob, uri): + """Make up blob URL with container URL""" + newuri = copy.copy(uri) + newuri.pathname = '{}/{}'.format(uri.path, quote(blob.name.encode('utf-8'))) + return newuri.geturl() + + +def convert_blobs_to_resource_files(blobs, resource_properties): + """Convert a list of blobs to a list of ResourceFiles""" + resource_files = [] + if not blobs: + raise ValueError('No input data found with reference {}'. + format(resource_properties.source.prefix)) + try: + prefix = resource_properties.source.prefix + except AttributeError: + prefix = None + if len(blobs) == 1 and blobs[0]['filePath'] == prefix: + # Single file reference: filePath should be treated as file path + file_path = resource_properties.file_path if resource_properties.file_path \ + else blobs[0]['filePath'] + resource_files.append(models.ExtendedResourceFile( + http_url=blobs[0]['url'], + file_path=file_path, + )) + else: + # Multiple file reference: filePath should be treated as a directory + base_file_path = '' + if resource_properties.file_path: + base_file_path = '{}/'.format( + FileUtils.STRIP_PATH.sub('', resource_properties.file_path)) + + for blob in blobs: + file_path = '{}{}'.format(base_file_path, blob['filePath']) + resource_files.append(models.ExtendedResourceFile( + http_url=blob['url'], + file_path=file_path + )) + + # Add filemode to every resourceFile + if resource_properties.file_mode: + for f in resource_files: + f.file_mode = resource_properties.file_mode + return resource_files + + +def resolve_file_paths(local_path): + """Generate list of files to upload and the relative directory""" + local_path = os.path.abspath(local_path) + files = [] + if local_path.find('*') > -1: + # Supplied path is a pattern - relative directory will be the + # path up to the first wildcard + ref_dir_str = local_path.split('*')[0].rstrip('/\\') + if not os.path.isdir(ref_dir_str): + ref_dir_str = os.path.dirname(ref_dir_str) + ref_dir = pathlib.Path(ref_dir_str) + pattern = local_path[len(ref_dir_str + os.pathsep):] + files = [str(f) for f in ref_dir.glob(pattern) if f.is_file()] + local_path = ref_dir_str + else: + if os.path.isdir(local_path): + # Supplied path is a directory + files = [os.path.join(local_path, f) for f in os.listdir(local_path) + if os.path.isfile(os.path.join(local_path, f))] + elif os.path.isfile(local_path): + # Supplied path is a file + files.append(local_path) + local_path = os.path.dirname(local_path) + return local_path, files + + +def resolve_remote_paths(blob_service, file_group, remote_path): + blobs = blob_service.list_blobs(get_container_name(file_group), prefix=remote_path) + return list(blobs) + + +def generate_container_name(file_group): + """Generate valid container name from file group name.""" + file_group = file_group.lower() + # Check for any chars that aren't 'a-z', '0-9' or '-' + valid_chars = r'^[a-z0-9][-a-z0-9]*$' + # Replace any underscores or double-hyphens with single hyphen + underscores_and_hyphens = r'[_-]+' + + clean_group = re.sub(underscores_and_hyphens, '-', file_group) + clean_group = clean_group.rstrip('-') + if not re.match(valid_chars, clean_group): + raise ValueError('File group name \'{}\' contains illegal characters. ' + 'File group names only support alphanumeric characters, ' + 'underscores and hyphens.'.format(file_group)) + + if clean_group == file_group and len(file_group) <= FileUtils.MAX_GROUP_LENGTH: + # If specified group name is clean, no need to add hash + return file_group + # If we had to transform the group name, add hash of original name + hash_str = hashlib.sha1(file_group.encode()).hexdigest() + new_group = '{}-{}'.format(clean_group, hash_str) + if len(new_group) > FileUtils.MAX_GROUP_LENGTH: + return '{}-{}'.format(clean_group[0:15], hash_str) + return new_group + + +def get_container_name(file_group): + """Get valid container name from file group name with prefix.""" + return '{}{}'.format(FileUtils.GROUP_PREFIX, generate_container_name(file_group)) + + +def generate_blob_sas_token(blob, container, blob_service, permission=BlobPermissions.READ): + """Generate a blob URL with SAS token.""" + sas_token = blob_service.generate_blob_shared_access_signature( + container, blob.name, + permission=permission, + start=datetime.datetime.utcnow() - datetime.timedelta(minutes=15), + expiry=datetime.datetime.utcnow() + datetime.timedelta(days=FileUtils.SAS_EXPIRY_DAYS)) + return blob_service.make_blob_url(container, quote(blob.name.encode('utf-8')), sas_token=sas_token) + + +def generate_container_sas_token(container, blob_service, permission=BlobPermissions.WRITE): + """Generate a container URL with SAS token.""" + blob_service.create_container(container) + sas_token = blob_service.generate_container_shared_access_signature( + container, + permission=permission, + start=datetime.datetime.utcnow() - datetime.timedelta(minutes=15), + expiry=datetime.datetime.utcnow() + datetime.timedelta(days=FileUtils.SAS_EXPIRY_DAYS)) + url = '{}://{}/{}?{}'.format( + blob_service.protocol, + blob_service.primary_endpoint, + container, + sas_token) + return url + + +def download_blob(blob, file_group, destination, blob_service, progress_callback): + """Download the specified file to the specified container""" + + def _wrap_callback(curr, total): + if progress_callback: + progress_callback(curr, total, destination) + + blob_service.get_blob_to_path( + get_container_name(file_group), blob, destination, + progress_callback=_wrap_callback) + + +def upload_blob(source, destination, file_name, # pylint: disable=too-many-arguments + blob_service, remote_path=None, flatten=None, progress_callback=None): + """Upload the specified file to the specified container""" + + def _wrap_callback(curr, total): + if progress_callback: + progress_callback(curr, total, file_name) + + if not os.path.isfile(source): + raise ValueError('Failed to locate file {}'.format(source)) + + statinfo = os.stat(source) + if statinfo.st_size > 50000 * 4 * 1024 * 1024: + raise ValueError('The local file size {} exceeds the Azure blob size limit'. + format(statinfo.st_size)) + if flatten: + # Flatten local directory structure + file_name = os.path.basename(file_name) + + # Create upload container with sanitized file group name + container_name = get_container_name(destination) + blob_service.create_container(container_name) + + blob_name = file_name + if remote_path: + # Add any specified virtual directories + blob_prefix = FileUtils.STRIP_PATH.sub('', remote_path) + blob_name = '{}/{}'.format(blob_prefix, FileUtils.STRIP_PATH.sub('', file_name)) + blob_name = blob_name.replace('\\', '/') + + # We store the lastmodified timestamp in order to prevent overwriting with + # out-dated or duplicate data. TODO: Investigate cleaner options for handling this. + file_time = str(os.path.getmtime(source)) + metadata = None + try: + metadata = blob_service.get_blob_metadata(container_name, blob_name) + except Exception: # pylint: disable=broad-except + # check notfound + pass + else: + #TODO: Check whether the blob metadata is more recent + if metadata and metadata['lastmodified']: + if metadata['lastmodified'] == file_time: + return + + # Upload block blob + # TODO: Investigate compression + chunking performance enhancement proposal. + blob_service.create_blob_from_path( + container_name=container_name, + blob_name=blob_name, + file_path=source, + progress_callback=_wrap_callback, + metadata={'lastmodified': file_time}, + # We want to validate the file as we upload, and only complete the operation + # if all the data transfers successfully + validate_content=True, + max_connections=FileUtils.PARALLEL_OPERATION_THREAD_COUNT) + + +def container_url_has_sas(container_url): + return '?' in container_url + + +def get_container_name_from_url(container_url): + return container_url.split("/")[-1] + + +class FileUtils(object): + + STRIP_PATH = re.compile(r"^[\/\\]+|[\/\\]+$") + GROUP_PREFIX = 'fgrp-' + MAX_GROUP_LENGTH = 63 - len(GROUP_PREFIX) + MAX_FILE_SIZE = 50000 * 4 * 1024 * 1024 + PARALLEL_OPERATION_THREAD_COUNT = 5 + SAS_EXPIRY_DAYS = 7 # 7 days + ROUND_DATE = 2 * 60 * 1000 # Round to nearest 2 minutes + + def __init__(self, get_storage_client): + self.resource_file_cache = {} + self.container_sas_cache = {} + self.resolve_storage_account = get_storage_client + + def filter_resource_cache(self, container, prefix): + """Return all blob refeferences in a container cache that meet a prefix requirement.""" + filtered = [] + for blob in self.resource_file_cache[container]: + if not prefix: + filtered.append(blob) + elif blob['filePath'].startswith(prefix): + filtered.append(blob) + return filtered + + def list_container_contents(self, source, container, blob_service): + """List blob references in container.""" + if container not in self.resource_file_cache: + self.resource_file_cache[container] = [] + blobs = blob_service.list_blobs(container) + for blob in blobs: + if source.file_group: + blob_sas = generate_blob_sas_token(blob, container, blob_service) + elif source.container_url: + blob_sas = construct_sas_url(blob, urlsplit(source.container_url)) + elif source.url: + blob_sas = source.url + else: + raise ValueError("FileSource has no file source.") + file_name = os.path.basename(blob.name) + file_name_only = os.path.splitext(file_name)[0] + self.resource_file_cache[container].append( + {'url': blob_sas, + 'filePath': blob.name, + 'fileName': file_name, + 'fileNameWithoutExtension': file_name_only}) + return self.filter_resource_cache(container, source.prefix) + + def resolve_container_sas_if_needed(self, container_url): + if container_url_has_sas(container_url): + return container_url + # The container Url doesn't have a SAS signature, let's generate one. + container_name = get_container_name_from_url(container_url) + return self.get_container_sas(container_name, False) + + def get_container_sas(self, file_group_or_container_name, is_file_group=True): + storage_client = self.resolve_storage_account() + if is_file_group: + container = get_container_name(file_group_or_container_name) + else: + container = file_group_or_container_name + try: + return self.container_sas_cache[container] + except KeyError: + self.container_sas_cache[container] = generate_container_sas_token(container, storage_client) + return self.container_sas_cache[container] + + def get_container_list(self, source): + """List blob references in container.""" + if source.file_group: + # Input data stored in auto-storage + storage_client = self.resolve_storage_account() + container = get_container_name(source.file_group) + elif source.container_url: + uri = urlsplit(source.container_url) + if not uri.query: + raise ValueError('Invalid container url.') + storage_account_name = uri.netloc.split('.')[0] + sas_token = uri.query + storage_client = BlockBlobService(account_name=storage_account_name, + sas_token=sas_token) + container = uri.pathname.split('/')[1] + else: + raise ValueError('Unknown source.') + + return self.list_container_contents(source, container, storage_client) + + def resolve_resource_file(self, resource_file): + """Convert new resourceFile reference to server-supported reference""" + if resource_file.http_url: + # Support original resourceFile reference + if not resource_file.file_path: + raise ValueError('Malformed ResourceFile: \'httpUrl\' must ' + 'also have \'file_path\' attribute') + return [resource_file] + + if resource_file.storage_container_url or resource_file.auto_storage_container_name: + return [resource_file] + + if not hasattr(resource_file, 'source') or not resource_file.source: + raise ValueError('Malformed ResourceFile: Must have either ' + ' \'source\' or \'httpUrl\'') + + storage_client = self.resolve_storage_account() + container = None + blobs = [] + + if resource_file.source.file_group: + # Input data stored in auto-storage + container = get_container_name(resource_file.source.file_group) + blobs = self.list_container_contents(resource_file.source, container, storage_client) + return convert_blobs_to_resource_files(blobs, resource_file) + if resource_file.source.container_url: + # Input data storage in arbitrary container + uri = urlsplit(resource_file.source.container_url) + container = uri.pathname.split('/')[1] + blobs = self.list_container_contents(resource_file.source, container, storage_client) + return convert_blobs_to_resource_files(blobs, resource_file) + if resource_file.source.url: + # TODO: Input data from an arbitrary HTTP GET source + raise ValueError('Not implemented') + raise ValueError('Malformed ResourceFile') diff --git a/azext/batch/_vendor/v5/azext/batch/_pool_utils.py b/azext/batch/_vendor/v5/azext/batch/_pool_utils.py new file mode 100644 index 00000000..02419aa9 --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/_pool_utils.py @@ -0,0 +1,28 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from enum import Enum + +# pylint: disable=too-few-public-methods + + +class PoolOperatingSystemFlavor(Enum): + WINDOWS = 'windows' + LINUX = 'linux' + + +def get_pool_target_os_type(pool): + try: + image_publisher = pool.virtual_machine_configuration.image_reference.publisher + sku_id = pool.virtual_machine_configuration.node_agent_sku_id + except AttributeError: + image_publisher = None + sku_id = None + + return PoolOperatingSystemFlavor.WINDOWS \ + if not image_publisher \ + or (image_publisher and image_publisher.lower().find('windows') >= 0) \ + or (sku_id and sku_id.lower().find('windows') >= 0) \ + else PoolOperatingSystemFlavor.LINUX diff --git a/azext/batch/_vendor/v5/azext/batch/_template_utils.py b/azext/batch/_vendor/v5/azext/batch/_template_utils.py new file mode 100644 index 00000000..bedffc74 --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/_template_utils.py @@ -0,0 +1,1230 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +from __future__ import unicode_literals + +import copy +import itertools +import json +from logging import getLogger +import re +from msrest.serialization import Model +try: + from shlex import quote as shell_escape +except ImportError: + from pipes import quote as shell_escape + +from . import errors +from . import _pool_utils as pool_utils +from . import models + +logger = getLogger(__name__) +try: + _UNICODE_TYPE = unicode +except NameError: + _UNICODE_TYPE = str + + +def _validate_int(value, content): + """Return parameter value as an integer. + :param str value: The raw parameter value. + :param dict content: The template parameter definition. + :returns: int + """ + try: + original = str(value) + value = int(value) + except (ValueError, UnicodeEncodeError): + raise TypeError("'{}' is not a valid integer.".format(value)) + if str(value) != original: + raise TypeError("'{}' is not a valid integer.".format(value)) + try: + if value < int(content['minValue']): + raise ValueError("Minimum value: {}".format(content['minValue'])) + except KeyError: + pass + try: + if value > int(content['maxValue']): + raise ValueError("Maximum value: {}".format(content['maxValue'])) + except KeyError: + pass + return value + + +def _validate_string(value, content): + """Return parameter value as a string. + :param str value: The raw parameter value. + :param dict content: The template parameter definition. + :returns: str + """ + if value is None: + raise TypeError("String value must be provided") + + value = value if isinstance(value, _UNICODE_TYPE) else str(value) + try: + if len(value) < int(content['minLength']): + raise ValueError("Minimum length: {}".format(content['minLength'])) + except KeyError: + pass + try: + if len(value) > int(content['maxLength']): + raise ValueError("Maximum length: {}".format(content['maxLength'])) + except KeyError: + pass + return value + + +def _validate_bool(value): + """Return parameter value as boolean. + :param str value: The raw parameter value. + :param dict content: The template parameter definition. + :returns: bool + """ + if value in [True, False]: + return value + try: + if str(value).lower() == 'true': + return True + if str(value).lower() == 'false': + return False + raise TypeError("'{}' is not a valid bool".format(value)) + except UnicodeEncodeError: + raise TypeError("'{}' is not a valid bool".format(value)) + + +def _is_substitution(content, start, end): + """This is to support non-ARM-style direct parameter string substitution as a + simplification of the concat function. We may wish to remove this + if we want to adhere more strictly to ARM. + :param str content: The contents of an expression from the template. + :param int start: The start index of the expression. + :param int end: The end index of the expression. + """ + return not (content[start - 1] == '"' and content[end + 1] == '"') + + +def _find(delimiter, content, start_index): + """Given that a string starts at the index specified, scan for the end of that string. + :param str delimiter: Delimiter for which to search. + :param str content: String to scan. + :param int start_index: Index of the character after opening string delimiter. + :returns: Index of the closing string delimiter. + """ + index = start_index + while index < len(content): + char = content[index] + if char == '\\': + index += 1 + elif char == delimiter: + return index + index += 1 + raise ValueError() + + +def _find_nested(delimiter, content, start_index): + """Scan a string to find a specified delimiter, respecting nesting of brackets and strings. + :param str delimiter: Delimiter for which to search. + :param str content: String to scan. + :param int start_index: Index of the character after opening string delimiter. + :returns: Index of the closing string delimiter. + """ + index = start_index + while index < len(content): + char = content[index] + if char == delimiter: + return index + if char == '[': + index = _find_nested(']', content, index + 1) + elif char == '(': + index = _find_nested(')', content, index + 1) + elif char == '"': + index = _find('"', content, index + 1) + elif char == '\'': + index = _find('\'', content, index + 1) + index += 1 + return index + + +def _merge_metadata(base_metadata, more_metadata): + """Merge metadata from two different sources. + :param list base_metadata: A (possibly undefined) set of metadata. + :param list more_metadata: Metadata to add (also possibly undefined). + """ + result = [] + if base_metadata: + result.extend(base_metadata) + if more_metadata: + conflicts = [k for k in [m.name for m in more_metadata] + if k in [m['name'] for m in result]] + if conflicts: + raise ValueError("May not have multiple definitions for metadata " + "value(s) '{}'".format(', '.join(conflicts))) + else: + result.extend([{'name': m.name, 'value': m.value} for m in more_metadata]) + return result + + +def _merge_environment_settings(base_env_settings, more_env_settings): + """Merge environment settings from two different sources. + :param list base_env_settings: A (possibly undefined) set of metadata. + :param list more_env_settings: Metadata to add (also possibly undefined). + """ + result = [] + if base_env_settings: + result.extend(base_env_settings) + if more_env_settings: + conflicts = [k for k in [m.name for m in more_env_settings] + if k in [m['name'] for m in result]] + if conflicts: + raise ValueError("May not have multiple definitions for environment settings " + "value(s) '{}'".format(', '.join(conflicts))) + else: + result.extend([{'name': m.name, 'value': m.value} for m in more_env_settings]) + return result + + +def _is_prefixed(cmd_line): + """Whether the supplied command line has already been prefixed + with an OS specific operation. + """ + if cmd_line is None: + raise ValueError("CommandLine is required field for task.") + return cmd_line.startswith('cmd.exe /c') or \ + cmd_line.startswith('cmd /c') or \ + cmd_line.startswith('/bin/bash -c') or \ + cmd_line.startswith('/bin/sh -c') + + +def _strip_prefix(cmd_line): + """Strip an OS operating prefix from a command line. + """ + if cmd_line.startswith('cmd.exe /c '): + return cmd_line[11:].strip('"') + if cmd_line.startswith('cmd /c '): + return cmd_line[7:].strip('"') + if cmd_line.startswith('/bin/bash -c '): + return cmd_line[13:] + if cmd_line.startswith('/bin/sh -c '): + return cmd_line[11:] + return cmd_line + +def _add_cmd_prefix(task, os_flavor): + """Add OS-specific command prefix to command line.""" + if os_flavor == pool_utils.PoolOperatingSystemFlavor.WINDOWS: + # TODO: Do we need windows shell escaping? + task.command_line = 'cmd /c "{}"'.format(task.command_line) #.replace('\"','\\\\\"') + elif os_flavor == pool_utils.PoolOperatingSystemFlavor.LINUX: + task.command_line = '/bin/bash -c \'set -e; set -o pipefail; {}; wait\''.format(task.command_line) + else: + raise ValueError("Unknown pool OS flavor: " + str(os_flavor)) + +def _get_installation_cmdline(references, os_flavor): + """Build the installation command line for package reference collection. + :param dict references: Package installation references. + :param str os_flavor: The pool OS flavor. + """ + # pylint: disable=too-many-statements + if not references: + return None + builder = "" + package_type = None + type_error = 'PackageReferences may only contain a single type of package reference.' + for reference in references: + if not reference.type or not reference.id: + raise ValueError("A PackageReference must have a 'type' and 'id' element.") + if reference.type == 'aptPackage': + if package_type and package_type != 'apt': + raise ValueError(type_error) + if os_flavor != pool_utils.PoolOperatingSystemFlavor.LINUX: + raise ValueError('aptPackage is only supported when targeting Linux pools.') + package_type = 'apt' + apt_cmd = "=" + str(reference.version) if reference.version else "" + apt_cmd = "apt-get install -y {}{}".format(reference.id, apt_cmd) + builder += ';' + apt_cmd if builder else apt_cmd + # TODO: deal with repository, keyUrl, sourceLine + elif reference.type == 'chocolateyPackage': + if package_type and package_type != 'choco': + raise ValueError(type_error) + if os_flavor != pool_utils.PoolOperatingSystemFlavor.WINDOWS: + raise ValueError( + 'chocolateyPackage is only supported when targeting Windows pools.') + package_type = 'choco' + choco_cmd = ' --allow-empty-checksums' if reference.allow_empty_checksums else "" + if reference.version: + choco_cmd = " --version {}{}".format(reference.version, choco_cmd) + choco_cmd = "choco install {}{}".format(reference.id, choco_cmd) + builder += ' & ' + choco_cmd if builder else choco_cmd + elif reference.type == 'yumPackage': + if package_type and package_type != 'yum': + raise ValueError(type_error) + if os_flavor != pool_utils.PoolOperatingSystemFlavor.LINUX: + raise ValueError('yumPackage is only supported when targeting Linux pools.') + package_type = 'yum' + yum_cmd = '' + if reference.disable_excludes: + yum_cmd = ' --disableexcludes=' + str(reference.disable_excludes) + if reference.version: + yum_cmd = '-{}{}'.format(reference.version, yum_cmd) + yum_cmd = 'yum -y install {}{}'.format(reference.id, yum_cmd) + builder += ';' + yum_cmd if builder else yum_cmd + # TODO: deal with rpmRepository + # rpm -Uvh + elif reference.type == 'applicationPackage': + raise ValueError("ApplicationPackage type for id '{}' is not supported " + "in this version.".format(reference.id)) + else: + raise ValueError("Unknown PackageReference type '{}' " + "for id '{}'.".format(reference.type, reference.id)) + if package_type == 'apt': + command = 'apt-get update;' + builder + elif package_type == 'choco': + command = ('powershell -NoProfile -ExecutionPolicy unrestricted ' + '-Command "(iex ((new-object net.webclient).DownloadString' + '(\'https://chocolatey.org/install.ps1\')))" && SET ' + 'PATH="%PATH%;%ALLUSERSPROFILE%\\chocolatey\\bin"') + command += ' && choco feature enable -n=allowGlobalConfirmation & ' + builder + # TODO: Do we need to double check with pool agent name + elif package_type == 'yum': + command = builder + return {'cmdLine': command, 'isWindows': package_type == 'choco'} + + +def _validate_parameter_usage(parameters, definitions): + """Validate the parameters supplied by the job against those defined on the template. + :param dict parameters: Parameters supplied by the job. + :param dict definitions: Parameter definitions from the application template. + """ + if parameters is None: + parameters = {} + if definitions is None: + definitions = {} + for name, definition in definitions.items(): + supported_types = ['int', 'string', 'bool'] + try: + if definition['type'] not in supported_types: + raise ValueError("The parameter '{}' specifies an unsupported " + "type: {}".format(name, definition['type'])) + except KeyError: + raise ValueError("The parameter '{}' does not specify a type.".format(name)) + # Rule: If the parameter definition has no default value, the template must provide a value + parameter = parameters.get(name, definition.get('defaultValue')) + if parameter is None: + raise ValueError("A value for parameter '{}' must be provided " + "by the job.".format(name)) + # Rule: If the parameter definition specifies 'int', the value provided must be compatible + if definition['type'] == 'int': + try: + _validate_int(parameter, {}) + except TypeError: + raise ValueError("'Value '{}' supplied for parameter '{}' must be an " + "integer.".format(parameter, name)) + # Rule: if the parameter definition specified 'bool', the value provided must be compatible + elif definition['type'] == 'bool': + try: + _validate_bool(parameter) + except TypeError: + raise ValueError("'Value '{}' supplied for parameter '{}' must be a " + "boolean.".format(parameter, name)) + # Rule: Only parameters values defined by the template are permitted + violations = [k for k in parameters if k not in definitions] + if violations: + raise ValueError("Provided parameter(s) {} are not expected " + "by the template.".format(', '.join(violations))) + + +def _validate_generated_job(job): + """Validate the partial job generated from an application template prior + to merging it with the original job. + :param dict job: A partial generated job specification to validate. + """ + # Rule: The job generated by an application template may not use properties reserved for job use + # (This is a safety to prevent clever abuse of template syntax + # to specify things that shouldn't be.) + reserved = [k for k in job if k in models.PROPS_RESERVED_FOR_JOBS] + if reserved: + raise ValueError("Application templates may not specify these " + "properties: {}".format(', '.join(reserved))) + # Rule: Templates may only specify properties permitted + unsupported = [k for k in job if k not in models.PROPS_PERMITTED_ON_TEMPLATES] + if unsupported: + raise ValueError("Application templates may not use these " + "properties: {}".format(', '.join(unsupported))) + + +def _validate_metadata(metadata): + """Validate the provided metadata is valid. + :param list metadata: A list of metadata dicts. + """ + # Rule: The prefix 'az_batch:' is reserved for our use + # and can't be specified on job nor on template. + violation = [k for k in [m['name'] for m in metadata] if k.startswith('az_batch')] + if violation: + raise ValueError("Metadata item(s) '{}' cannot be used; the prefix 'az_batch:' is " + "reserved for Batch use.".format(', '.join(violation))) + + +def _validate_parameter(name, content, value): + """Validate the input parameter is valid for specified template. Checks the following: + Check input fit with parameter type, if yes, convert to correct type + Check input matched with the restriction of parameter + :param str name: The parameter name. + :param dict content: The template parameter definition. + :param str value: The raw parameter value. + :returns: Validated input paramater, otherwise None. + """ + try: + if content['type'] == 'int': + value = _validate_int(value, content) + elif content['type'] == 'bool': + value = _validate_bool(value) + elif content['type'] == 'string': + value = _validate_string(value, content) + if value not in content.get('allowedValues', [value]): + raise ValueError("Allowed values: {}".format(', '.join(content['allowedValues']))) + except TypeError: + raise TypeError("The value '{}' of parameter '{}' is not a {}".format( + name, value, content['type'])) + except ValueError as value_error: + raise ValueError( + "The value '{}' of parameter '{}' does not meet the requirement: {}".format( + name, value, str(value_error))) + else: + return value + + +def _get_template_params(template, param_values): + """Return all required parameter values for the specified template. + :param dict template: Template JSON object. + :param dict param_values: User provided parameter values. + """ + param_keys = {} + try: + for param, values in template['parameters'].items(): + if 'type' not in values: + raise ValueError('Parameter {} does not have type defined'.format(param)) + try: + # Support both ARM and dictionary syntax + # ARM: '' : { 'value' : '' } + # Dictionary: '' : ' + value = param_values[param] + param_keys[param] = value.get('value') if isinstance(value, dict) else value + except KeyError: + param_keys[param] = values.get('defaultValue') + except KeyError: + pass # No parameters to expand + return param_keys + + +def _parse_arm_parameter(name, template_obj, parameters): + """Render the content of an ARM property + :param str name: The name of the property to render. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + # Find name of root parameter + param_name_end = _find_nested(')', name, 0) # Find end of name + if param_name_end >= len(name): + raise ValueError( + "Template reference misformatted for parameter '{}'".format(name)) + # Interpret name of parameter + param_name = _parse_arm_expression( + name[1:param_name_end-1], + template_obj, + parameters) + + # Make sure there are defined parameters + if 'parameters' not in template_obj: + raise ValueError("Template defines no parameters but tried to use '{}'".format(param_name)) + + try: + # Get parameter object + param_def = template_obj['parameters'][param_name] + # Parse nested object if exists + if len(name) > param_name_end+1: + param_def = _parse_nested_object( + param_def, + name[param_name_end+1:], + template_obj, + parameters) + + except KeyError: + raise ValueError("Template does not define parameter '{}'".format(param_name)) + user_value = param_def.get('defaultValue') + if parameters and param_name in parameters: + # Support both ARM and dictionary syntax + # ARM: '' : { 'value' : '' } + # Dictionary: '' : ' + user_value = parameters[param_name] + try: + user_value = user_value['value'] + except TypeError: + pass + if user_value is None: + raise errors.MissingParameterValue( + "No value supplied for parameter '{}' and no default value".format(param_name), + parameter_name=param_name, + parameter_description=param_def.get('metadata', {}).get('description')) + if isinstance(user_value, dict): + # If substitute value is a complex object - it may require + # additional parameter substitutions + return _parse_template(json.dumps(user_value), template_obj, parameters) + try: + if param_def['type'] == 'int': + return _validate_int(user_value, param_def) + if param_def['type'] == 'bool': + return _validate_bool(user_value) + if param_def['type'] == 'string': + return _validate_string(user_value, param_def) + except TypeError: + raise TypeError("Value '{}' for parameter '{}' must be a {}.".format( + user_value, param_name, param_def['type'])) + else: + raise TypeError("Parameter type '{}' not supported.".format(param_def['type'])) + + +def _parse_nested_object(obj, references, template_obj, parameters): + """ Decouple [] and . notation references. Then applies to object. + + :param object obj: Root object being traversed + :param str references: String of references to be decoupled + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + :return: Object referenced + """ + obj_refs = [] + ret_obj = obj + var_name = references + # Find and interpret each nested object and add them to a queue + while True: + start_dict = _find_nested('[', var_name, 0) + start_obj = _find_nested('.', var_name, 0) + # Handles nested [] references + if 0 <= start_dict < start_obj: + end_index = _find_nested(']', var_name, start_dict + 1) + obj_ref_str = var_name[start_dict + 1:end_index] + obj_refs.append( + _parse_arm_expression(obj_ref_str, template_obj, parameters)) + var_name = var_name[:start_dict] + var_name[end_index + 1:] + # Handles nested . references + elif 0 <= start_obj < start_dict: + next_start_dict = _find_nested('[', var_name, 1) + next_start_obj = _find_nested('.', var_name, 1) + end_index = next_start_dict if next_start_dict < next_start_obj else next_start_obj + end_index = end_index if end_index > start_obj else len(var_name) + obj_ref_str = var_name[start_obj + 1:end_index] + obj_refs.append( + _parse_arm_expression(obj_ref_str, template_obj, parameters)) + var_name = var_name[:start_obj] + var_name[end_index:] + else: + break + + while obj_refs: + ref = obj_refs.pop(0) + ret_obj = ret_obj[ref] + + return ret_obj + + +def _parse_arm_variable(name, template_obj, parameters): + """Render the value of an ARM variable. + :param str name: The name of the variable to render. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + try: + # Get head object referenced + variable_name_end = _find_nested(')', name, 0) # Find end of variable name + if variable_name_end >= len(name): + raise ValueError("Template reference misformatted for variable '{}'".format(name)) + variable_name = _parse_arm_expression( + name[1:variable_name_end-1], + template_obj, + parameters) # Make sure inner name is fully parsed + variable_obj = template_obj['variables'][variable_name] + # If there is any text after ')' then there additional references on the object + if len(name) > variable_name_end+1: + variable_obj = _parse_nested_object( + variable_obj, + name[variable_name_end+1:], + template_obj, + parameters) + + # parse the result object + variable = _parse_arm_expression( + variable_obj, + template_obj, parameters) + except KeyError: + raise ValueError("Template contains no definition for variable '{}'".format(name)) + if isinstance(variable, dict): + # If substitute value is a complex object - it may require + # additional parameter substitutions + return _parse_template(json.dumps(variable), template_obj, parameters) + return variable + + +def _parse_arm_concat(expression, template_obj, parameters): + """Evaluate an ARM concat expression. + :param str expression: The concat expression to evaluate. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + content = "" + index = 0 + while index < len(expression): + end = _find_nested(',', expression, index) + argument = expression[index:end].strip() + content += _parse_arm_expression(argument, template_obj, parameters) + index = end + 1 + return content + + +def _parse_arm_expression(expression, template_obj, parameters): + """Determine if a section of the template is an ARM reference, and calculate + the replacement accordingly. The result will be correctly typed to suit the + parameter definition (e.g. will return a number if the parameter requires a number) + :param str expression: A section of template contained within []. + :param dict template_obj: The loaded contents of the JSON template. + :param dict parameters: The loaded contents of the JSON parameters. + """ + if not isinstance(expression, str): + return expression + if expression[0] == '[' and expression[-1] == ']': + # Remove the enclosing brackets to check the contents + return _parse_arm_expression(expression[1:-1], template_obj, parameters) + if expression[0] == '(' and expression[-1] == ')': + # If the section is surrounded by ( ), then we need to further process the contents + # as either a parameter name, or a concat operation + return _parse_arm_expression(expression[1:-1], template_obj, parameters) + if expression[0] == '\'' and expression[-1] == '\'': + # If a string, remove quotes in order to perform parameter look-up + return expression[1:-1] + if re.match(r'^parameters', expression): + result = _parse_arm_parameter(expression[11:], template_obj, parameters) + elif re.match(r'^variables', expression): + result = _parse_arm_variable(expression[10:], template_obj, parameters) + elif re.match(r'^concat', expression): + result = _parse_arm_concat(expression[7:-1], template_obj, parameters) + elif re.match(r'^reference', expression): + raise NotImplementedError("ARM-style 'reference' syntax not supported.") + else: + result = expression + return result + + +def _parse_template_string(string_content, template_obj, parameters): + """Given a string value (including quotes), evaluate any embedded template expressions + delimited by '[' and ']'. + :param str string_content: The contents of the template string. + :param dict template_obj: The loaded JSON template file. + :param dict parameters: The contents of the parameters file. + """ + updated_content = "" + current_index = 0 + while current_index < len(string_content): + try: + expression_start = string_content.index('[', current_index) + except ValueError: # No template expression to evaluate + break + if expression_start < len(string_content) - 1 and \ + string_content[expression_start + 1] == '[': + # Found escaped expression + updated_content += string_content[current_index:expression_start] + '[' + current_index = expression_start + 2 + continue + expression_end = _find_nested(']', string_content, expression_start + 1) + if expression_end >= len(string_content): + # No closing delimiter for the expression (not our problem) + break + # Everything between [ and ] + expression = string_content[expression_start + 1:expression_end] + parsed = _parse_arm_expression(expression, template_obj, parameters) + if _is_substitution(string_content, expression_start, expression_end): + # Replacing within the middle of a string + parsed = parsed if isinstance(parsed, _UNICODE_TYPE) else str(parsed) + updated_content += string_content[current_index:expression_start] + json.dumps(parsed)[1:-1] + current_index = expression_end + 1 + elif isinstance(parsed, bool): + parsed = "true" if parsed else "false" + updated_content += string_content[current_index:expression_start - 1] + parsed + current_index = expression_end + 2 + elif isinstance(parsed, int): + # Replacing an entire element value, and we want to remove any surrounding quotes + updated_content += string_content[current_index:expression_start - 1] + str(parsed) + current_index = expression_end + 2 + elif isinstance(parsed, dict): + json_content = json.dumps(parsed) + updated_content += string_content[current_index:expression_start - 1] + json_content + current_index = expression_end + 2 + else: + parsed = parsed if isinstance(parsed, _UNICODE_TYPE) else str(parsed) + updated_content += string_content[current_index:expression_start] + json.dumps(parsed)[1:-1] + current_index = expression_end + 1 + updated_content += string_content[current_index:] + return updated_content + + +def _parse_template(template_str, template_obj, parameters): + """Expand all parameters, and variables in the template. + + We want to expand all template expressions (delimited by '[' and ']') in the supplied template + string. However, that syntax collides with JSON syntax for arrays and we don't want to collide + with any of those. To avoid such a collision, we iterate through all of the string values + (delimited by double quotes (")) and then expand template expressions only within those. + + :param str template_str: Content of the template file as a string. + :param dict template_obj: Contents of the template file. + :param dict parameters: Contents of the parameters file. + :returns: Fully resolved JSON template. + """ + updated_json = "" + current_index = 0 + while current_index < len(template_str): + try: + string_start = template_str.index('"', current_index) + except ValueError: # Didn't find another string to expand + break + try: + string_end = _find('"', template_str, string_start + 1) + except ValueError: # Didn't find terminating quote for string (not our problem) + break + string_content = template_str[string_start:string_end + 1] + if '[' in string_content: + updated_json += template_str[current_index:string_start] + updated_json += _parse_template_string(string_content, template_obj, parameters) + else: + updated_json += template_str[current_index:string_end + 1] + current_index = string_end + 1 + updated_json += template_str[current_index:] + try: + return json.loads(updated_json) + except ValueError as exp: + try: + return json.loads(updated_json.encode('string_escape').replace('\\\\', '\\')) + except LookupError: + raise ValueError("Unable to load JSON template {}, error: {}".format( + updated_json, str(exp))) + + +def _process_resource_files(request, fileutils): + """Parse a request body for any references to resource files and transform + them to API resourceFile format where applicable. + :param dict request: Job or task specification. + :returns: The updated job or task specification. + """ + if isinstance(request, list): + return [_process_resource_files(r, fileutils) for r in request if isinstance(r, Model)] + for attr, value in request.__dict__.items(): + if attr in ['resource_files', 'common_resource_files']: + if value and isinstance(value, list): + new_resources = [] + for file_ref in value: + new_resources.extend(fileutils.resolve_resource_file(file_ref)) + setattr(request, attr, new_resources) + elif isinstance(value, (Model, list)): + _process_resource_files(value, fileutils) + return request + + +def _parse_task_output_files(task, file_utils): + """Process a task's outputFiles section and update the task accordingly. + :param dict task: A task specification. + :returns: A new task specification with modifications. + """ + if not task or not task.output_files: + return + # Validate the output file configuration + for output_file in task.output_files: + destination = output_file.destination + if not destination.container and not destination.auto_storage: + raise ValueError("outputFile must include 'container' or 'auto_storage' property.") + if destination.container and destination.auto_storage: + raise ValueError("outputFile can not have both 'container' " + "and 'auto_storage' properties.") + if destination.auto_storage: + if not destination.auto_storage.file_group: + raise ValueError("'auto_storage' of 'destination' must have 'file_group' property.") + destination.container = models.OutputFileBlobContainerDestination( + container_url=file_utils.get_container_sas(destination.auto_storage.file_group)) + if destination.auto_storage.path: + destination.container.path = destination.auto_storage.path + destination.auto_storage = None + elif destination.container: + # If only a container Url was specified we need to get a SAS Url for it. + destination.container.container_url = file_utils.resolve_container_sas_if_needed( + destination.container.container_url) + + +def _transform_sweep_str(data, parameters): + """Replace string placeholders with parametric sweep values. + :param str data: The string containing placeholders. + :param list parameters: The sweep values, each value maps + to one of {0}, {1}, .. {n} by index. + """ + # Handle {n} or {n:m} scenario + reg = re.compile(r'\{(\d+)(:(\d+))?\}') + + def replace(match): + r, r1, _, r3 = [data[start:end] for start, end in match.regs] + n = int(r1) + if n >= len(parameters): + raise ValueError("The parameter pattern '{}' is out of bound.".format(r)) + number_str = str(parameters[n]) + if ':' in r: + # This is {n:m} scenario + if parameters[n] < 0: + raise ValueError( + "The parameter '{}' is negative and cannot be used in pattern '{}'.".format( + parameters[n], r)) + m = int(r3) + if m < 1 or m > 9: + raise ValueError( + "The parameter pattern '{}' is out of bound. " + "The padding number can be only between 1 to 9.".format(r)) + return number_str.zfill(m) + # This is just {n} scenario + return number_str + return reg.sub(replace, data) + + +def _transform_file_str(content, file_ref): + """Replace string with file value. + :param str content: The string to be replaced. + :param dict file_ref: The file information, containing 'url', + 'filePath etc properties. + """ + replace_props = ['url', 'filePath', 'fileName', 'fileNameWithoutExtension'] + for prop in replace_props: + content = re.sub("{" + prop + "}", file_ref[prop], content) + return content + + +def _replacement_transform(transformer, source_obj, source_key, context): + """Transform a string by applying specific context values. + By design, user should escape all the literal '{' or '}' to '{{' or '}}'. + All other '{' or '}' characters are used for replacement + :param func transformer: The tranformation function to run. + :param dict source_obj: The object containing the string to be transformed. + :param str key: The key of the string to be transformed. + :param context: The specific context to apply to the string. + """ + if not source_obj: + return + source_str = getattr(source_obj, source_key, None) + if not source_str: + return + # Handle '{' and '}' escape scenario : replace '{{' to LEFT_BRACKET_REPLACE_CHAR, + # and '}}' to RIGHT_BRACKET_REPLACE_CHAR. The reverse function is used to handle {{{0}}}. + LEFT_BRACKET_REPLACE_CHAR = u'\uE800' # pylint: disable=anomalous-unicode-escape-in-string + RIGHT_BRACKET_REPLACE_CHAR = u'\uE801' # pylint: disable=anomalous-unicode-escape-in-string + transformed = re.sub(r'\{\{', LEFT_BRACKET_REPLACE_CHAR, source_str)[::-1] + transformed = re.sub(r'\}\}', RIGHT_BRACKET_REPLACE_CHAR, transformed)[::-1] + transformed = transformer(transformed, context) + if '{' in transformed or '}' in transformed: + raise ValueError( + "Invalid use of bracket characters, did you forget to escape (using {{}})?") + # Replace LEFT_BRACKET_REPLACE_CHAR back to '{', and RIGHT_BRACKET_REPLACE_CHAR back to '}' + transformed = re.sub(LEFT_BRACKET_REPLACE_CHAR, '{', transformed) + transformed = re.sub(RIGHT_BRACKET_REPLACE_CHAR, '}', transformed) + setattr(source_obj, source_key, transformed) + + +def _transform_repeat_task(task, context, index, transformer): + """Apply the transformer to a task template to yield a new task. + :param dict task: The repeatTask task template. + :param context: The task-factory specific context to apply to the template. + :param index: The task factory index to use as task ID. + :param func transformer: The transforming function to apply the + context to the template. + """ + if not task or not task.command_line: + raise ValueError("RepeatTask and it's command line must be defined.") + new_task = models.ExtendedTaskParameter(id=str(index), **copy.deepcopy(task.__dict__)) + _replacement_transform(transformer, new_task, 'command_line', context) + _replacement_transform(transformer, new_task, 'display_name', context) + try: + for resource in new_task.resource_files: + _replacement_transform(transformer, resource, 'file_path', context) + _replacement_transform(transformer, resource, 'http_url', context) + try: + for param in ['file_group', 'prefix', 'container_url', 'url']: + _replacement_transform(transformer, resource.source, param, context) + except AttributeError: + # Using a traditional ResourceFile object with no 'source'. + pass + except TypeError: + # No resource files + pass + try: + for env_variable in new_task.environment_settings: + for param in ['name', 'value']: + _replacement_transform(transformer, env_variable, param, context) + except TypeError: + # No resource files + pass + try: + for output in new_task.output_files: + _replacement_transform(transformer, output, 'file_pattern', context) + try: + for param in ['path', 'container_url']: + _replacement_transform(transformer, output.destination.container, param, context) + except AttributeError: + pass # Not using container reference + try: + for param in ['path', 'file_group']: + _replacement_transform(transformer, output.destination.auto_storage, param, context) + except AttributeError: + pass # Not using autostorage reference + except TypeError: + # No resource files + pass + return new_task + + +def _transform_merge_task(task): + new_task = models.ExtendedTaskParameter(**copy.deepcopy(task.__dict__)) + return new_task + + +def _parse_parameter_sets(parameter_sets): + """Parse parametric sweep set, and return all possible values in array. + :param list parameter_sets: An array of parameter sets. + """ + if not parameter_sets: + raise ValueError("At least one parameter set is required.") + iterations = [] + for params in parameter_sets: + valid_params = models.ParameterSet(start=params.start, end=params.end, step=params.step) + end = valid_params.end + 1 if valid_params.end >= valid_params.start else valid_params.end - 1 + iterations.append(range(valid_params.start, end, valid_params.step)) + return itertools.product(*iterations) + + +def _expand_parametric_sweep(factory): + """Parse parametric sweep task factory object, and return task list. + :param dict factory: A loaded JSON task factory object. + """ + permutations = _parse_parameter_sets(factory.parameter_sets) + task_objs = [_transform_repeat_task(factory.repeat_task, p, i, _transform_sweep_str) + for i, p in enumerate(permutations)] + try: + factory.merge_task.id = 'merge' + factory.merge_task.depends_on = models.TaskDependencies( + task_id_ranges=[models.TaskIdRange(start=0, end=len(task_objs) - 1)]) + task_objs.append(_transform_merge_task(factory.merge_task)) + except AttributeError: # No merge task + pass + return task_objs + + +def _expand_task_collection(factory): + """Parse task collection task factory object, and return task list. + :param dict factory: A loaded JSON task factory object. + """ + return factory.tasks + + +def _expand_task_per_file(factory, fileutils): + """Parse file iteration task factory object, and return task list. + :param dict factory: A loaded JSON task factory object. + """ + files = fileutils.get_container_list(factory.source) + task_objs = [_transform_repeat_task(factory.repeat_task, f, i, _transform_file_str) + for i, f in enumerate(files)] + try: + factory.merge_task.id = 'merge' + factory.merge_task.depends_on = models.TaskDependencies( + task_id_ranges=[models.TaskIdRange(start=0, end=len(task_objs) - 1)]) + task_objs.append(_transform_merge_task(factory.merge_task)) + except AttributeError: # No merge task + pass + return task_objs + + +def expand_application_template(job, deserialize): + """Expand an application template reference on a job, returning the modified job. + :param dict job: A job specification that may contain an application template reference. + :param string working_dir: Base folder for evaluation of relative paths (is required). + """ + try: + with open(job.application_template_info.file_path, 'r') as file_handle: + template_json = json.load(file_handle) + except (EnvironmentError, ValueError, TypeError) as error: + raise ValueError("Failed to load application template from '{}': {}". + format(job.application_template_info.file_path, error)) + _validate_parameter_usage(job.application_template_info.parameters, + template_json.get('parameters')) + job_from_template = _parse_template(json.dumps(template_json), template_json, + job.application_template_info.parameters) + _validate_generated_job(job_from_template) + metadata = _merge_metadata(job_from_template.get('metadata'), job.metadata) + env_settings = _merge_environment_settings(job_from_template.get('commonEnvironmentSettings'), + job.common_environment_settings) + _validate_metadata(metadata) + metadata.append({'name': 'az_batch:template_filepath', 'value': job.application_template_info.file_path}) + job_from_template['metadata'] = metadata + job_from_template['commonEnvironmentSettings'] = env_settings + + job_patch = deserialize('ApplicationTemplate', job_from_template) + # Merge the job as defined by the application template with the original job we were given + job.__dict__.update(job_patch.__dict__) + job.application_template_info = None + + +def expand_template(template_json, parameter_json=None): + """Return JSON object with with the parameters replaced. + :param str template_file: Input template file name. + :param str parameter_file: Input parameter file name. + """ + parameters = _get_template_params(template_json, parameter_json) + return _parse_template(json.dumps(template_json), template_json, parameters) + + +def expand_task_factory(job, fileutils): + """Parse a task factory object and expand to a list of tasks. + :param dict job_obj: The JSON job entity loaded from a template. + :returns: a list of task entities. + """ + if job.task_factory.type == 'parametricSweep': + tasks = _expand_parametric_sweep(job.task_factory) + elif job.task_factory.type == 'taskCollection': + tasks = _expand_task_collection(job.task_factory) + elif job.task_factory.type == 'taskPerFile': + tasks = _expand_task_per_file(job.task_factory, fileutils) + else: + raise TypeError("'{}' is not a valid Task Factory type.".format(job.task_factory.type)) + job.task_factory = None + return tasks + + +def has_merge_task(job): + """ Check if user has specified a mergeTask on the task factory + :param job_obj: The JSON job entity loaded from a template.: + :return: true if merge task present + """ + if job.task_factory.type in ['parametricSweep', 'taskPerFile'] and job.task_factory.merge_task: + return True + return False + + +def construct_setup_task(existing_task, command_info, os_flavor): + """Constructs a command line for the start task/job prep task which will + run the setup script. + :param dict existing_task: The original start task or job prep task. + :param list command_info: The additional command info to add. + :param dict os_flavor: The OS flavor of the pool. + :returns: An updated start task or job prep task. + """ + if existing_task: + result = dict(existing_task.__dict__) + if 'additional_properties' in result: + del result['additional_properties'] + else: + result = {} + commands = [] + resources = [] + is_windows = None + for cmd in command_info: + if cmd: + commands.append(cmd['cmdLine']) + resources.extend(cmd.get('resourceFiles', [])) + if is_windows is None: + is_windows = cmd['isWindows'] + elif is_windows != cmd['isWindows']: + raise ValueError('The command is not compatible with Windows or Linux.') + if not commands: + if result.get('command_line'): + if _is_prefixed(result['command_line']): + return result + if os_flavor == pool_utils.PoolOperatingSystemFlavor.WINDOWS: + result['command_line'] = 'cmd.exe /c "{}"'.format(result['command_line']) + elif os_flavor == pool_utils.PoolOperatingSystemFlavor.LINUX: + result['command_line'] = '/bin/bash -c {}'.format(result['command_line']) + else: + raise ValueError("Unknown pool OS flavor: " + str(os_flavor)) + return result if result else None + if result.get('command_line'): + commands.append(_strip_prefix(result['command_line'])) + resources.extend(result.get('resource_files', [])) + if os_flavor == pool_utils.PoolOperatingSystemFlavor.WINDOWS: + full_win_cmd = ' & '.join(commands) + result['command_line'] = 'cmd.exe /c "{}"'.format(full_win_cmd) + result['user_identity'] = models.UserIdentity( + auto_user=models.AutoUserSpecification(scope="task", elevation_level="admin")) + elif os_flavor == pool_utils.PoolOperatingSystemFlavor.LINUX: + # Escape the users command line + full_linux_cmd = shell_escape(';'.join(commands)) + result['command_line'] = '/bin/bash -c {}'.format(full_linux_cmd) + result['user_identity'] = models.UserIdentity( + auto_user=models.AutoUserSpecification(scope="pool", elevation_level="admin")) + else: + raise ValueError("Unknown pool OS flavor: " + str(os_flavor)) + if resources: + result['resource_files'] = resources + # Must run elevated and wait for success for the setup step + result['wait_for_success'] = True + return result + + +def process_job_for_output_files(job, tasks, file_utils): + """Process a job and its collection of tasks for any tasks which use outputFiles. + If a task does use outputFiles, we add to the jobs jobPrepTask for the install step. + NOTE: This edits the task collection and job in-line! + :param dict job: A job specification. + :param list tasks: A list of task specifications. + """ + if job.job_manager_task: + _parse_task_output_files(job.job_manager_task, file_utils) + for task in tasks: + _parse_task_output_files(task, file_utils) + + +def process_pool_package_references(pool): + """Parse package reference section in the pool JSON object. + :param dict pool: A pool specification. + """ + if not isinstance(pool.package_references, list): + raise TypeError('PackageReferences of Pool has to be a collection.') + os_flavor = pool_utils.get_pool_target_os_type(pool) + cmd_line = _get_installation_cmdline(pool.package_references, os_flavor) + pool.package_references = None + return cmd_line + + +def process_task_package_references(tasks, os_flavor): + """Parse package reference section in the task JSON object. + :param list tasks: A collection of task specifications. + :param str os_flavor: The OS flavor of the pool. + """ + if not tasks: + return "" + packages = [] + included = [] + for task in tasks: + if task.package_references: + for package in task.package_references: + if not package.id or not package.type: + raise ValueError('A PackageReference must have a type and id element.') + if package.id not in included: + packages.append(package) + included.append(package.id) + task.package_references = None + return _get_installation_cmdline(packages, os_flavor) + + +def post_processing(request, fileutils, os_flavor): + """Parse job or task to process new resource file references. + :param dict request: A job or task specification (or list thereof). + """ + # Reform all new resource file references in standard ResourceFiles + if isinstance(request, list): + for task in request: + if not _is_prefixed(task.command_line): + _add_cmd_prefix(task, os_flavor) + return [_process_resource_files(i, fileutils) for i in request] + if hasattr(request, 'job_preparation_task') and request.job_preparation_task: + if not _is_prefixed(request.job_preparation_task.command_line): + _add_cmd_prefix(request.job_preparation_task, os_flavor) + if hasattr(request, 'job_release_task') and request.job_release_task: + if not _is_prefixed(request.job_release_task.command_line): + _add_cmd_prefix(request.job_release_task, os_flavor) + if hasattr(request, 'job_manager_task') and request.job_manager_task: + if not _is_prefixed(request.job_manager_task.command_line): + _add_cmd_prefix(request.job_manager_task, os_flavor) + if hasattr(request, 'start_task') and request.start_task: + if not _is_prefixed(request.start_task.command_line): + _add_cmd_prefix(request.start_task, os_flavor) + return _process_resource_files(request, fileutils) + + +def should_get_pool(job, tasks): + """Determines if the pool (or auto pool specification) needs to be + reviewed to determine the target operating system. + This is required for some features which craft command lines and the + command lines are OS dependent. + :param list tasks: A collection of tasks to be added to the job. + :returns: bool + """ + get_pool = False + if not tasks: + return get_pool + for task in tasks: + if not _is_prefixed(task.command_line): + get_pool = True + if task.package_references: + get_pool = True + if job.job_preparation_task: + if not _is_prefixed(job.job_preparation_task.command_line): + get_pool = True + if job.job_release_task: + if not _is_prefixed(job.job_release_task.command_line): + get_pool = True + if job.job_manager_task: + if not _is_prefixed(job.job_manager_task.command_line): + get_pool = True + if job.pool_info.auto_pool_specification \ + and job.pool_info.auto_pool_specification.pool \ + and job.pool_info.auto_pool_specification.pool.package_references: + get_pool = True + return get_pool + + +def validate_json_object(json_obj, obj): + """Determines if the json template matches expected Batch object + :param json_obj: json dictionary from template. + :param obj: matched Batch object. + """ + # pylint:disable=protected-access + from enum import Enum + if issubclass(type(obj), Enum): + return + key_attr_map = {} + key_type_map = {} + for key in obj._attribute_map: + key_type_map[obj._attribute_map[key]['key'].lower()] = obj._attribute_map[key]['type'] + key_attr_map[obj._attribute_map[key]['key'].lower()] = key + for item in json_obj: + if not item.lower() in key_type_map: + raise ValueError('Unexpect element {} in template'.format(item)) + t = key_type_map[item.lower()] + if t[0].islower() or (t[0] == '[' and t[1].islower()): + continue + if t[0] == '[': + if not isinstance(json_obj[item], list): + raise ValueError('Expect element {} is list in template'.format(item)) + for index in range(len(json_obj[item])): + inner_type = getattr(obj, key_attr_map[item.lower()]) + validate_json_object(json_obj[item][index], inner_type[index]) + else: + inner_type = getattr(obj, key_attr_map[item.lower()]) + validate_json_object(json_obj[item], inner_type) + + +def convert_blob_source_to_http_url(obj): + if isinstance(obj, list): + out = [] + for i in obj: + out.append(convert_blob_source_to_http_url(i)) + return out + if isinstance(obj, dict): + for key in obj: + if key in ['resourceFiles', 'commonResourceFiles']: + obj[key] = \ + [_convert_blob_source_to_http_url(resource_file) for resource_file in obj[key]] + obj[key] = convert_blob_source_to_http_url(obj[key]) + return obj + + +def _convert_blob_source_to_http_url(resource_file): + if 'blobSource' in resource_file: + if 'filePath' not in resource_file: + raise ValueError('Malformed ResourceFile: \'blobSource\' must ' + 'also have \'file_path\' attribute') + resource_file['httpUrl'] = resource_file.pop('blobSource', None) + logger.warning('BlobSource has been updated to HttpUrl to reflect new ' + 'functionality of accepting any http url instead of just' + ' storage blobs. Please update your templates to' + ' reflect this.') + return resource_file diff --git a/azext/batch/_vendor/v5/azext/batch/errors.py b/azext/batch/_vendor/v5/azext/batch/errors.py new file mode 100644 index 00000000..c3bb39ae --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/errors.py @@ -0,0 +1,25 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +from azure.batch.models import BatchErrorException + + +class MissingParameterValue(ValueError): + + def __init__(self, message, parameter_name=None, parameter_description=None): + self.parameter_name = parameter_name + self.parameter_description = parameter_description + super(MissingParameterValue, self).__init__(message) + + +class CreateTasksErrorException(BatchErrorException): + """ + :param str message: Error message describing exit reason + :param [~TaskAddResult] failures: List of tasks with detected client side errors. + :param [~TaskAddParameter] pending_task_list: List of tasks remaining to be submitted. + """ + def __init__(self, message, failures, pending_task_list): + self.message = message + self.failures = list(failures) + self.pending_tasks = list(pending_task_list) diff --git a/azext/batch/_vendor/v5/azext/batch/models/__init__.py b/azext/batch/_vendor/v5/azext/batch/models/__init__.py new file mode 100644 index 00000000..9f08fca0 --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/models/__init__.py @@ -0,0 +1,110 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=wildcard-import,unused-import,unused-wildcard-import + +# Not ideal syntax - but saves us having to check and repopulate this +# list every time the SDK is regenerated. +from azure.batch.models import * + +try: + from ._models_py3 import ExtendedTaskParameter + from ._models_py3 import ExtendedJobParameter + from ._models_py3 import ExtendedPoolParameter + from ._models_py3 import ExtendedPoolSpecification + from ._models_py3 import AutoPoolSpecification + from ._models_py3 import OutputFile + from ._models_py3 import ExtendedOutputFileDestination + from ._models_py3 import OutputFileAutoStorageDestination + from ._models_py3 import ExtendedResourceFile + from ._models_py3 import MultiInstanceSettings + from ._models_py3 import FileSource + from ._models_py3 import TaskFactoryBase + from ._models_py3 import TaskCollectionTaskFactory + from ._models_py3 import ParametricSweepTaskFactory + from ._models_py3 import FileCollectionTaskFactory + from ._models_py3 import ParameterSet + from ._models_py3 import RepeatTask + from ._models_py3 import PackageReferenceBase + from ._models_py3 import ChocolateyPackageReference + from ._models_py3 import YumPackageReference + from ._models_py3 import AptPackageReference + from ._models_py3 import ApplicationTemplateInfo + from ._models_py3 import MergeTask + from ._models_py3 import JobPreparationTask + from ._models_py3 import JobReleaseTask + from ._models_py3 import JobManagerTask + from ._models_py3 import StartTask + from ._models_py3 import ApplicationTemplate + from ._models_py3 import JobTemplate + from ._models_py3 import PoolTemplate +except (SyntaxError, ImportError): + from ._models import ExtendedTaskParameter + from ._models import ExtendedJobParameter + from ._models import ExtendedPoolParameter + from ._models import ExtendedPoolSpecification + from ._models import AutoPoolSpecification + from ._models import OutputFile + from ._models import ExtendedOutputFileDestination + from ._models import OutputFileAutoStorageDestination + from ._models import ExtendedResourceFile + from ._models import MultiInstanceSettings + from ._models import FileSource + from ._models import TaskFactoryBase + from ._models import TaskCollectionTaskFactory + from ._models import ParametricSweepTaskFactory + from ._models import FileCollectionTaskFactory + from ._models import ParameterSet + from ._models import RepeatTask + from ._models import PackageReferenceBase + from ._models import ChocolateyPackageReference + from ._models import YumPackageReference + from ._models import AptPackageReference + from ._models import ApplicationTemplateInfo + from ._models import MergeTask + from ._models import JobPreparationTask + from ._models import JobReleaseTask + from ._models import JobManagerTask + from ._models import StartTask + from ._models import ApplicationTemplate + from ._models import JobTemplate + from ._models import PoolTemplate + +from .constants import ( + PROPS_RESERVED_FOR_JOBS, + PROPS_PERMITTED_ON_TEMPLATES) + +__all__ = [ + 'ExtendedTaskParameter', + 'ExtendedJobParameter', + 'ExtendedPoolParameter', + 'ExtendedPoolSpecification', + 'AutoPoolSpecification', + 'OutputFile', + 'ExtendedOutputFileDestination', + 'OutputFileAutoStorageDestination', + 'ExtendedResourceFile', + 'MultiInstanceSettings', + 'FileSource', + 'TaskFactoryBase', + 'TaskCollectionTaskFactory', + 'ParametricSweepTaskFactory', + 'FileCollectionTaskFactory', + 'ParameterSet', + 'RepeatTask', + 'PackageReferenceBase', + 'ChocolateyPackageReference', + 'YumPackageReference', + 'AptPackageReference', + 'ApplicationTemplateInfo', + 'MergeTask', + 'JobPreparationTask', + 'JobReleaseTask', + 'JobManagerTask', + 'StartTask', + 'ApplicationTemplate', + 'JobTemplate', + 'PoolTemplate', +] diff --git a/azext/batch/_vendor/v5/azext/batch/models/_models.py b/azext/batch/_vendor/v5/azext/batch/models/_models.py new file mode 100644 index 00000000..b0336ed7 --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/models/_models.py @@ -0,0 +1,2114 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines + +import os +import azure.batch.models as models +from ....msrest.serialization import Model +from .constants import ATTRS_RESERVED_FOR_TEMPLATES + + +class TaskFactoryBase(Model): + """A Task Factory for automatically adding a collection of tasks to a job on + submission. + + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + _subtype_map = { + 'type': {'parametricSweep': 'ParametricSweepTaskFactory', + 'taskPerFile': 'FileCollectionTaskFactory', + 'taskCollection': 'TaskCollectionTaskFactory'} + } + + def __init__(self, **kwargs): + super(TaskFactoryBase, self).__init__(**kwargs) + self.merge_task = kwargs.get('merge_task', None) + self.type = None + + +class PackageReferenceBase(Model): + """A reference to a package to be installed on the compute nodes using + a package manager. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + _subtype_map = { + 'type': {'aptPackage': 'AptPackageReference', + 'chocolateyPackage': 'ChocolateyPackageReference', + 'yumPackage': 'YumPackageReference'} + } + + def __init__(self, **kwargs): + super(PackageReferenceBase, self).__init__(**kwargs) + self.type = None + self.id = kwargs.get('id') + self.version = kwargs.get('version', None) + + +class ApplicationTemplate(Model): + """An Azure Batch Application Template. + + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + """ + + _attribute_map = { + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + } + + def __init__(self, **kwargs): + super(ApplicationTemplate, self).__init__(**kwargs) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.metadata = kwargs.get('metadata', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.task_factory = kwargs.get('task_factory', None) + + +class ApplicationTemplateInfo(Model): + """A reference to an Azure Batch Application Template. + + :param str file_path: The path to an application template file. This can + be a full path, or relative to the current working directory. Alternatively + a relative directory can be supplied with the 'current_directory' argument. + A ValueError will be raised if the supplied file path cannot be found. + :param dict parameters: A dictory of parameter names and values to be + subtituted into the application template. + """ + + _validation = { + 'file_path': {'required': True}, + } + + _attribute_map = { + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'object'}, + } + + def __init__(self, **kwargs): + super(ApplicationTemplateInfo, self).__init__(**kwargs) + self.file_path = kwargs.get('file_path', None) + if not os.path.isfile(self.file_path): + current_directory = kwargs.get('current_directory', ".") + self.file_path = os.path.abspath(os.path.join(current_directory, str(self.file_path))) + self.parameters = kwargs.get('parameters', None) + + # Rule: Template file must exist + # (We do this in order to give a good diagnostic in the most common case, knowing that this is + # technically a race condition because someone could delete the file between our check here and + # reading the file later on. We expect such cases to be rare.) + try: + with open(self.file_path, 'r'): + pass + except EnvironmentError as error: + raise ValueError("Unable to read the template '{}': {}".format(self.file_path, error)) + + +class AptPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the APT package + manager on a Linux node (apt-get). + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AptPackageReference, self).__init__(**kwargs) + self.type = 'aptPackage' + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto pool when the job is submitted. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a pool is automatically created. The Batch service assigns each auto + pool a unique identifier on creation. To distinguish between pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: The minimum lifetime of created auto pools, + and how multiple jobs on a schedule are assigned to pools. When the pool + lifetime is jobSchedule the pool exists for the lifetime of the job + schedule. The Batch Service creates the pool when it creates the first job + on the schedule. You may apply this option only to job schedules, not to + jobs. When the pool lifetime is job the pool exists for the lifetime of + the job to which it is dedicated. The Batch service creates the pool when + it creates the job. If the 'job' option is applied to a job schedule, the + Batch service creates a new auto pool for every job created on the + schedule. Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or :class:`PoolLifetimeOption + ` + :param keep_alive: Whether to keep an auto pool alive after its lifetime + expires. If false, the Batch service deletes the pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the job or job schedule completes. If true, the Batch service does not + delete the pool automatically. It is up to the user to delete auto pools + created with this option. + :type keep_alive: bool + :param pool: The pool specification for the auto pool. + :type pool: :class:`PoolSpecification + ` + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'ExtendedPoolSpecification'}, + } + + def __init__(self, **kwargs): + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = kwargs.get('auto_pool_id_prefix', None) + self.pool_lifetime_option = kwargs.get('pool_lifetime_option', None) + self.keep_alive = kwargs.get('keep_alive', None) + self.pool = kwargs.get('pool', None) + + +class ChocolateyPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the Chocolatey package + manager on a Windows node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool allow_empty_checksums: Whether Chocolatey will install packages + without a checksum for validation. Default is false. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'allow_empty_checksums': {'key': 'allowEmptyChecksums', 'type': 'bool'} + } + + def __init__(self, **kwargs): + super(ChocolateyPackageReference, self).__init__(**kwargs) + self.allow_empty_checksums = kwargs.get('allow_empty_checksums', None) + self.type = 'chocolateyPackage' + + +class ExtendedJobParameter(models.JobAddParameter): + """An Azure Batch job to add. + + :param id: A string that uniquely identifies the job within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: :class:`JobConstraints + ` + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param pool_info: The pool on which the Batch service runs the job's + tasks. + :type pool_info: :class:`PoolInformation + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + :param application_template_info: A reference to an application template file to + be expanded to complete the job specification. If supplied, the following arugments + cannot also be supplied or they will be overwritten: 'job_manager_task', + 'common_environment_settings', 'uses_task_dependencies', 'on_all_tasks_complete', + 'on_task_failure', 'task_factory', 'job_preparation_task', 'job_release_task'. + :type application_template_info: :class:`ApplicationTemplateInfo + ` + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + 'application_template_info': {'key': 'applicationTemplateInfo', 'type': 'ApplicationTemplateInfo'} + } + + def __init__(self, **kwargs): + super(ExtendedJobParameter, self).__init__(**kwargs) + self.task_factory = kwargs.get('task_factory', None) + self.application_template_info = kwargs.get('application_template_info', None) + if self.application_template_info: + # Rule: Jobs may not use properties reserved for template use + reserved = [k for k, v in self.__dict__.items() \ + if k in ATTRS_RESERVED_FOR_TEMPLATES and v is not None] + if reserved: + raise ValueError("Jobs using application templates may not use these " + "properties: {}".format(', '.join(reserved))) + + +class ExtendedOutputFileDestination(Model): + """The specification for where output files should be uploaded to on task + completion. + + :param container: A location in Azure blob storage to which files are + uploaded. This cannot be combined with auto_storage. + :type container: :class:`OutputFileBlobContainerDestination + ` + :param auto_storage: An auto-storage file group reference. This cannot be + combined with container. + :type auto_storage: :class:`OutputFileAutoStorageDestination + ` + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + 'auto_storage': {'key': 'autoStorage', 'type': 'OutputFileAutoStorageDestination'}, + } + + def __init__(self, **kwargs): + super(ExtendedOutputFileDestination, self).__init__(**kwargs) + self.container = kwargs.get('container', None) + self.auto_storage = kwargs.get('auto_storage', None) + if self.container and self.auto_storage: + raise ValueError("Cannot specify both container and auto_storage.") + + +class ExtendedPoolParameter(models.PoolAddParameter): + """A pool in the Azure Batch service to add. + + :param id: A string that uniquely identifies the pool within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + pool IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale compute nodes in an Azure Batch pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task specified to run on each compute node as it + joins the pool. The task runs when the node is added to the pool or when + the node is restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(ExtendedPoolParameter, self).__init__(**kwargs) + self.package_references = kwargs.get('package_references', None) + + +class ExtendedPoolSpecification(models.PoolSpecification): + """Specification for creating a new pool. + + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of the virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property must be specified if the pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property must be specified if the pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, the targetDedicated element is required. If + true, the autoScaleFormula element is required. The pool automatically + resizes according to the formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(ExtendedPoolSpecification, self).__init__(**kwargs) + self.package_references = kwargs.get('package_references', None) + + +class ExtendedResourceFile(models.ResourceFile): + """A file to be downloaded from Azure blob storage to a compute node. + + :param http_url: The URL of the file within Azure Blob Storage. This + URL must be readable using anonymous access; that is, the Batch service + does not present any credentials when downloading the blob. There are two + ways to get such a URL for a blob in Azure storage: include a Shared + Access Signature (SAS) granting read permissions on the blob, or set the + ACL for the blob or its container to allow public access. + :type http_url: str + :param auto_storage_container_name: The storage container name in the auto + storage account. The autoStorageContainerName, storageContainerUrl and + httpUrl properties are mutually exclusive and one of them must be specified. + :type auto_storage_container_name: str + :param storage_container_url: The URL of the blob container within Azure + Blob Storage. The autoStorageContainerName, storageContainerUrl and httpUrl + properties are mutually exclusive and one of them must be specified. This + URL must be readable and listable using anonymous access; that is, the + Batch service does not present any credentials when downloading blobs from + the container. There are two ways to get such a URL for a container in + Azure storage: include a Shared Access Signature (SAS) granting read and + list permissions on the container, or set the ACL for the container to + allow public access. + :type storage_container_url: str + :param blob_prefix: The blob prefix to use when downloading blobs from an + Azure Storage container. Only the blobs whose names begin with the specified + prefix will be downloaded. The property is valid only when + autoStorageContainerName or storageContainerUrl is used. This prefix can be + a partial filename or a subdirectory. If a prefix is not specified, all the + files in the container will be downloaded. + :type blob_prefix: str + :param file_path: The location on the compute node to which to download + the file, relative to the task's working directory. If using a file group + source that references more than one file, this will be considered the name + of a directory, otherwise it will be treated as the destination file name. + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux compute nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows node. If this property is not specified for a + Linux node, then a default value of 0770 is applied to the file. + If using a file group source that references more than one file, this will be + applied to all files in the group. + :type file_mode: str + :param source: A file source reference which could include a collection of files from + a Azure Storage container or an auto-storage file group. + :type source: :class:`FileSource + ` + """ + + _attribute_map = { + 'http_url': {'key': 'httpUrl', 'type': 'str'}, + 'auto_storage_container_name': {'key': 'autoStorageContainerName', 'type': 'str'}, + 'blob_prefix': {'key': 'blobPrefix', 'type': 'str'}, + 'storage_container_url': {'key': 'storageContainerUrl', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'} + } + + def __init__(self, **kwargs): + super(ExtendedResourceFile, self).__init__(**kwargs) + self.source = kwargs.get('source', None) + + +class ExtendedTaskParameter(models.TaskAddParameter): + """An Azure Batch task to add. + + :param id: A string that uniquely identifies the task within the job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within a job that differ only by case). + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: :class:`MultiInstanceSettings + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(ExtendedTaskParameter, self).__init__(**kwargs) + self.package_references = kwargs.get('package_references', None) + + +class FileCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on the contents + of an Azure Storage container or auto-storage file group. One task + will be generated per input file, and automatically added to the job. + + :param source: The input file source from which the tasks will be generated. + :type source: :class:`FileSource ` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'source': {'required': True}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, **kwargs): + super(FileCollectionTaskFactory, self).__init__(**kwargs) + self.source = kwargs.get('source', None) + self.repeat_task = kwargs.get('repeat_task', None) + self.type = 'taskPerFile' + + +class FileSource(Model): + """A source of input files to be downloaded onto a compute node. + + :param str file_group: The name of an auto-storage file group. + :param str url: The URL of a file to be downloaded. + :param str container_url: The SAS URL of an Azure Storage container. + :param str prefix: The filename prefix or subdirectory of input files + in either an auto-storage file group or container. Will be ignored if + conbined with url. + """ + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'prefix': {'key': 'prefix', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(FileSource, self).__init__(**kwargs) + self.file_group = kwargs.get('file_group', None) + self.url = kwargs.get('url', None) + self.container_url = kwargs.get('container_url', None) + self.prefix = kwargs.get('prefix', None) + + +class JobManagerTask(Model): + """Specifies details of a Job Manager task. + + The Job Manager task is automatically started when the job is created. The + Batch service tries to schedule the Job Manager task before any other tasks + in the job. When shrinking a pool, the Batch service tries to preserve + compute nodes where Job Manager tasks are running for as long as possible + (that is, nodes running 'normal' tasks are removed before nodes running Job + Manager tasks). When a Job Manager task fails and needs to be restarted, + the system tries to schedule it at the highest priority. If there are no + idle nodes available, the system may terminate one of the running tasks in + the pool and return it to the queue in order to make room for the Job + Manager task to restart. Note that a Job Manager task in one job does not + have priority over tasks in other jobs. Across jobs, only job level + priorities are observed. For example, if a Job Manager in a priority 0 job + needs to be restarted, it will not displace tasks of a priority 1 job. + + :param id: A string that uniquely identifies the Job Manager task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. + :type id: str + :param display_name: The display name of the Job Manager task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: The command line of the Job Manager task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager task runs. If the pool that will run this task has + containerConfiguration set, this must be set as well. If the pool that + will run this task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all task environment variables are mapped + into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param environment_settings: A list of environment variable settings for + the Job Manager task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Manager task. + :type constraints: :class:`TaskConstraints + ` + :param kill_job_on_completion: Whether completion of the Job Manager task + signifies completion of the entire job. If true, when the Job Manager task + completes, the Batch service marks the job as complete. If any tasks are + still running at this time (other than Job Release), those tasks are + terminated. If false, the completion of the Job Manager task does not + affect the job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the job, or have a client or + user terminate the job explicitly. An example of this is if the Job + Manager creates a set of tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control job lifetime, + and using the Job Manager task only to create the tasks for the job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + :param run_exclusive: Whether the Job Manager task requires exclusive use + of the compute node where it runs. If true, no other tasks will run on the + same compute node for as long as the Job Manager is running. If false, + other tasks can run simultaneously with the Job Manager on a compute node. + The Job Manager task counts normally against the node's concurrent task + limit, so this is only relevant if the node allows multiple concurrent + tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param allow_low_priority_node: Whether the Job Manager task may run on a + low-priority compute node. The default value is false. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobManagerTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.kill_job_on_completion = kwargs.get('kill_job_on_completion', None) + self.user_identity = kwargs.get('user_identity', None) + self.run_exclusive = kwargs.get('run_exclusive', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.allow_low_priority_node = kwargs.get('allow_low_priority_node', None) + + +class JobPreparationTask(Model): + """A Job Preparation task to run before any tasks of the job on any given + compute node. + + You can use Job Preparation to prepare a compute node to run tasks for the + job. Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the tasks in the job. The Job Preparation + task can download these common resource files to the shared location on the + compute node. (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service + on the compute node so that all tasks of that job can communicate with it. + If the Job Preparation task fails (that is, exhausts its retry count before + exiting with exit code 0), Batch will not run tasks of this job on the + compute node. The node remains ineligible to run tasks of this job until it + is reimaged. The node remains active and can be used for other jobs. The + Job Preparation task can run multiple times on the same compute node. + Therefore, you should write the Job Preparation task to handle + re-execution. If the compute node is rebooted, the Job Preparation task is + run again on the node before scheduling any other task of the job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did + not previously complete. If the compute node is reimaged, the Job + Preparation task is run again before scheduling any task of the job. + + :param id: A string that uniquely identifies the Job Preparation task + within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other task in the job can + have the same ID as the Job Preparation task. If you try to submit a task + with the same ID, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Preparation task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all task + environment variables are mapped into the container, and the task command + line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Preparation task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Preparation task. + :type constraints: :class:`TaskConstraints + ` + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation task to complete successfully before scheduling any other + tasks of the job on the compute node. A Job Preparation task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + task fails on a compute node, the Batch service retries the Job + Preparation task up to its maximum retry count (as specified in the + constraints element). If the task has still not completed successfully + after all retries, then the Batch service will not schedule tasks of the + job to the compute node. The compute node remains active and eligible to + run tasks of other jobs. If false, the Batch service will not wait for the + Job Preparation task to complete. In this case, other tasks of the job can + start executing on the compute node while the Job Preparation task is + still running; and even if the Job Preparation task fails, new tasks will + continue to be scheduled on the node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + task runs. If omitted, the task runs as a non-administrative user unique + to the task on Windows nodes, or a a non-administrative user unique to the + pool on Linux nodes. + :type user_identity: :class:`UserIdentity + ` + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation task after a compute node reboots. The + Job Preparation task is always rerun if a compute node is reimaged, or if + the Job Preparation task did not complete (e.g. because the reboot + occurred while the task was running). Therefore, you should always write a + Job Preparation task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobPreparationTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.wait_for_success = kwargs.get('wait_for_success', None) + self.user_identity = kwargs.get('user_identity', None) + self.rerun_on_node_reboot_after_success = kwargs.get('rerun_on_node_reboot_after_success', None) + + +class JobReleaseTask(Model): + """A Job Release task to run on job completion on any compute node where the + job has run. + + The Job Release task runs when the job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the job is still active, the job's maximum wall clock time constraint + is reached, and the job is still active, or the job's Job Manager task + completed, and the job is configured to terminate when the Job Manager + completes. The Job Release task runs on each compute node where tasks of + the job have run and the Job Preparation task ran and completed. If you + reimage a compute node after it has run the Job Preparation task, and the + job ends without any further tasks of the job running on that compute node + (and hence the Job Preparation task does not re-run), then the Job Release + task does not run on that node. If a compute node reboots while the Job + Release task is still running, the Job Release task runs again when the + compute node starts up. The job is not marked as complete until all Job + Release tasks have completed. The Job Release task runs in the background. + It does not occupy a scheduling slot; that is, it does not count towards + the maxTasksPerNode limit specified on the pool. + + :param id: A string that uniquely identifies the Job Release task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other task in the job can have the + same ID as the Job Release task. If you try to submit a task with the same + ID, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Release task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all task environment variables + are mapped into the container, and the task command line is executed in + the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Release task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param max_wall_clock_time: The maximum elapsed time that the Job Release + task may run on a given compute node, measured from the time the task + starts. If the task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory for + the Job Release task on the compute node. After this time, the Batch + service may delete the task directory and all its contents. The default is + infinite, i.e. the task directory will be retained until the compute node + is removed or reimaged. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, **kwargs): + super(JobReleaseTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.retention_time = kwargs.get('retention_time', None) + self.user_identity = kwargs.get('user_identity', None) + + +class JobTemplate(Model): + """A Job Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/jobs" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the job. + :type properties: :class:`ExtendedJobParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedJobParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/jobs" + + def __init__(self, **kwargs): + super(JobTemplate, self).__init__(**kwargs) + self.properties = kwargs.get('properties') + self.api_version = kwargs.get('api_version', None) + + +class MergeTask(Model): + """An Azure Batch task template to repeat. + + :param str id: The ID of the merge task. + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'}, + } + + def __init__(self, **kwargs): + super(MergeTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line') + self.exit_conditions = kwargs.get('exit_conditions', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.depends_on = kwargs.get('depends_on', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.output_files = kwargs.get('output_files', None) + self.package_references = kwargs.get('package_references', None) + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance task. + + Multi-instance tasks are commonly used to support MPI tasks. + + :param number_of_instances: The number of compute nodes required by the + task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: The command line to run on all the + compute nodes to enable them to coordinate when the primary runs the main + task command. A typical coordination command line launches a background + service and verifies that the service is ready to process inter-node + messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the task working + directory, but instead are downloaded to the task root directory (one + directory above the working directory). + :type common_resource_files: list of :class:`ExtendedResourceFile + ` + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ExtendedResourceFile]'}, + } + + def __init__(self, **kwargs): + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = kwargs.get('number_of_instances') + self.coordination_command_line = kwargs.get('coordination_command_line', None) + self.common_resource_files = kwargs.get('common_resource_files', None) + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch node to another + location after the Batch service has finished executing the task process. + + :param file_pattern: A pattern indicating which file(s) to upload. Both + relative and absolute paths are supported. Relative paths are relative to + the task working directory. The following wildcards are supported: * + matches 0 or more characters (for example pattern abc* would match abc or + abcdef), ** matches any directory, ? matches any single character, [abc] + matches one character in the brackets, and [a-c] matches one character in + the range. Brackets can include a negation to match any character not + specified (for example [!abc] matches any character but a, b, or c). If a + file name starts with "." it is ignored by default but may be matched by + specifying it explicitly (for example *.gif will not match .a.gif, but + .*.gif will). A simple example: **\\*.txt matches any file that does not + start in '.' and ends with .txt in the task working directory or any + subdirectory. If the filename contains a wildcard character it can be + escaped using brackets (for example abc[*] would match a file named abc*). + Note that both \\ and / are treated as directory separators on Windows, + but only / is on Linux. Environment variables (%var% on Windows or $var on + Linux) are expanded prior to the pattern being applied. + :type file_pattern: str + :param destination: The destination for the output file(s). + :type destination: :class:`ExtendedOutputFileDestination + ` + :param upload_options: Additional options for the upload operation, + including under what conditions to perform the upload. + :type upload_options: :class:`OutputFileUploadOptions + ` + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'ExtendedOutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, **kwargs): + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = kwargs.get('file_pattern') + self.destination = kwargs.get('destination') + self.upload_options = kwargs.get('upload_options') + + +class OutputFileAutoStorageDestination(Model): + """An speficition of output files upload destination that uses an + auto-storage file group. + + :param str file_group: The name of the file group that the output files will + be uploaded to. + :param str path: The destination path within the file group that the files will + be uploaded to. Is the output file specification refers to a single file, this will + be treated as a file name. If the output file specification refers to potentially + multiple files, this will be treated as a subfolder. + """ + + _validation = { + 'file_group': {'required': True} + } + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(OutputFileAutoStorageDestination, self).__init__(**kwargs) + self.file_group = kwargs.get('file_group') + self.path = kwargs.get('path', None) + + +class ParameterSet(Model): + """A set of parametric sweep range range parameters. + + :param int start: The starting value of the sweep. + :param int end: The ending value of the sweep (inclusive). + :param int step: The incremental step value, default is 1. The step value + can be negative (i.e. a decending sweep), but only id the start value is + a higher value than the end. + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'step': {'key': 'step', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ParameterSet, self).__init__(**kwargs) + try: + self.start = int(kwargs.get('start')) + self.end = int(kwargs.get('end')) + self.step = int(kwargs.get('step', 1)) + except (TypeError, ValueError): + raise ValueError("'start', 'end' and 'step' parameters must be integers.") + if self.step == 0: + raise ValueError("'step' parameter cannot be 0.") + elif self.start > self.end and self.step > 0: + raise ValueError( + "'step' must be a negative number when 'start' is greater than 'end'") + elif self.start < self.end and self.step < 0: + raise ValueError( + "'step' must be a positive number when 'end' is greater than 'start'") + + +class ParametricSweepTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on one or more parameter + sets to define a numeric input range. Each parameter set will have a start, end + and step value. A task will be generated for each integer in this range. Multiple + parameter sets can be combined for a multi-dimensional sweep. + + :param parameter_sets: A list if parameter sets from which tasks will be generated. + :type parameter_sets: A list of :class:`ParameterSet` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'parameter_sets': {'required': True, 'min_items': 1}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'parameter_sets': {'key': 'parameterSets', 'type': '[ParameterSet]'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, **kwargs): + super(ParametricSweepTaskFactory, self).__init__(**kwargs) + self.parameter_sets = kwargs.get('parameter_sets', None) + self.repeat_task = kwargs.get('repeat_task', None) + self.type = 'parametricSweep' + if not self.parameter_sets: + raise ValueError("Parametric Sweep task factory requires at least one parameter set.") + + +class PoolTemplate(Model): + """A Pool Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/pools" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the pool. + :type properties: :class:`ExtendedPoolParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedPoolParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/pools" + + def __init__(self, **kwargs): + super(PoolTemplate, self).__init__(**kwargs) + self.properties = kwargs.get('properties') + self.api_version = kwargs.get('api_version', None) + + +class RepeatTask(Model): + """An Azure Batch task template to repeat. + + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, **kwargs): + super(RepeatTask, self).__init__(**kwargs) + self.display_name = kwargs.get('display_name') + self.command_line = kwargs.get('command_line', None) + self.exit_conditions = kwargs.get('exit_conditions', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.output_files = kwargs.get('output_files', None) + self.package_references = kwargs.get('package_references', None) + + +class StartTask(Model): + """A task which is run when a compute node joins a pool in the Azure Batch + service, or when the compute node is rebooted or reimaged. + + :param command_line: The command line of the start task. The command line + does not run under a shell, and therefore cannot take advantage of shell + features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + start task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all task environment variables are + mapped into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the start task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param user_identity: The user identity under which the start task runs. + If omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the task. If the maximum retry count is + -1, the Batch service retries the task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start task to complete successfully (that is, to exit with exit code 0) + before scheduling any tasks on the compute node. If true and the start + task fails on a compute node, the Batch service retries the start task up + to its maximum retry count (maxTaskRetryCount). If the task has still not + completed successfully after all retries, then the Batch service marks the + compute node unusable, and will not schedule tasks to it. This condition + can be detected via the node state and failure info details. If false, the + Batch service will not wait for the start task to complete. In this case, + other tasks can start executing on the compute node while the start task + is still running; and even if the start task fails, new tasks will + continue to be scheduled on the node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(StartTask, self).__init__(**kwargs) + self.command_line = kwargs.get('command_line') + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.user_identity = kwargs.get('user_identity', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) + self.wait_for_success = kwargs.get('wait_for_success', None) + + +class TaskCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for adding a predefined collection of tasks automatically + to a job on submission. + + :param tasks: A list if task parameters, each of which will be added straight to the job. + :type tasks: A list of :class:`ExtendedTaskParameter + ` + """ + + _validation = { + 'type': {'required': True}, + 'tasks': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'tasks': {'key': 'tasks', 'type': '[ExtendedTaskParameter]'}, + } + + def __init__(self, **kwargs): + super(TaskCollectionTaskFactory, self).__init__(**kwargs) + self.tasks = kwargs.get('tasks') + self.type = 'taskCollection' + + +class YumPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the YUM package + manager on a Linux node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool disable_excludes: Whether to allow packages that might otherwise + be excluded by VM configuration (e.g. kernel packages). Default is False. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'disable_excludes': {'key': 'disableExcludes', 'type': 'bool'} + } + + def __init__(self, **kwargs): + super(YumPackageReference, self).__init__(**kwargs) + self.id = kwargs.get('id') + self.version = kwargs.get('version', None) + self.disable = kwargs.get('disable', None) diff --git a/azext/batch/_vendor/v5/azext/batch/models/_models_py3.py b/azext/batch/_vendor/v5/azext/batch/models/_models_py3.py new file mode 100644 index 00000000..3a0910d2 --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/models/_models_py3.py @@ -0,0 +1,2245 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines + +import os +import azure.batch.models as models +from ....msrest.serialization import Model +from .constants import ATTRS_RESERVED_FOR_TEMPLATES + + +class TaskFactoryBase(Model): + """A Task Factory for automatically adding a collection of tasks to a job on + submission. + + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + _subtype_map = { + 'type': {'parametricSweep': 'ParametricSweepTaskFactory', + 'taskPerFile': 'FileCollectionTaskFactory', + 'taskCollection': 'TaskCollectionTaskFactory'} + } + + def __init__(self, *, merge_task=None, **kwargs) -> None: + super(TaskFactoryBase, self).__init__(**kwargs) + self.merge_task = merge_task + self.type = None + + +class PackageReferenceBase(Model): + """A reference to a package to be installed on the compute nodes using + a package manager. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + _subtype_map = { + 'type': {'aptPackage': 'AptPackageReference', + 'chocolateyPackage': 'ChocolateyPackageReference', + 'yumPackage': 'YumPackageReference'} + } + + def __init__(self, *, id: str, version: str=None, **kwargs) -> None: + super(PackageReferenceBase, self).__init__(**kwargs) + self.type = None + self.id = id + self.version = version + + +class ApplicationTemplateInfo(Model): + """A reference to an Azure Batch Application Template. + + :param str file_path: The path to an application template file. This can + be a full path, or relative to the current working directory. Alternatively + a relative directory can be supplied with the 'current_directory' argument. + A ValueError will be raised if the supplied file path cannot be found. + :param dict parameters: A dictory of parameter names and values to be + subtituted into the application template. + """ + + _validation = { + 'file_path': {'required': True}, + } + + _attribute_map = { + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'object'}, + } + + def __init__(self, *, file_path: str, parameters: object=None, current_directory: str=".", **kwargs) -> None: + super(ApplicationTemplateInfo, self).__init__(**kwargs) + self.file_path = file_path + if not os.path.isfile(self.file_path): + current_directory = current_directory + self.file_path = os.path.abspath(os.path.join(current_directory, str(self.file_path))) + self.parameters = parameters + + # Rule: Template file must exist + # (We do this in order to give a good diagnostic in the most common case, knowing that this is + # technically a race condition because someone could delete the file between our check here and + # reading the file later on. We expect such cases to be rare.) + try: + with open(self.file_path, 'r'): + pass + except EnvironmentError as error: + raise ValueError("Unable to read the template '{}': {}".format(self.file_path, error)) + + +class ApplicationTemplate(Model): + """An Azure Batch Application Template. + + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + """ + + _attribute_map = { + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + } + + def __init__(self, *, job_manager_task=None, job_preparation_task=None, job_release_task=None, + common_environment_settings=None, on_all_tasks_complete=None, on_task_failure=None, + metadata=None, uses_task_dependencies: bool=None, task_factory=None, **kwargs) -> None: + super(ApplicationTemplate, self).__init__(**kwargs) + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.metadata = metadata + self.uses_task_dependencies = uses_task_dependencies + self.task_factory = task_factory + + +class AptPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the APT package + manager on a Linux node (apt-get). + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, *, id: str, version: str=None, **kwargs) -> None: + super(AptPackageReference, self).__init__(id=id, version=version, **kwargs) + self.type = 'aptPackage' + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto pool when the job is submitted. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a pool is automatically created. The Batch service assigns each auto + pool a unique identifier on creation. To distinguish between pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: The minimum lifetime of created auto pools, + and how multiple jobs on a schedule are assigned to pools. When the pool + lifetime is jobSchedule the pool exists for the lifetime of the job + schedule. The Batch Service creates the pool when it creates the first job + on the schedule. You may apply this option only to job schedules, not to + jobs. When the pool lifetime is job the pool exists for the lifetime of + the job to which it is dedicated. The Batch service creates the pool when + it creates the job. If the 'job' option is applied to a job schedule, the + Batch service creates a new auto pool for every job created on the + schedule. Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or :class:`PoolLifetimeOption + ` + :param keep_alive: Whether to keep an auto pool alive after its lifetime + expires. If false, the Batch service deletes the pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the job or job schedule completes. If true, the Batch service does not + delete the pool automatically. It is up to the user to delete auto pools + created with this option. + :type keep_alive: bool + :param pool: The pool specification for the auto pool. + :type pool: :class:`PoolSpecification + ` + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'ExtendedPoolSpecification'}, + } + + def __init__(self, *, pool_lifetime_option, auto_pool_id_prefix: str=None, + keep_alive: bool=None, pool=None, **kwargs) -> None: + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = auto_pool_id_prefix + self.pool_lifetime_option = pool_lifetime_option + self.keep_alive = keep_alive + self.pool = pool + + +class ChocolateyPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the Chocolatey package + manager on a Windows node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool allow_empty_checksums: Whether Chocolatey will install packages + without a checksum for validation. Default is false. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'allow_empty_checksums': {'key': 'allowEmptyChecksums', 'type': 'bool'} + } + + def __init__(self, *, id: str, version: str=None, allow_empty_checksums: bool=None, **kwargs) -> None: + super(ChocolateyPackageReference, self).__init__(id=id, version=version, **kwargs) + self.allow_empty_checksums = allow_empty_checksums + self.type = 'chocolateyPackage' + + +class ExtendedJobParameter(models.JobAddParameter): + """An Azure Batch job to add. + + :param id: A string that uniquely identifies the job within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the job. + :type constraints: :class:`JobConstraints + ` + :param job_manager_task: Details of a Job Manager task to be launched when + the job is started. If the job does not specify a Job Manager task, the + user must explicitly add tasks to the job. If the job does specify a Job + Manager task, the Batch service creates the Job Manager task when the job + is created, and will try to schedule the Job Manager task before + scheduling other tasks in the job. The Job Manager task's typical purpose + is to control and/or monitor job execution, for example by deciding what + additional tasks to run, determining when the work is complete, etc. + (However, a Job Manager task is not restricted to these activities - it is + a fully-fledged task in the system and perform whatever actions are + required for the job.) For example, a Job Manager task might download a + file specified as a parameter, analyze the contents of that file and + submit additional tasks based on those contents. + :type job_manager_task: :class:`JobManagerTask + ` + :param job_preparation_task: The Job Preparation task. If a job has a Job + Preparation task, the Batch service will run the Job Preparation task on a + compute node before starting any tasks of that job on that compute node. + :type job_preparation_task: :class:`JobPreparationTask + ` + :param job_release_task: The Job Release task. A Job Release task cannot + be specified without also specifying a Job Preparation task for the job. + The Batch service runs the Job Release task on the compute nodes that have + run the Job Preparation task. The primary purpose of the Job Release task + is to undo changes to compute nodes made by the Job Preparation task. + Example activities include deleting local files, or shutting down services + that were started as part of job preparation. + :type job_release_task: :class:`JobReleaseTask + ` + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all tasks in + the job (including the Job Manager, Job Preparation and Job Release + tasks). Individual tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: list of :class:`EnvironmentSetting + ` + :param pool_info: The pool on which the Batch service runs the job's + tasks. + :type pool_info: :class:`PoolInformation + ` + :param on_all_tasks_complete: The action the Batch service should take + when all tasks in the job are in the completed state. Note that if a job + contains no tasks, then all tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic job termination without a Job Manager, you should initially set + onAllTasksComplete to noAction and update the job properties to set + onAllTasksComplete to terminateJob once you have finished adding tasks. + Permitted values are: noAction - do nothing. The job remains active unless + terminated or disabled by some other means. terminateJob - terminate the + job. The job's terminateReason is set to 'AllTasksComplete'. The default + is noAction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or :class:`OnAllTasksComplete + ` + :param on_task_failure: The action the Batch service should take when any + task in the job fails. A task is considered to have failed if has a + failureInfo. A failureInfo is set if the task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the task, for example due to a resource file download error. + noAction - do nothing. performExitOptionsJobAction - take the action + associated with the task exit condition in the task's exitConditions + collection. (This may still result in no action being taken, if that is + what the task specifies.) The default is noAction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or :class:`OnTaskFailure + ` + :param metadata: A list of name-value pairs associated with the job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param uses_task_dependencies: Whether tasks in the job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param task_factory: A task factory reference to automatically generate a set of + tasks to be added to the job. + :type task_factory: :class:`TaskFactoryBase + ` + :param application_template_info: A reference to an application template file to + be expanded to complete the job specification. If supplied, the following arugments + cannot also be supplied or they will be overwritten: 'job_manager_task', + 'common_environment_settings', 'uses_task_dependencies', 'on_all_tasks_complete', + 'on_task_failure', 'task_factory', 'job_preparation_task', 'job_release_task'. + :type application_template_info: :class:`ApplicationTemplateInfo + ` + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'task_factory': {'key': 'taskFactory', 'type': 'TaskFactoryBase'}, + 'application_template_info': {'key': 'applicationTemplateInfo', 'type': 'ApplicationTemplateInfo'} + } + + def __init__(self, *, id: str, pool_info, display_name: str=None, priority: int=None, constraints=None, + job_manager_task=None, job_preparation_task=None, job_release_task=None, + common_environment_settings=None, on_all_tasks_complete=None, on_task_failure=None, + metadata=None, uses_task_dependencies: bool=None, task_factory=None, + application_template_info=None, **kwargs) -> None: + super(ExtendedJobParameter, self).__init__( + id=id, + display_name=display_name, + priority=priority, + constraints=constraints, + job_manager_task=job_manager_task, + job_preparation_task=job_preparation_task, + job_release_task=job_release_task, + common_environment_settings=common_environment_settings, + pool_info=pool_info, + on_all_tasks_complete=on_all_tasks_complete, + on_task_failure=on_task_failure, + metadata=metadata, + uses_task_dependencies=uses_task_dependencies, + **kwargs) + self.task_factory = task_factory + self.application_template_info = application_template_info + + if self.application_template_info: + # Rule: Jobs may not use properties reserved for template use + reserved = [k for k, v in self.__dict__.items() \ + if k in ATTRS_RESERVED_FOR_TEMPLATES and v is not None] + if reserved: + raise ValueError("Jobs using application templates may not use these " + "properties: {}".format(', '.join(reserved))) + + +class ExtendedOutputFileDestination(Model): + """The specification for where output files should be uploaded to on task + completion. + + :param container: A location in Azure blob storage to which files are + uploaded. This cannot be combined with auto_storage. + :type container: :class:`OutputFileBlobContainerDestination + ` + :param auto_storage: An auto-storage file group reference. This cannot be + combined with container. + :type auto_storage: :class:`OutputFileAutoStorageDestination + ` + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + 'auto_storage': {'key': 'autoStorage', 'type': 'OutputFileAutoStorageDestination'}, + } + + def __init__(self, *, container=None, auto_storage=None, **kwargs) -> None: + super(ExtendedOutputFileDestination, self).__init__(**kwargs) + if container and auto_storage: + raise ValueError("Cannot specify both container and auto_storage.") + self.container = container + self.auto_storage = auto_storage + + +class ExtendedPoolParameter(models.PoolAddParameter): + """A pool in the Azure Batch service to add. + + :param id: A string that uniquely identifies the pool within the account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + pool IDs within an account that differ only by case). + :type id: str + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale compute nodes in an Azure Batch pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task specified to run on each compute node as it + joins the pool. The task runs when the node is added to the pool or when + the node is restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: The list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, id: str, vm_size: str, display_name: str=None, cloud_service_configuration=None, + virtual_machine_configuration=None, resize_timeout=None, target_dedicated_nodes: int=None, + target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, + auto_scale_evaluation_interval=None, enable_inter_node_communication: bool=None, + network_configuration=None, start_task=None, certificate_references=None, + application_package_references=None, application_licenses=None, max_tasks_per_node: int=None, + task_scheduling_policy=None, user_accounts=None, metadata=None, package_references=None, + **kwargs) -> None: + super(ExtendedPoolParameter, self).__init__( + id=id, + display_name=display_name, + vm_size=vm_size, + cloud_service_configuration=cloud_service_configuration, + virtual_machine_configuration=virtual_machine_configuration, + resize_timeout=resize_timeout, + target_dedicated_nodes=target_dedicated_nodes, + target_low_priority_nodes=target_low_priority_nodes, + enable_auto_scale=enable_auto_scale, + auto_scale_formula=auto_scale_formula, + auto_scale_evaluation_interval=auto_scale_evaluation_interval, + enable_inter_node_communication=enable_inter_node_communication, + network_configuration=network_configuration, + start_task=start_task, + certificate_references=certificate_references, + application_package_references=application_package_references, + application_licenses=application_licenses, + max_tasks_per_node=max_tasks_per_node, + task_scheduling_policy=task_scheduling_policy, + user_accounts=user_accounts, + metadata=metadata, + **kwargs) + self.package_references = package_references + + +class ExtendedPoolSpecification(models.PoolSpecification): + """Specification for creating a new pool. + + :param display_name: The display name for the pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: The size of the virtual machines in the pool. All virtual + machines in a pool are the same size. For information about available + sizes of virtual machines for Cloud Services pools (pools created with + cloudServiceConfiguration), see Sizes for Cloud Services + (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for pools using images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the pool. This property must be specified if the pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: :class:`CloudServiceConfiguration + ` + :param virtual_machine_configuration: The virtual machine configuration + for the pool. This property must be specified if the pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: :class:`VirtualMachineConfiguration + ` + :param max_tasks_per_node: The maximum number of tasks that can run + concurrently on a single compute node in the pool. The default value is 1. + The maximum value of this setting depends on the size of the compute nodes + in the pool (the vmSize setting). + :type max_tasks_per_node: int + :param task_scheduling_policy: How tasks are distributed across compute + nodes in a pool. + :type task_scheduling_policy: :class:`TaskSchedulingPolicy + ` + :param resize_timeout: The timeout for allocation of compute nodes to the + pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + compute nodes in the pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the pool size should automatically + adjust over time. If false, the targetDedicated element is required. If + true, the autoScaleFormula element is required. The pool automatically + resizes according to the formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of compute + nodes in the pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the pool permits direct + communication between nodes. Enabling inter-node communication limits the + maximum size of the pool due to deployment restrictions on the nodes of + the pool. This may result in the pool not reaching its desired size. The + default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the pool. + :type network_configuration: :class:`NetworkConfiguration + ` + :param start_task: A task to run on each compute node as it joins the + pool. The task runs when the node is added to the pool or when the node is + restarted. + :type start_task: :class:`StartTask ` + :param certificate_references: A list of certificates to be installed on + each compute node in the pool. For Windows compute nodes, the Batch + service installs the certificates to the specified certificate store and + location. For Linux compute nodes, the certificates are stored in a + directory inside the task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this + location. For certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and certificates are placed in that directory. + :type certificate_references: list of :class:`CertificateReference + ` + :param application_package_references: The list of application packages to + be installed on each compute node in the pool. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param application_licenses: The list of application licenses the Batch + service will make available on each compute node in the pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + pool creation will fail. + :type application_licenses: list of str + :param user_accounts: The list of user accounts to be created on each node + in the pool. + :type user_accounts: list of :class:`UserAccount + ` + :param metadata: A list of name-value pairs associated with the pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list of :class:`MetadataItem + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', + 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', + 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, vm_size: str, display_name: str=None, cloud_service_configuration=None, + virtual_machine_configuration=None, max_tasks_per_node: int=None, task_scheduling_policy=None, + resize_timeout=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, + enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, + enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, + certificate_references=None, application_package_references=None, application_licenses=None, + user_accounts=None, metadata=None, package_references=None, **kwargs) -> None: + super(ExtendedPoolSpecification, self).__init__( + display_name=display_name, + vm_size=vm_size, + cloud_service_configuration=cloud_service_configuration, + virtual_machine_configuration=virtual_machine_configuration, + max_tasks_per_node=max_tasks_per_node, + task_scheduling_policy=task_scheduling_policy, + resize_timeout=resize_timeout, + target_dedicated_nodes=target_dedicated_nodes, + target_low_priority_nodes=target_low_priority_nodes, + enable_auto_scale=enable_auto_scale, + auto_scale_formula=auto_scale_formula, + auto_scale_evaluation_interval=auto_scale_evaluation_interval, + enable_inter_node_communication=enable_inter_node_communication, + network_configuration=network_configuration, + start_task=start_task, + certificate_references=certificate_references, + application_package_references=application_package_references, + application_licenses=application_licenses, + user_accounts=user_accounts, + metadata=metadata, + **kwargs) + self.package_references = package_references + + +class ExtendedResourceFile(models.ResourceFile): + """A file to be downloaded from Azure blob storage to a compute node. + + :param http_url: The URL of the file within Azure Blob Storage. This + URL must be readable using anonymous access; that is, the Batch service + does not present any credentials when downloading the blob. There are two + ways to get such a URL for a blob in Azure storage: include a Shared + Access Signature (SAS) granting read permissions on the blob, or set the + ACL for the blob or its container to allow public access. + :type http_url: str + :param auto_storage_container_name: The storage container name in the auto + storage account. The autoStorageContainerName, storageContainerUrl and + httpUrl properties are mutually exclusive and one of them must be specified. + :type auto_storage_container_name: str + :param storage_container_url: The URL of the blob container within Azure + Blob Storage. The autoStorageContainerName, storageContainerUrl and httpUrl + properties are mutually exclusive and one of them must be specified. This + URL must be readable and listable using anonymous access; that is, the + Batch service does not present any credentials when downloading blobs from + the container. There are two ways to get such a URL for a container in + Azure storage: include a Shared Access Signature (SAS) granting read and + list permissions on the container, or set the ACL for the container to + allow public access. + :type storage_container_url: str + :param blob_prefix: The blob prefix to use when downloading blobs from an + Azure Storage container. Only the blobs whose names begin with the specified + prefix will be downloaded. The property is valid only when + autoStorageContainerName or storageContainerUrl is used. This prefix can be + a partial filename or a subdirectory. If a prefix is not specified, all the + files in the container will be downloaded. + :type blob_prefix: str + :param file_path: The location on the compute node to which to download + the file, relative to the task's working directory. If using a file group + source that references more than one file, this will be considered the name + of a directory, otherwise it will be treated as the destination file name. + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux compute nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows node. If this property is not specified for a + Linux node, then a default value of 0770 is applied to the file. + If using a file group source that references more than one file, this will be + applied to all files in the group. + :type file_mode: str + :param source: A file source reference which could include a collection of files from + a Azure Storage container or an auto-storage file group. + :type source: :class:`FileSource + ` + """ + + _attribute_map = { + 'http_url': {'key': 'httpUrl', 'type': 'str'}, + 'auto_storage_container_name': {'key': 'autoStorageContainerName', 'type': 'str'}, + 'blob_prefix': {'key': 'blobPrefix', 'type': 'str'}, + 'storage_container_url': {'key': 'storageContainerUrl', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'} + } + + def __init__(self, + *, + http_url: str=None, + auto_storage_container_name: str=None, + storage_container_url: str=None, + blob_prefix: str=None, + file_path: str=None, + file_mode: str=None, + source=None, **kwargs) -> None: + super(ExtendedResourceFile, self).__init__( + http_url=http_url, + auto_storage_container_name=auto_storage_container_name, + storage_container_url=storage_container_url, + blob_prefix=blob_prefix, + file_path=file_path, + file_mode=file_mode, + **kwargs) + self.source = source + + +class ExtendedTaskParameter(models.TaskAddParameter): + """An Azure Batch task to add. + + :param id: A string that uniquely identifies the task within the job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within a job that differ only by case). + :type id: str + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param multi_instance_settings: An object that indicates that the task is + a multi-instance task, and contains information about how to run the + multi-instance task. + :type multi_instance_settings: :class:`MultiInstanceSettings + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, + exit_conditions=None, resource_files=None, output_files=None, environment_settings=None, + affinity_info=None, constraints=None, user_identity=None, + multi_instance_settings=None, depends_on=None, + application_package_references=None, authentication_token_settings=None, + package_references=None, **kwargs) -> None: + super(ExtendedTaskParameter, self).__init__( + id=id, + display_name=display_name, + command_line=command_line, + container_settings=container_settings, + exit_conditions=exit_conditions, + resource_files=resource_files, + output_files=output_files, + environment_settings=environment_settings, + affinity_info=affinity_info, + constraints=constraints, + user_identity=user_identity, + multi_instance_settings=multi_instance_settings, + depends_on=depends_on, + application_package_references=application_package_references, + authentication_token_settings=authentication_token_settings, + **kwargs) + self.package_references = package_references + + +class FileCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on the contents + of an Azure Storage container or auto-storage file group. One task + will be generated per input file, and automatically added to the job. + + :param source: The input file source from which the tasks will be generated. + :type source: :class:`FileSource ` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'source': {'required': True}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'source': {'key': 'source', 'type': 'FileSource'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, *, source: str, repeat_task, merge_task=None, **kwargs) -> None: + super(FileCollectionTaskFactory, self).__init__( + merge_task=merge_task, **kwargs) + self.source = source + self.repeat_task = repeat_task + self.type = 'taskPerFile' + + +class FileSource(Model): + """A source of input files to be downloaded onto a compute node. + + :param str file_group: The name of an auto-storage file group. + :param str url: The URL of a file to be downloaded. + :param str container_url: The SAS URL of an Azure Storage container. + :param str prefix: The filename prefix or subdirectory of input files + in either an auto-storage file group or container. Will be ignored if + conbined with url. + """ + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'prefix': {'key': 'prefix', 'type': 'str'}, + } + + def __init__(self, *, file_group: str=None, url: str=None, + container_url: str=None, prefix: str=None, **kwargs) -> None: + super(FileSource, self).__init__(**kwargs) + self.file_group = file_group + self.url = url + self.container_url = container_url + self.prefix = prefix + + +class JobManagerTask(Model): + """Specifies details of a Job Manager task. + + The Job Manager task is automatically started when the job is created. The + Batch service tries to schedule the Job Manager task before any other tasks + in the job. When shrinking a pool, the Batch service tries to preserve + compute nodes where Job Manager tasks are running for as long as possible + (that is, nodes running 'normal' tasks are removed before nodes running Job + Manager tasks). When a Job Manager task fails and needs to be restarted, + the system tries to schedule it at the highest priority. If there are no + idle nodes available, the system may terminate one of the running tasks in + the pool and return it to the queue in order to make room for the Job + Manager task to restart. Note that a Job Manager task in one job does not + have priority over tasks in other jobs. Across jobs, only job level + priorities are observed. For example, if a Job Manager in a priority 0 job + needs to be restarted, it will not displace tasks of a priority 1 job. + + :param id: A string that uniquely identifies the Job Manager task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. + :type id: str + :param display_name: The display name of the Job Manager task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: The command line of the Job Manager task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager task runs. If the pool that will run this task has + containerConfiguration set, this must be set as well. If the pool that + will run this task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all task environment variables are mapped + into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param output_files: A list of files that the Batch service will upload + from the compute node after running the command line. For multi-instance + tasks, the files will only be uploaded from the compute node on which the + primary task is executed. + :type output_files: list of :class:`OutputFile + ` + :param environment_settings: A list of environment variable settings for + the Job Manager task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Manager task. + :type constraints: :class:`TaskConstraints + ` + :param kill_job_on_completion: Whether completion of the Job Manager task + signifies completion of the entire job. If true, when the Job Manager task + completes, the Batch service marks the job as complete. If any tasks are + still running at this time (other than Job Release), those tasks are + terminated. If false, the completion of the Job Manager task does not + affect the job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the job, or have a client or + user terminate the job explicitly. An example of this is if the Job + Manager creates a set of tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control job lifetime, + and using the Job Manager task only to create the tasks for the job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + :param run_exclusive: Whether the Job Manager task requires exclusive use + of the compute node where it runs. If true, no other tasks will run on the + same compute node for as long as the Job Manager is running. If false, + other tasks can run simultaneously with the Job Manager on a compute node. + The Job Manager task counts normally against the node's concurrent task + limit, so this is only relevant if the node allows multiple concurrent + tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. Application packages are downloaded and deployed to a shared + directory, not the task working directory. Therefore, if a referenced + package is already on the compute node, and is up to date, then it is not + re-downloaded; the existing copy on the compute node is used. If a + referenced application package cannot be installed, for example because + the package has been deleted or because download failed, the task fails. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param allow_low_priority_node: Whether the Job Manager task may run on a + low-priority compute node. The default value is false. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, + resource_files=None, output_files=None, environment_settings=None, constraints=None, + kill_job_on_completion: bool=None, user_identity=None, run_exclusive: bool=None, + application_package_references=None, authentication_token_settings=None, + allow_low_priority_node: bool=None, **kwargs) -> None: + super(JobManagerTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.constraints = constraints + self.kill_job_on_completion = kill_job_on_completion + self.user_identity = user_identity + self.run_exclusive = run_exclusive + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.allow_low_priority_node = allow_low_priority_node + + +class JobPreparationTask(Model): + """A Job Preparation task to run before any tasks of the job on any given + compute node. + + You can use Job Preparation to prepare a compute node to run tasks for the + job. Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the tasks in the job. The Job Preparation + task can download these common resource files to the shared location on the + compute node. (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service + on the compute node so that all tasks of that job can communicate with it. + If the Job Preparation task fails (that is, exhausts its retry count before + exiting with exit code 0), Batch will not run tasks of this job on the + compute node. The node remains ineligible to run tasks of this job until it + is reimaged. The node remains active and can be used for other jobs. The + Job Preparation task can run multiple times on the same compute node. + Therefore, you should write the Job Preparation task to handle + re-execution. If the compute node is rebooted, the Job Preparation task is + run again on the node before scheduling any other task of the job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did + not previously complete. If the compute node is reimaged, the Job + Preparation task is run again before scheduling any task of the job. + + :param id: A string that uniquely identifies the Job Preparation task + within the job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other task in the job can + have the same ID as the Job Preparation task. If you try to submit a task + with the same ID, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Preparation task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all task + environment variables are mapped into the container, and the task command + line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Preparation task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param constraints: Constraints that apply to the Job Preparation task. + :type constraints: :class:`TaskConstraints + ` + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation task to complete successfully before scheduling any other + tasks of the job on the compute node. A Job Preparation task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + task fails on a compute node, the Batch service retries the Job + Preparation task up to its maximum retry count (as specified in the + constraints element). If the task has still not completed successfully + after all retries, then the Batch service will not schedule tasks of the + job to the compute node. The compute node remains active and eligible to + run tasks of other jobs. If false, the Batch service will not wait for the + Job Preparation task to complete. In this case, other tasks of the job can + start executing on the compute node while the Job Preparation task is + still running; and even if the Job Preparation task fails, new tasks will + continue to be scheduled on the node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + task runs. If omitted, the task runs as a non-administrative user unique + to the task on Windows nodes, or a a non-administrative user unique to the + pool on Linux nodes. + :type user_identity: :class:`UserIdentity + ` + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation task after a compute node reboots. The + Job Preparation task is always rerun if a compute node is reimaged, or if + the Job Preparation task did not complete (e.g. because the reboot + occurred while the task was running). Therefore, you should always write a + Job Preparation task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, + environment_settings=None, constraints=None, wait_for_success: bool=None, user_identity=None, + rerun_on_node_reboot_after_success: bool=None, **kwargs) -> None: + super(JobPreparationTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.constraints = constraints + self.wait_for_success = wait_for_success + self.user_identity = user_identity + self.rerun_on_node_reboot_after_success = rerun_on_node_reboot_after_success + + +class JobReleaseTask(Model): + """A Job Release task to run on job completion on any compute node where the + job has run. + + The Job Release task runs when the job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the job is still active, the job's maximum wall clock time constraint + is reached, and the job is still active, or the job's Job Manager task + completed, and the job is configured to terminate when the Job Manager + completes. The Job Release task runs on each compute node where tasks of + the job have run and the Job Preparation task ran and completed. If you + reimage a compute node after it has run the Job Preparation task, and the + job ends without any further tasks of the job running on that compute node + (and hence the Job Preparation task does not re-run), then the Job Release + task does not run on that node. If a compute node reboots while the Job + Release task is still running, the Job Release task runs again when the + compute node starts up. The job is not marked as complete until all Job + Release tasks have completed. The Job Release task runs in the background. + It does not occupy a scheduling slot; that is, it does not count towards + the maxTasksPerNode limit specified on the pool. + + :param id: A string that uniquely identifies the Job Release task within + the job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other task in the job can have the + same ID as the Job Release task. If you try to submit a task with the same + ID, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: The command line of the Job Release task. The command + line does not run under a shell, and therefore cannot take advantage of + shell features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all task environment variables + are mapped into the container, and the task command line is executed in + the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the Job Release task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param max_wall_clock_time: The maximum elapsed time that the Job Release + task may run on a given compute node, measured from the time the task + starts. If the task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the task directory for + the Job Release task on the compute node. After this time, the Batch + service may delete the task directory and all its contents. The default is + infinite, i.e. the task directory will be retained until the compute node + is removed or reimaged. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release task + runs. If omitted, the task runs as a non-administrative user unique to the + task. + :type user_identity: :class:`UserIdentity + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, + environment_settings=None, max_wall_clock_time=None, retention_time=None, user_identity=None, + **kwargs) -> None: + super(JobReleaseTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.max_wall_clock_time = max_wall_clock_time + self.retention_time = retention_time + self.user_identity = user_identity + + +class JobTemplate(Model): + """A Job Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/jobs" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the job. + :type properties: :class:`ExtendedJobParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedJobParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/jobs" + + def __init__(self, *, properties, api_version: str=None, **kwargs) -> None: + super(JobTemplate, self).__init__(**kwargs) + self.properties = properties + self.api_version = api_version + + +class MergeTask(Model): + """An Azure Batch task template to repeat. + + :param str id: The ID of the merge task. + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. For multi-instance + tasks, the command line is executed as the primary task, after the primary + task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. + :type command_line: str + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. For + multi-instance tasks, the resource files will only be downloaded to the + compute node on which the primary task is executed. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param depends_on: The tasks that this task depends on. This task will not + be scheduled until all tasks that it depends on have completed + successfully. If any of those tasks fail and exhaust their retry counts, + this task will never be scheduled. If the job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: :class:`TaskDependencies + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'}, + } + + def __init__(self, *, command_line: str, id: str=None, display_name: str=None, exit_conditions=None, + resource_files=None, environment_settings=None, affinity_info=None, constraints=None, + user_identity=None, depends_on=None, application_package_references=None, + authentication_token_settings=None, output_files=None, package_references=None, **kwargs) -> None: + super(MergeTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.exit_conditions = exit_conditions + self.resource_files = resource_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.depends_on = depends_on + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.output_files = output_files + self.package_references = package_references + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance task. + + Multi-instance tasks are commonly used to support MPI tasks. + + :param number_of_instances: The number of compute nodes required by the + task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: The command line to run on all the + compute nodes to enable them to coordinate when the primary runs the main + task command. A typical coordination command line launches a background + service and verifies that the service is ready to process inter-node + messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the task working + directory, but instead are downloaded to the task root directory (one + directory above the working directory). + :type common_resource_files: list of :class:`ExtendedResourceFile + ` + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ExtendedResourceFile]'}, + } + + def __init__(self, *, coordination_command_line: int, number_of_instances: str=None, + common_resource_files=None, **kwargs) -> None: + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = number_of_instances + self.coordination_command_line = coordination_command_line + self.common_resource_files = common_resource_files + + +class OutputFileAutoStorageDestination(Model): + """An speficition of output files upload destination that uses an + auto-storage file group. + + :param str file_group: The name of the file group that the output files will + be uploaded to. + :param str path: The destination path within the file group that the files will + be uploaded to. Is the output file specification refers to a single file, this will + be treated as a file name. If the output file specification refers to potentially + multiple files, this will be treated as a subfolder. + """ + + _validation = { + 'file_group': {'required': True} + } + + _attribute_map = { + 'file_group': {'key': 'fileGroup', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__(self, *, file_group: str, path: str=None, **kwargs) -> None: + super(OutputFileAutoStorageDestination, self).__init__(**kwargs) + self.file_group = file_group + self.path = path + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch node to another + location after the Batch service has finished executing the task process. + + :param file_pattern: A pattern indicating which file(s) to upload. Both + relative and absolute paths are supported. Relative paths are relative to + the task working directory. The following wildcards are supported: * + matches 0 or more characters (for example pattern abc* would match abc or + abcdef), ** matches any directory, ? matches any single character, [abc] + matches one character in the brackets, and [a-c] matches one character in + the range. Brackets can include a negation to match any character not + specified (for example [!abc] matches any character but a, b, or c). If a + file name starts with "." it is ignored by default but may be matched by + specifying it explicitly (for example *.gif will not match .a.gif, but + .*.gif will). A simple example: **\\*.txt matches any file that does not + start in '.' and ends with .txt in the task working directory or any + subdirectory. If the filename contains a wildcard character it can be + escaped using brackets (for example abc[*] would match a file named abc*). + Note that both \\ and / are treated as directory separators on Windows, + but only / is on Linux. Environment variables (%var% on Windows or $var on + Linux) are expanded prior to the pattern being applied. + :type file_pattern: str + :param destination: The destination for the output file(s). + :type destination: :class:`ExtendedOutputFileDestination + ` + :param upload_options: Additional options for the upload operation, + including under what conditions to perform the upload. + :type upload_options: :class:`OutputFileUploadOptions + ` + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'ExtendedOutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, *, file_pattern: str, destination, upload_options, **kwargs) -> None: + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = file_pattern + self.destination = destination + self.upload_options = upload_options + + +class ParameterSet(Model): + """A set of parametric sweep range range parameters. + + :param int start: The starting value of the sweep. + :param int end: The ending value of the sweep (inclusive). + :param int step: The incremental step value, default is 1. The step value + can be negative (i.e. a decending sweep), but only id the start value is + a higher value than the end. + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'step': {'key': 'step', 'type': 'int'}, + } + + def __init__(self, *, start: int, end: int, step: int=1, **kwargs) -> None: + super(ParameterSet, self).__init__(**kwargs) + try: + self.start = int(start) + self.end = int(end) + self.step = int(step) + except (TypeError, ValueError): + raise ValueError("'start', 'end' and 'step' parameters must be integers.") + if step == 0: + raise ValueError("'step' parameter cannot be 0.") + elif start > end and step > 0: + raise ValueError( + "'step' must be a negative number when 'start' is greater than 'end'") + elif start < end and step < 0: + raise ValueError( + "'step' must be a positive number when 'end' is greater than 'start'") + + +class ParametricSweepTaskFactory(TaskFactoryBase): + """A Task Factory for generating a set of tasks based on one or more parameter + sets to define a numeric input range. Each parameter set will have a start, end + and step value. A task will be generated for each integer in this range. Multiple + parameter sets can be combined for a multi-dimensional sweep. + :param parameter_sets: A list if parameter sets from which tasks will be generated. + :type parameter_sets: A list of :class:`ParameterSet` + :param repeat_task: The task template the will be used to generate each task. + :type repeat_task: :class:`RepeatTask ` + :param merge_task: An optional additional task to be run after all the other + generated tasks have completed successfully. + :type merge_task: :class:`MergeTask ` + """ + + _validation = { + 'type': {'required': True}, + 'parameter_sets': {'required': True, 'min_items': 1}, + 'repeat_task': {'required': True} + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'parameter_sets': {'key': 'parameterSets', 'type': '[ParameterSet]'}, + 'repeat_task': {'key': 'repeatTask', 'type': 'RepeatTask'}, + 'merge_task': {'key': 'mergeTask', 'type': 'MergeTask'} + } + + def __init__(self, *, parameter_sets, repeat_task, merge_task=None, **kwargs) -> None: + super(ParametricSweepTaskFactory, self).__init__(merge_task=merge_task, **kwargs) + if not parameter_sets: + raise ValueError("Parametric Sweep task factory requires at least one parameter set.") + self.parameter_sets = parameter_sets + self.repeat_task = repeat_task + self.type = 'parametricSweep' + + +class PoolTemplate(Model): + """A Pool Template. + + :ivar type: The type of object described by the template. Must be: + "Microsoft.Batch/batchAccounts/pools" + :type type: str + :param api_version: The API version that the template conforms to. + :type api_version: str + :param properties: The specificaton of the pool. + :type properties: :class:`ExtendedPoolParameter` + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'id', 'type': 'str'}, + 'api_version': {'key': 'apiVersion', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ExtendedPoolParameter'}, + } + + type = "Microsoft.Batch/batchAccounts/pools" + + def __init__(self, *, properties: str, api_version=None, **kwargs) -> None: + super(PoolTemplate, self).__init__(**kwargs) + self.properties = properties + self.api_version = api_version + + +class RepeatTask(Model): + """An Azure Batch task template to repeat. + + :param display_name: A display name for the task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: The command line of the task. + :type command_line: str + :param container_settings: The settings for the container under which the + task runs. If the pool that will run this task has containerConfiguration + set, this must be set as well. If the pool that will run this task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all task environment variables are mapped into the container, + and the task command line is executed in the container. + :type container_settings: :class:`TaskContainerSettings + ` + :param exit_conditions: How the Batch service should respond when the task + completes. + :type exit_conditions: :class:`ExitConditions + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param affinity_info: A locality hint that can be used by the Batch + service to select a compute node on which to start the new task. + :type affinity_info: :class:`AffinityInformation + ` + :param constraints: The execution constraints that apply to this task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the job, and the maxWallClockTime and + retentionTime are infinite. + :type constraints: :class:`TaskConstraints + ` + :param user_identity: The user identity under which the task runs. If + omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param application_package_references: A list of application packages that + the Batch service will deploy to the compute node before running the + command line. + :type application_package_references: list of + :class:`ApplicationPackageReference + ` + :param authentication_token_settings: The settings for an authentication + token that the task can use to perform Batch service operations. If this + property is set, the Batch service provides the task with an + authentication token which can be used to authenticate Batch service + operations without requiring an account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the task can carry out using the token depend on the settings. For + example, a task can request job permissions in order to add other tasks to + the job, or check the status of the job or of other tasks under the job. + :type authentication_token_settings: :class:`AuthenticationTokenSettings + ` + :param output_files: A list of output file references to up persisted once + the task has completed. + :type output_files: list of :class:`OutputFile + ` + :param package_references: A list of packages to be installed on the compute + nodes. Must be of a Package Manager type in accordance with the selected + operating system. + :type package_references: list of :class:`PackageReferenceBase + ` + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'application_package_references': {'key': 'applicationPackageReferences', + 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', + 'type': 'AuthenticationTokenSettings'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'package_references': {'key': 'packageReferences', 'type': '[PackageReferenceBase]'} + } + + def __init__(self, *, command_line: str, display_name: str=None, container_settings=None, exit_conditions=None, + resource_files=None, environment_settings=None, affinity_info=None, constraints=None, + user_identity=None, application_package_references=None, authentication_token_settings=None, + output_files=None, package_references=None, **kwargs) -> None: + super(RepeatTask, self).__init__(**kwargs) + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.exit_conditions = exit_conditions + self.resource_files = resource_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.output_files = output_files + self.package_references = package_references + + +class StartTask(Model): + """A task which is run when a compute node joins a pool in the Azure Batch + service, or when the compute node is rebooted or reimaged. + + :param command_line: The command line of the start task. The command line + does not run under a shell, and therefore cannot take advantage of shell + features such as environment variable expansion. If you want to take + advantage of such features, you should invoke the shell in the command + line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c + MyCommand" in Linux. + :type command_line: str + :param container_settings: The settings for the container under which the + start task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all task environment variables are + mapped into the container, and the task command line is executed in the + container. + :type container_settings: :class:`TaskContainerSettings + ` + :param resource_files: A list of files that the Batch service will + download to the compute node before running the command line. Files listed + under this element are located in the task's working directory. + :type resource_files: list of :class:`ExtendedResourceFile + ` + :param environment_settings: A list of environment variable settings for + the start task. + :type environment_settings: list of :class:`EnvironmentSetting + ` + :param user_identity: The user identity under which the start task runs. + If omitted, the task runs as a non-administrative user unique to the task. + :type user_identity: :class:`UserIdentity + ` + :param max_task_retry_count: The maximum number of times the task may be + retried. The Batch service retries a task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the task. If the maximum retry count is + -1, the Batch service retries the task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start task to complete successfully (that is, to exit with exit code 0) + before scheduling any tasks on the compute node. If true and the start + task fails on a compute node, the Batch service retries the start task up + to its maximum retry count (maxTaskRetryCount). If the task has still not + completed successfully after all retries, then the Batch service marks the + compute node unusable, and will not schedule tasks to it. This condition + can be detected via the node state and failure info details. If false, the + Batch service will not wait for the start task to complete. In this case, + other tasks can start executing on the compute node while the start task + is still running; and even if the start task fails, new tasks will + continue to be scheduled on the node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ExtendedResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, container_settings=None, resource_files=None, environment_settings=None, + user_identity=None, max_task_retry_count: int=None, wait_for_success: bool=None, **kwargs) -> None: + super(StartTask, self).__init__(**kwargs) + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.user_identity = user_identity + self.max_task_retry_count = max_task_retry_count + self.wait_for_success = wait_for_success + + +class TaskCollectionTaskFactory(TaskFactoryBase): + """A Task Factory for adding a predefined collection of tasks automatically + to a job on submission. + + :param tasks: A list if task parameters, each of which will be added straight to the job. + :type tasks: A list of :class:`ExtendedTaskParameter + ` + """ + + _validation = { + 'type': {'required': True}, + 'tasks': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'tasks': {'key': 'tasks', 'type': '[ExtendedTaskParameter]'}, + } + + def __init__(self, *, tasks, **kwargs) -> None: + super(TaskCollectionTaskFactory, self).__init__(**kwargs) + self.tasks = tasks + self.type = 'taskCollection' + + +class YumPackageReference(PackageReferenceBase): + """A reference to a package to be installed using the YUM package + manager on a Linux node. + + :param str id: The name of the package. + :param str version: The version of the package to be installed. If omitted, + the latest version (according to the package repository) will be installed. + :param bool disable_excludes: Whether to allow packages that might otherwise + be excluded by VM configuration (e.g. kernel packages). Default is False. + """ + + _validation = { + 'type': {'required': True}, + 'id': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'disable_excludes': {'key': 'disableExcludes', 'type': 'bool'} + } + + def __init__(self, *, id: str, version: str=None, disable_excludes: bool=None, **kwargs) -> None: + super(YumPackageReference, self).__init__(id=id, version=version, **kwargs) + self.disable_excludes = disable_excludes + self.type = 'yumPackage' diff --git a/azext/batch/_vendor/v5/azext/batch/models/constants.py b/azext/batch/_vendor/v5/azext/batch/models/constants.py new file mode 100644 index 00000000..1779fdca --- /dev/null +++ b/azext/batch/_vendor/v5/azext/batch/models/constants.py @@ -0,0 +1,70 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +from enum import Enum + +# These properties are reserved for application template use +# and may not be used on jobs using an application template +PROPS_RESERVED_FOR_TEMPLATES = { + 'jobManagerTask', + 'jobPreparationTask', + 'jobReleaseTask', + #'commonEnvironmentSettings', + 'usesTaskDependencies', + 'onAllTasksComplete', + 'onTaskFailure', + 'taskFactory'} + + +PROPS_PERMITTED_ON_TEMPLATES = PROPS_RESERVED_FOR_TEMPLATES.union({ + 'templateMetadata', + 'parameters', + 'metadata'}) + + +ATTRS_RESERVED_FOR_TEMPLATES = { + 'job_manager_task', + 'job_preparation_task', + 'job_release_task', + #'common_environment_settings', + 'uses_task_dependencies', + 'on_all_tasks_complete', + 'on_task_failure', + 'task_factory'} + + +# These properties are reserved for job use +# and may not be used on an application template +PROPS_RESERVED_FOR_JOBS = { + 'id', + 'displayName', + 'priority', + 'constraints', + 'poolInfo', + 'applicationTemplateInfo'} + + +# Properties on a repeatTask object that should be +# applied to each expanded task. +PROPS_ON_REPEAT_TASK = { + 'displayName', + 'containerSettings', + 'resourceFiles', + 'environmentSettings', + 'constraints', + 'userIdentity', + 'exitConditions', + 'clientExtensions', + 'outputFiles', + 'packageReferences'} + + +PROPS_ON_COLLECTION_TASK = PROPS_ON_REPEAT_TASK.union({ + 'multiInstanceSettings', + 'dependsOn'}) + + +# Dates used as cutoffs for different SDK extension versions +class KnownTemplateVersion(Enum): + Dec2018 = "2018-12-01" diff --git a/azext/batch/_vendor/v5/azure-batch-7.0.0.zip b/azext/batch/_vendor/v5/azure-batch-7.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..717f5b9a26ecf835cb126279321c377f01ce4012 GIT binary patch literal 236003 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ÐRfIYyIHxrX`m|eVG}jY6m@y| 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

#N-_4sfqM;gQ|4MwA1>An7?!as? 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 literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/azure-common-1.1.23.zip b/azext/batch/_vendor/v5/azure-common-1.1.23.zip new file mode 100644 index 0000000000000000000000000000000000000000..530778f9ee4cf195f914f980a58f0d998239163d GIT binary patch literal 17297 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 G3+R8&-%&^a literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/azure-mgmt-storage-2.0.0.zip b/azext/batch/_vendor/v5/azure-mgmt-storage-2.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..5b4f7ad9dfc9863d1e0f5318a1d1382373e2cecf GIT binary patch literal 577882 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%0DZSArj(% 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%0A_~kI!3$`bONc{18Pp%5W*;vZ_1w6Afm1{b^>Ka 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ⅅ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 k&~Lx$>3CO_B6;vuy`~Uy| literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/azure-storage-blob-1.5.0.tar.gz b/azext/batch/_vendor/v5/azure-storage-blob-1.5.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4cfe25cd299e67ceee0adf5af00d10cf820b0f64 GIT binary patch literal 71909 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

s&l_-?^RorxoWPK< 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 fKkJ|M&-!Qmv;JBCtbf)&Ia6N0 literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/azure/__init__.py b/azext/batch/_vendor/v5/azure/__init__.py new file mode 100644 index 00000000..69e3be50 --- /dev/null +++ b/azext/batch/_vendor/v5/azure/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/azext/batch/_vendor/v5/azure/batch/__init__.py b/azext/batch/_vendor/v5/azure/batch/__init__.py new file mode 100644 index 00000000..757980c8 --- /dev/null +++ b/azext/batch/_vendor/v5/azure/batch/__init__.py @@ -0,0 +1,19 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._configuration import BatchServiceClientConfiguration +from ._batch_service_client import BatchServiceClient +__all__ = ['BatchServiceClient', 'BatchServiceClientConfiguration'] + +from .version import VERSION + +__version__ = VERSION + diff --git a/azext/batch/_vendor/v5/azure/batch/models/__init__.py b/azext/batch/_vendor/v5/azure/batch/models/__init__.py new file mode 100644 index 00000000..b07b1a6d --- /dev/null +++ b/azext/batch/_vendor/v5/azure/batch/models/__init__.py @@ -0,0 +1,726 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AccountListPoolNodeCountsOptions + from ._models_py3 import AccountListSupportedImagesOptions + from ._models_py3 import AffinityInformation + from ._models_py3 import ApplicationGetOptions + from ._models_py3 import ApplicationListOptions + from ._models_py3 import ApplicationPackageReference + from ._models_py3 import ApplicationSummary + from ._models_py3 import AuthenticationTokenSettings + from ._models_py3 import AutoPoolSpecification + from ._models_py3 import AutoScaleRun + from ._models_py3 import AutoScaleRunError + from ._models_py3 import AutoUserSpecification + from ._models_py3 import BatchError, BatchErrorException + from ._models_py3 import BatchErrorDetail + from ._models_py3 import Certificate + from ._models_py3 import CertificateAddOptions + from ._models_py3 import CertificateAddParameter + from ._models_py3 import CertificateCancelDeletionOptions + from ._models_py3 import CertificateDeleteOptions + from ._models_py3 import CertificateGetOptions + from ._models_py3 import CertificateListOptions + from ._models_py3 import CertificateReference + from ._models_py3 import CloudJob + from ._models_py3 import CloudJobSchedule + from ._models_py3 import CloudPool + from ._models_py3 import CloudServiceConfiguration + from ._models_py3 import CloudTask + from ._models_py3 import CloudTaskListSubtasksResult + from ._models_py3 import ComputeNode + from ._models_py3 import ComputeNodeAddUserOptions + from ._models_py3 import ComputeNodeDeleteUserOptions + from ._models_py3 import ComputeNodeDisableSchedulingOptions + from ._models_py3 import ComputeNodeEnableSchedulingOptions + from ._models_py3 import ComputeNodeEndpointConfiguration + from ._models_py3 import ComputeNodeError + from ._models_py3 import ComputeNodeGetOptions + from ._models_py3 import ComputeNodeGetRemoteDesktopOptions + from ._models_py3 import ComputeNodeGetRemoteLoginSettingsOptions + from ._models_py3 import ComputeNodeGetRemoteLoginSettingsResult + from ._models_py3 import ComputeNodeInformation + from ._models_py3 import ComputeNodeListOptions + from ._models_py3 import ComputeNodeRebootOptions + from ._models_py3 import ComputeNodeReimageOptions + from ._models_py3 import ComputeNodeUpdateUserOptions + from ._models_py3 import ComputeNodeUploadBatchServiceLogsOptions + from ._models_py3 import ComputeNodeUser + from ._models_py3 import ContainerConfiguration + from ._models_py3 import ContainerRegistry + from ._models_py3 import DataDisk + from ._models_py3 import DeleteCertificateError + from ._models_py3 import EnvironmentSetting + from ._models_py3 import ErrorMessage + from ._models_py3 import ExitCodeMapping + from ._models_py3 import ExitCodeRangeMapping + from ._models_py3 import ExitConditions + from ._models_py3 import ExitOptions + from ._models_py3 import FileDeleteFromComputeNodeOptions + from ._models_py3 import FileDeleteFromTaskOptions + from ._models_py3 import FileGetFromComputeNodeOptions + from ._models_py3 import FileGetFromTaskOptions + from ._models_py3 import FileGetPropertiesFromComputeNodeOptions + from ._models_py3 import FileGetPropertiesFromTaskOptions + from ._models_py3 import FileListFromComputeNodeOptions + from ._models_py3 import FileListFromTaskOptions + from ._models_py3 import FileProperties + from ._models_py3 import ImageInformation + from ._models_py3 import ImageReference + from ._models_py3 import InboundEndpoint + from ._models_py3 import InboundNATPool + from ._models_py3 import JobAddOptions + from ._models_py3 import JobAddParameter + from ._models_py3 import JobConstraints + from ._models_py3 import JobDeleteOptions + from ._models_py3 import JobDisableOptions + from ._models_py3 import JobDisableParameter + from ._models_py3 import JobEnableOptions + from ._models_py3 import JobExecutionInformation + from ._models_py3 import JobGetAllLifetimeStatisticsOptions + from ._models_py3 import JobGetOptions + from ._models_py3 import JobGetTaskCountsOptions + from ._models_py3 import JobListFromJobScheduleOptions + from ._models_py3 import JobListOptions + from ._models_py3 import JobListPreparationAndReleaseTaskStatusOptions + from ._models_py3 import JobManagerTask + from ._models_py3 import JobNetworkConfiguration + from ._models_py3 import JobPatchOptions + from ._models_py3 import JobPatchParameter + from ._models_py3 import JobPreparationAndReleaseTaskExecutionInformation + from ._models_py3 import JobPreparationTask + from ._models_py3 import JobPreparationTaskExecutionInformation + from ._models_py3 import JobReleaseTask + from ._models_py3 import JobReleaseTaskExecutionInformation + from ._models_py3 import JobScheduleAddOptions + from ._models_py3 import JobScheduleAddParameter + from ._models_py3 import JobScheduleDeleteOptions + from ._models_py3 import JobScheduleDisableOptions + from ._models_py3 import JobScheduleEnableOptions + from ._models_py3 import JobScheduleExecutionInformation + from ._models_py3 import JobScheduleExistsOptions + from ._models_py3 import JobScheduleGetOptions + from ._models_py3 import JobScheduleListOptions + from ._models_py3 import JobSchedulePatchOptions + from ._models_py3 import JobSchedulePatchParameter + from ._models_py3 import JobScheduleStatistics + from ._models_py3 import JobScheduleTerminateOptions + from ._models_py3 import JobScheduleUpdateOptions + from ._models_py3 import JobScheduleUpdateParameter + from ._models_py3 import JobSchedulingError + from ._models_py3 import JobSpecification + from ._models_py3 import JobStatistics + from ._models_py3 import JobTerminateOptions + from ._models_py3 import JobTerminateParameter + from ._models_py3 import JobUpdateOptions + from ._models_py3 import JobUpdateParameter + from ._models_py3 import LinuxUserConfiguration + from ._models_py3 import MetadataItem + from ._models_py3 import MultiInstanceSettings + from ._models_py3 import NameValuePair + from ._models_py3 import NetworkConfiguration + from ._models_py3 import NetworkSecurityGroupRule + from ._models_py3 import NodeAgentInformation + from ._models_py3 import NodeCounts + from ._models_py3 import NodeDisableSchedulingParameter + from ._models_py3 import NodeFile + from ._models_py3 import NodeRebootParameter + from ._models_py3 import NodeReimageParameter + from ._models_py3 import NodeRemoveParameter + from ._models_py3 import NodeUpdateUserParameter + from ._models_py3 import OutputFile + from ._models_py3 import OutputFileBlobContainerDestination + from ._models_py3 import OutputFileDestination + from ._models_py3 import OutputFileUploadOptions + from ._models_py3 import PoolAddOptions + from ._models_py3 import PoolAddParameter + from ._models_py3 import PoolDeleteOptions + from ._models_py3 import PoolDisableAutoScaleOptions + from ._models_py3 import PoolEnableAutoScaleOptions + from ._models_py3 import PoolEnableAutoScaleParameter + from ._models_py3 import PoolEndpointConfiguration + from ._models_py3 import PoolEvaluateAutoScaleOptions + from ._models_py3 import PoolEvaluateAutoScaleParameter + from ._models_py3 import PoolExistsOptions + from ._models_py3 import PoolGetAllLifetimeStatisticsOptions + from ._models_py3 import PoolGetOptions + from ._models_py3 import PoolInformation + from ._models_py3 import PoolListOptions + from ._models_py3 import PoolListUsageMetricsOptions + from ._models_py3 import PoolNodeCounts + from ._models_py3 import PoolPatchOptions + from ._models_py3 import PoolPatchParameter + from ._models_py3 import PoolRemoveNodesOptions + from ._models_py3 import PoolResizeOptions + from ._models_py3 import PoolResizeParameter + from ._models_py3 import PoolSpecification + from ._models_py3 import PoolStatistics + from ._models_py3 import PoolStopResizeOptions + from ._models_py3 import PoolUpdatePropertiesOptions + from ._models_py3 import PoolUpdatePropertiesParameter + from ._models_py3 import PoolUsageMetrics + from ._models_py3 import RecentJob + from ._models_py3 import ResizeError + from ._models_py3 import ResourceFile + from ._models_py3 import ResourceStatistics + from ._models_py3 import Schedule + from ._models_py3 import StartTask + from ._models_py3 import StartTaskInformation + from ._models_py3 import SubtaskInformation + from ._models_py3 import TaskAddCollectionOptions + from ._models_py3 import TaskAddCollectionParameter + from ._models_py3 import TaskAddCollectionResult + from ._models_py3 import TaskAddOptions + from ._models_py3 import TaskAddParameter + from ._models_py3 import TaskAddResult + from ._models_py3 import TaskConstraints + from ._models_py3 import TaskContainerExecutionInformation + from ._models_py3 import TaskContainerSettings + from ._models_py3 import TaskCounts + from ._models_py3 import TaskDeleteOptions + from ._models_py3 import TaskDependencies + from ._models_py3 import TaskExecutionInformation + from ._models_py3 import TaskFailureInformation + from ._models_py3 import TaskGetOptions + from ._models_py3 import TaskIdRange + from ._models_py3 import TaskInformation + from ._models_py3 import TaskListOptions + from ._models_py3 import TaskListSubtasksOptions + from ._models_py3 import TaskReactivateOptions + from ._models_py3 import TaskSchedulingPolicy + from ._models_py3 import TaskStatistics + from ._models_py3 import TaskTerminateOptions + from ._models_py3 import TaskUpdateOptions + from ._models_py3 import TaskUpdateParameter + from ._models_py3 import UploadBatchServiceLogsConfiguration + from ._models_py3 import UploadBatchServiceLogsResult + from ._models_py3 import UsageStatistics + from ._models_py3 import UserAccount + from ._models_py3 import UserIdentity + from ._models_py3 import VirtualMachineConfiguration + from ._models_py3 import WindowsConfiguration + from ._models_py3 import WindowsUserConfiguration +except (SyntaxError, ImportError): + from ._models import AccountListPoolNodeCountsOptions + from ._models import AccountListSupportedImagesOptions + from ._models import AffinityInformation + from ._models import ApplicationGetOptions + from ._models import ApplicationListOptions + from ._models import ApplicationPackageReference + from ._models import ApplicationSummary + from ._models import AuthenticationTokenSettings + from ._models import AutoPoolSpecification + from ._models import AutoScaleRun + from ._models import AutoScaleRunError + from ._models import AutoUserSpecification + from ._models import BatchError, BatchErrorException + from ._models import BatchErrorDetail + from ._models import Certificate + from ._models import CertificateAddOptions + from ._models import CertificateAddParameter + from ._models import CertificateCancelDeletionOptions + from ._models import CertificateDeleteOptions + from ._models import CertificateGetOptions + from ._models import CertificateListOptions + from ._models import CertificateReference + from ._models import CloudJob + from ._models import CloudJobSchedule + from ._models import CloudPool + from ._models import CloudServiceConfiguration + from ._models import CloudTask + from ._models import CloudTaskListSubtasksResult + from ._models import ComputeNode + from ._models import ComputeNodeAddUserOptions + from ._models import ComputeNodeDeleteUserOptions + from ._models import ComputeNodeDisableSchedulingOptions + from ._models import ComputeNodeEnableSchedulingOptions + from ._models import ComputeNodeEndpointConfiguration + from ._models import ComputeNodeError + from ._models import ComputeNodeGetOptions + from ._models import ComputeNodeGetRemoteDesktopOptions + from ._models import ComputeNodeGetRemoteLoginSettingsOptions + from ._models import ComputeNodeGetRemoteLoginSettingsResult + from ._models import ComputeNodeInformation + from ._models import ComputeNodeListOptions + from ._models import ComputeNodeRebootOptions + from ._models import ComputeNodeReimageOptions + from ._models import ComputeNodeUpdateUserOptions + from ._models import ComputeNodeUploadBatchServiceLogsOptions + from ._models import ComputeNodeUser + from ._models import ContainerConfiguration + from ._models import ContainerRegistry + from ._models import DataDisk + from ._models import DeleteCertificateError + from ._models import EnvironmentSetting + from ._models import ErrorMessage + from ._models import ExitCodeMapping + from ._models import ExitCodeRangeMapping + from ._models import ExitConditions + from ._models import ExitOptions + from ._models import FileDeleteFromComputeNodeOptions + from ._models import FileDeleteFromTaskOptions + from ._models import FileGetFromComputeNodeOptions + from ._models import FileGetFromTaskOptions + from ._models import FileGetPropertiesFromComputeNodeOptions + from ._models import FileGetPropertiesFromTaskOptions + from ._models import FileListFromComputeNodeOptions + from ._models import FileListFromTaskOptions + from ._models import FileProperties + from ._models import ImageInformation + from ._models import ImageReference + from ._models import InboundEndpoint + from ._models import InboundNATPool + from ._models import JobAddOptions + from ._models import JobAddParameter + from ._models import JobConstraints + from ._models import JobDeleteOptions + from ._models import JobDisableOptions + from ._models import JobDisableParameter + from ._models import JobEnableOptions + from ._models import JobExecutionInformation + from ._models import JobGetAllLifetimeStatisticsOptions + from ._models import JobGetOptions + from ._models import JobGetTaskCountsOptions + from ._models import JobListFromJobScheduleOptions + from ._models import JobListOptions + from ._models import JobListPreparationAndReleaseTaskStatusOptions + from ._models import JobManagerTask + from ._models import JobNetworkConfiguration + from ._models import JobPatchOptions + from ._models import JobPatchParameter + from ._models import JobPreparationAndReleaseTaskExecutionInformation + from ._models import JobPreparationTask + from ._models import JobPreparationTaskExecutionInformation + from ._models import JobReleaseTask + from ._models import JobReleaseTaskExecutionInformation + from ._models import JobScheduleAddOptions + from ._models import JobScheduleAddParameter + from ._models import JobScheduleDeleteOptions + from ._models import JobScheduleDisableOptions + from ._models import JobScheduleEnableOptions + from ._models import JobScheduleExecutionInformation + from ._models import JobScheduleExistsOptions + from ._models import JobScheduleGetOptions + from ._models import JobScheduleListOptions + from ._models import JobSchedulePatchOptions + from ._models import JobSchedulePatchParameter + from ._models import JobScheduleStatistics + from ._models import JobScheduleTerminateOptions + from ._models import JobScheduleUpdateOptions + from ._models import JobScheduleUpdateParameter + from ._models import JobSchedulingError + from ._models import JobSpecification + from ._models import JobStatistics + from ._models import JobTerminateOptions + from ._models import JobTerminateParameter + from ._models import JobUpdateOptions + from ._models import JobUpdateParameter + from ._models import LinuxUserConfiguration + from ._models import MetadataItem + from ._models import MultiInstanceSettings + from ._models import NameValuePair + from ._models import NetworkConfiguration + from ._models import NetworkSecurityGroupRule + from ._models import NodeAgentInformation + from ._models import NodeCounts + from ._models import NodeDisableSchedulingParameter + from ._models import NodeFile + from ._models import NodeRebootParameter + from ._models import NodeReimageParameter + from ._models import NodeRemoveParameter + from ._models import NodeUpdateUserParameter + from ._models import OutputFile + from ._models import OutputFileBlobContainerDestination + from ._models import OutputFileDestination + from ._models import OutputFileUploadOptions + from ._models import PoolAddOptions + from ._models import PoolAddParameter + from ._models import PoolDeleteOptions + from ._models import PoolDisableAutoScaleOptions + from ._models import PoolEnableAutoScaleOptions + from ._models import PoolEnableAutoScaleParameter + from ._models import PoolEndpointConfiguration + from ._models import PoolEvaluateAutoScaleOptions + from ._models import PoolEvaluateAutoScaleParameter + from ._models import PoolExistsOptions + from ._models import PoolGetAllLifetimeStatisticsOptions + from ._models import PoolGetOptions + from ._models import PoolInformation + from ._models import PoolListOptions + from ._models import PoolListUsageMetricsOptions + from ._models import PoolNodeCounts + from ._models import PoolPatchOptions + from ._models import PoolPatchParameter + from ._models import PoolRemoveNodesOptions + from ._models import PoolResizeOptions + from ._models import PoolResizeParameter + from ._models import PoolSpecification + from ._models import PoolStatistics + from ._models import PoolStopResizeOptions + from ._models import PoolUpdatePropertiesOptions + from ._models import PoolUpdatePropertiesParameter + from ._models import PoolUsageMetrics + from ._models import RecentJob + from ._models import ResizeError + from ._models import ResourceFile + from ._models import ResourceStatistics + from ._models import Schedule + from ._models import StartTask + from ._models import StartTaskInformation + from ._models import SubtaskInformation + from ._models import TaskAddCollectionOptions + from ._models import TaskAddCollectionParameter + from ._models import TaskAddCollectionResult + from ._models import TaskAddOptions + from ._models import TaskAddParameter + from ._models import TaskAddResult + from ._models import TaskConstraints + from ._models import TaskContainerExecutionInformation + from ._models import TaskContainerSettings + from ._models import TaskCounts + from ._models import TaskDeleteOptions + from ._models import TaskDependencies + from ._models import TaskExecutionInformation + from ._models import TaskFailureInformation + from ._models import TaskGetOptions + from ._models import TaskIdRange + from ._models import TaskInformation + from ._models import TaskListOptions + from ._models import TaskListSubtasksOptions + from ._models import TaskReactivateOptions + from ._models import TaskSchedulingPolicy + from ._models import TaskStatistics + from ._models import TaskTerminateOptions + from ._models import TaskUpdateOptions + from ._models import TaskUpdateParameter + from ._models import UploadBatchServiceLogsConfiguration + from ._models import UploadBatchServiceLogsResult + from ._models import UsageStatistics + from ._models import UserAccount + from ._models import UserIdentity + from ._models import VirtualMachineConfiguration + from ._models import WindowsConfiguration + from ._models import WindowsUserConfiguration +from ._paged_models import ApplicationSummaryPaged +from ._paged_models import CertificatePaged +from ._paged_models import CloudJobPaged +from ._paged_models import CloudJobSchedulePaged +from ._paged_models import CloudPoolPaged +from ._paged_models import CloudTaskPaged +from ._paged_models import ComputeNodePaged +from ._paged_models import ImageInformationPaged +from ._paged_models import JobPreparationAndReleaseTaskExecutionInformationPaged +from ._paged_models import NodeFilePaged +from ._paged_models import PoolNodeCountsPaged +from ._paged_models import PoolUsageMetricsPaged +from ._batch_service_client_enums import ( + OSType, + VerificationType, + AccessScope, + CertificateState, + CertificateFormat, + ContainerWorkingDirectory, + JobAction, + DependencyAction, + AutoUserScope, + ElevationLevel, + LoginMode, + OutputFileUploadCondition, + ComputeNodeFillType, + CertificateStoreLocation, + CertificateVisibility, + CachingType, + StorageAccountType, + DynamicVNetAssignmentScope, + InboundEndpointProtocol, + NetworkSecurityGroupRuleAccess, + PoolLifetimeOption, + OnAllTasksComplete, + OnTaskFailure, + JobScheduleState, + ErrorCategory, + JobState, + JobPreparationTaskState, + TaskExecutionResult, + JobReleaseTaskState, + PoolState, + AllocationState, + TaskState, + TaskAddStatus, + SubtaskState, + StartTaskState, + ComputeNodeState, + SchedulingState, + DisableJobOption, + ComputeNodeDeallocationOption, + ComputeNodeRebootOption, + ComputeNodeReimageOption, + DisableComputeNodeSchedulingOption, +) + +__all__ = [ + 'AccountListPoolNodeCountsOptions', + 'AccountListSupportedImagesOptions', + 'AffinityInformation', + 'ApplicationGetOptions', + 'ApplicationListOptions', + 'ApplicationPackageReference', + 'ApplicationSummary', + 'AuthenticationTokenSettings', + 'AutoPoolSpecification', + 'AutoScaleRun', + 'AutoScaleRunError', + 'AutoUserSpecification', + 'BatchError', 'BatchErrorException', + 'BatchErrorDetail', + 'Certificate', + 'CertificateAddOptions', + 'CertificateAddParameter', + 'CertificateCancelDeletionOptions', + 'CertificateDeleteOptions', + 'CertificateGetOptions', + 'CertificateListOptions', + 'CertificateReference', + 'CloudJob', + 'CloudJobSchedule', + 'CloudPool', + 'CloudServiceConfiguration', + 'CloudTask', + 'CloudTaskListSubtasksResult', + 'ComputeNode', + 'ComputeNodeAddUserOptions', + 'ComputeNodeDeleteUserOptions', + 'ComputeNodeDisableSchedulingOptions', + 'ComputeNodeEnableSchedulingOptions', + 'ComputeNodeEndpointConfiguration', + 'ComputeNodeError', + 'ComputeNodeGetOptions', + 'ComputeNodeGetRemoteDesktopOptions', + 'ComputeNodeGetRemoteLoginSettingsOptions', + 'ComputeNodeGetRemoteLoginSettingsResult', + 'ComputeNodeInformation', + 'ComputeNodeListOptions', + 'ComputeNodeRebootOptions', + 'ComputeNodeReimageOptions', + 'ComputeNodeUpdateUserOptions', + 'ComputeNodeUploadBatchServiceLogsOptions', + 'ComputeNodeUser', + 'ContainerConfiguration', + 'ContainerRegistry', + 'DataDisk', + 'DeleteCertificateError', + 'EnvironmentSetting', + 'ErrorMessage', + 'ExitCodeMapping', + 'ExitCodeRangeMapping', + 'ExitConditions', + 'ExitOptions', + 'FileDeleteFromComputeNodeOptions', + 'FileDeleteFromTaskOptions', + 'FileGetFromComputeNodeOptions', + 'FileGetFromTaskOptions', + 'FileGetPropertiesFromComputeNodeOptions', + 'FileGetPropertiesFromTaskOptions', + 'FileListFromComputeNodeOptions', + 'FileListFromTaskOptions', + 'FileProperties', + 'ImageInformation', + 'ImageReference', + 'InboundEndpoint', + 'InboundNATPool', + 'JobAddOptions', + 'JobAddParameter', + 'JobConstraints', + 'JobDeleteOptions', + 'JobDisableOptions', + 'JobDisableParameter', + 'JobEnableOptions', + 'JobExecutionInformation', + 'JobGetAllLifetimeStatisticsOptions', + 'JobGetOptions', + 'JobGetTaskCountsOptions', + 'JobListFromJobScheduleOptions', + 'JobListOptions', + 'JobListPreparationAndReleaseTaskStatusOptions', + 'JobManagerTask', + 'JobNetworkConfiguration', + 'JobPatchOptions', + 'JobPatchParameter', + 'JobPreparationAndReleaseTaskExecutionInformation', + 'JobPreparationTask', + 'JobPreparationTaskExecutionInformation', + 'JobReleaseTask', + 'JobReleaseTaskExecutionInformation', + 'JobScheduleAddOptions', + 'JobScheduleAddParameter', + 'JobScheduleDeleteOptions', + 'JobScheduleDisableOptions', + 'JobScheduleEnableOptions', + 'JobScheduleExecutionInformation', + 'JobScheduleExistsOptions', + 'JobScheduleGetOptions', + 'JobScheduleListOptions', + 'JobSchedulePatchOptions', + 'JobSchedulePatchParameter', + 'JobScheduleStatistics', + 'JobScheduleTerminateOptions', + 'JobScheduleUpdateOptions', + 'JobScheduleUpdateParameter', + 'JobSchedulingError', + 'JobSpecification', + 'JobStatistics', + 'JobTerminateOptions', + 'JobTerminateParameter', + 'JobUpdateOptions', + 'JobUpdateParameter', + 'LinuxUserConfiguration', + 'MetadataItem', + 'MultiInstanceSettings', + 'NameValuePair', + 'NetworkConfiguration', + 'NetworkSecurityGroupRule', + 'NodeAgentInformation', + 'NodeCounts', + 'NodeDisableSchedulingParameter', + 'NodeFile', + 'NodeRebootParameter', + 'NodeReimageParameter', + 'NodeRemoveParameter', + 'NodeUpdateUserParameter', + 'OutputFile', + 'OutputFileBlobContainerDestination', + 'OutputFileDestination', + 'OutputFileUploadOptions', + 'PoolAddOptions', + 'PoolAddParameter', + 'PoolDeleteOptions', + 'PoolDisableAutoScaleOptions', + 'PoolEnableAutoScaleOptions', + 'PoolEnableAutoScaleParameter', + 'PoolEndpointConfiguration', + 'PoolEvaluateAutoScaleOptions', + 'PoolEvaluateAutoScaleParameter', + 'PoolExistsOptions', + 'PoolGetAllLifetimeStatisticsOptions', + 'PoolGetOptions', + 'PoolInformation', + 'PoolListOptions', + 'PoolListUsageMetricsOptions', + 'PoolNodeCounts', + 'PoolPatchOptions', + 'PoolPatchParameter', + 'PoolRemoveNodesOptions', + 'PoolResizeOptions', + 'PoolResizeParameter', + 'PoolSpecification', + 'PoolStatistics', + 'PoolStopResizeOptions', + 'PoolUpdatePropertiesOptions', + 'PoolUpdatePropertiesParameter', + 'PoolUsageMetrics', + 'RecentJob', + 'ResizeError', + 'ResourceFile', + 'ResourceStatistics', + 'Schedule', + 'StartTask', + 'StartTaskInformation', + 'SubtaskInformation', + 'TaskAddCollectionOptions', + 'TaskAddCollectionParameter', + 'TaskAddCollectionResult', + 'TaskAddOptions', + 'TaskAddParameter', + 'TaskAddResult', + 'TaskConstraints', + 'TaskContainerExecutionInformation', + 'TaskContainerSettings', + 'TaskCounts', + 'TaskDeleteOptions', + 'TaskDependencies', + 'TaskExecutionInformation', + 'TaskFailureInformation', + 'TaskGetOptions', + 'TaskIdRange', + 'TaskInformation', + 'TaskListOptions', + 'TaskListSubtasksOptions', + 'TaskReactivateOptions', + 'TaskSchedulingPolicy', + 'TaskStatistics', + 'TaskTerminateOptions', + 'TaskUpdateOptions', + 'TaskUpdateParameter', + 'UploadBatchServiceLogsConfiguration', + 'UploadBatchServiceLogsResult', + 'UsageStatistics', + 'UserAccount', + 'UserIdentity', + 'VirtualMachineConfiguration', + 'WindowsConfiguration', + 'WindowsUserConfiguration', + 'ApplicationSummaryPaged', + 'PoolUsageMetricsPaged', + 'CloudPoolPaged', + 'ImageInformationPaged', + 'PoolNodeCountsPaged', + 'CloudJobPaged', + 'JobPreparationAndReleaseTaskExecutionInformationPaged', + 'CertificatePaged', + 'NodeFilePaged', + 'CloudJobSchedulePaged', + 'CloudTaskPaged', + 'ComputeNodePaged', + 'OSType', + 'VerificationType', + 'AccessScope', + 'CertificateState', + 'CertificateFormat', + 'ContainerWorkingDirectory', + 'JobAction', + 'DependencyAction', + 'AutoUserScope', + 'ElevationLevel', + 'LoginMode', + 'OutputFileUploadCondition', + 'ComputeNodeFillType', + 'CertificateStoreLocation', + 'CertificateVisibility', + 'CachingType', + 'StorageAccountType', + 'DynamicVNetAssignmentScope', + 'InboundEndpointProtocol', + 'NetworkSecurityGroupRuleAccess', + 'PoolLifetimeOption', + 'OnAllTasksComplete', + 'OnTaskFailure', + 'JobScheduleState', + 'ErrorCategory', + 'JobState', + 'JobPreparationTaskState', + 'TaskExecutionResult', + 'JobReleaseTaskState', + 'PoolState', + 'AllocationState', + 'TaskState', + 'TaskAddStatus', + 'SubtaskState', + 'StartTaskState', + 'ComputeNodeState', + 'SchedulingState', + 'DisableJobOption', + 'ComputeNodeDeallocationOption', + 'ComputeNodeRebootOption', + 'ComputeNodeReimageOption', + 'DisableComputeNodeSchedulingOption', +] diff --git a/azext/batch/_vendor/v5/azure/batch/models/_batch_service_client_enums.py b/azext/batch/_vendor/v5/azure/batch/models/_batch_service_client_enums.py new file mode 100644 index 00000000..fb65370b --- /dev/null +++ b/azext/batch/_vendor/v5/azure/batch/models/_batch_service_client_enums.py @@ -0,0 +1,300 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class OSType(str, Enum): + + linux = "linux" #: The Linux operating system. + windows = "windows" #: The Windows operating system. + + +class VerificationType(str, Enum): + + verified = "verified" #: The Image is guaranteed to be compatible with the associated Compute Node agent SKU and all Batch features have been confirmed to work as expected. + unverified = "unverified" #: The associated Compute Node agent SKU should have binary compatibility with the Image, but specific functionality has not been verified. + + +class AccessScope(str, Enum): + + job = "job" #: Grants access to perform all operations on the Job containing the Task. + + +class CertificateState(str, Enum): + + active = "active" #: The Certificate is available for use in Pools. + deleting = "deleting" #: The user has requested that the Certificate be deleted, but the delete operation has not yet completed. You may not reference the Certificate when creating or updating Pools. + delete_failed = "deletefailed" #: The user requested that the Certificate be deleted, but there are Pools that still have references to the Certificate, or it is still installed on one or more Nodes. (The latter can occur if the Certificate has been removed from the Pool, but the Compute Node has not yet restarted. Compute Nodes refresh their Certificates only when they restart.) You may use the cancel Certificate delete operation to cancel the delete, or the delete Certificate operation to retry the delete. + + +class CertificateFormat(str, Enum): + + pfx = "pfx" #: The Certificate is a PFX (PKCS#12) formatted Certificate or Certificate chain. + cer = "cer" #: The Certificate is a base64-encoded X.509 Certificate. + + +class ContainerWorkingDirectory(str, Enum): + + task_working_directory = "taskWorkingDirectory" #: Use the standard Batch service Task working directory, which will contain the Task Resource Files populated by Batch. + container_image_default = "containerImageDefault" #: Use the working directory defined in the container Image. Beware that this directory will not contain the Resource Files downloaded by Batch. + + +class JobAction(str, Enum): + + none = "none" #: Take no action. + disable = "disable" #: Disable the Job. This is equivalent to calling the disable Job API, with a disableTasks value of requeue. + terminate = "terminate" #: Terminate the Job. The terminateReason in the Job's executionInfo is set to "TaskFailed". + + +class DependencyAction(str, Enum): + + satisfy = "satisfy" #: Satisfy the Task's dependencies. + block = "block" #: Block the Task's dependencies. + + +class AutoUserScope(str, Enum): + + task = "task" #: Specifies that the service should create a new user for the Task. + pool = "pool" #: Specifies that the Task runs as the common auto user Account which is created on every Compute Node in a Pool. + + +class ElevationLevel(str, Enum): + + non_admin = "nonadmin" #: The user is a standard user without elevated access. + admin = "admin" #: The user is a user with elevated access and operates with full Administrator permissions. + + +class LoginMode(str, Enum): + + batch = "batch" #: The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes. + interactive = "interactive" #: The LOGON32_LOGON_INTERACTIVE Win32 login mode. UAC is enabled on Windows VirtualMachineConfiguration Pools. If this option is used with an elevated user identity in a Windows VirtualMachineConfiguration Pool, the user session will not be elevated unless the application executed by the Task command line is configured to always require administrative privilege or to always require maximum privilege. + + +class OutputFileUploadCondition(str, Enum): + + task_success = "tasksuccess" #: Upload the file(s) only after the Task process exits with an exit code of 0. + task_failure = "taskfailure" #: Upload the file(s) only after the Task process exits with a nonzero exit code. + task_completion = "taskcompletion" #: Upload the file(s) after the Task process exits, no matter what the exit code was. + + +class ComputeNodeFillType(str, Enum): + + spread = "spread" #: Tasks should be assigned evenly across all Compute Nodes in the Pool. + pack = "pack" #: As many Tasks as possible (maxTasksPerNode) should be assigned to each Compute Node in the Pool before any Tasks are assigned to the next Compute Node in the Pool. + + +class CertificateStoreLocation(str, Enum): + + current_user = "currentuser" #: Certificates should be installed to the CurrentUser Certificate store. + local_machine = "localmachine" #: Certificates should be installed to the LocalMachine Certificate store. + + +class CertificateVisibility(str, Enum): + + start_task = "starttask" #: The Certificate should be visible to the user Account under which the start Task is run. + task = "task" #: The Certificate should be visible to the user Accounts under which Job Tasks are run. + remote_user = "remoteuser" #: The Certificate should be visible to the user Accounts under which users remotely access the Compute Node. + + +class CachingType(str, Enum): + + none = "none" #: The caching mode for the disk is not enabled. + read_only = "readonly" #: The caching mode for the disk is read only. + read_write = "readwrite" #: The caching mode for the disk is read and write. + + +class StorageAccountType(str, Enum): + + standard_lrs = "standard_lrs" #: The data disk should use standard locally redundant storage. + premium_lrs = "premium_lrs" #: The data disk should use premium locally redundant storage. + + +class DynamicVNetAssignmentScope(str, Enum): + + none = "none" #: No dynamic VNet assignment is enabled. + job = "job" #: Dynamic VNet assignment is done per-job. + + +class InboundEndpointProtocol(str, Enum): + + tcp = "tcp" #: Use TCP for the endpoint. + udp = "udp" #: Use UDP for the endpoint. + + +class NetworkSecurityGroupRuleAccess(str, Enum): + + allow = "allow" #: Allow access. + deny = "deny" #: Deny access. + + +class PoolLifetimeOption(str, Enum): + + job_schedule = "jobschedule" #: The Pool exists for the lifetime of the Job Schedule. The Batch Service creates the Pool when it creates the first Job on the schedule. You may apply this option only to Job Schedules, not to Jobs. + job = "job" #: The Pool exists for the lifetime of the Job to which it is dedicated. The Batch service creates the Pool when it creates the Job. If the 'job' option is applied to a Job Schedule, the Batch service creates a new auto Pool for every Job created on the schedule. + + +class OnAllTasksComplete(str, Enum): + + no_action = "noaction" #: Do nothing. The Job remains active unless terminated or disabled by some other means. + terminate_job = "terminatejob" #: Terminate the Job. The Job's terminateReason is set to 'AllTasksComplete'. + + +class OnTaskFailure(str, Enum): + + no_action = "noaction" #: Do nothing. The Job remains active unless terminated or disabled by some other means. + perform_exit_options_job_action = "performexitoptionsjobaction" #: Take the action associated with the Task exit condition in the Task's exitConditions collection. (This may still result in no action being taken, if that is what the Task specifies.) + + +class JobScheduleState(str, Enum): + + active = "active" #: The Job Schedule is active and will create Jobs as per its schedule. + completed = "completed" #: The Job Schedule has terminated, either by reaching its end time or by the user terminating it explicitly. + disabled = "disabled" #: The user has disabled the Job Schedule. The scheduler will not initiate any new Jobs will on this schedule, but any existing active Job will continue to run. + terminating = "terminating" #: The Job Schedule has no more work to do, or has been explicitly terminated by the user, but the termination operation is still in progress. The scheduler will not initiate any new Jobs for this Job Schedule, nor is any existing Job active. + deleting = "deleting" #: The user has requested that the Job Schedule be deleted, but the delete operation is still in progress. The scheduler will not initiate any new Jobs for this Job Schedule, and will delete any existing Jobs and Tasks under the Job Schedule, including any active Job. The Job Schedule will be deleted when all Jobs and Tasks under the Job Schedule have been deleted. + + +class ErrorCategory(str, Enum): + + user_error = "usererror" #: The error is due to a user issue, such as misconfiguration. + server_error = "servererror" #: The error is due to an internal server issue. + + +class JobState(str, Enum): + + active = "active" #: The Job is available to have Tasks scheduled. + disabling = "disabling" #: A user has requested that the Job be disabled, but the disable operation is still in progress (for example, waiting for Tasks to terminate). + disabled = "disabled" #: A user has disabled the Job. No Tasks are running, and no new Tasks will be scheduled. + enabling = "enabling" #: A user has requested that the Job be enabled, but the enable operation is still in progress. + terminating = "terminating" #: The Job is about to complete, either because a Job Manager Task has completed or because the user has terminated the Job, but the terminate operation is still in progress (for example, because Job Release Tasks are running). + completed = "completed" #: All Tasks have terminated, and the system will not accept any more Tasks or any further changes to the Job. + deleting = "deleting" #: A user has requested that the Job be deleted, but the delete operation is still in progress (for example, because the system is still terminating running Tasks). + + +class JobPreparationTaskState(str, Enum): + + running = "running" #: The Task is currently running (including retrying). + completed = "completed" #: The Task has exited with exit code 0, or the Task has exhausted its retry limit, or the Batch service was unable to start the Task due to Task preparation errors (such as resource file download failures). + + +class TaskExecutionResult(str, Enum): + + success = "success" #: The Task ran successfully. + failure = "failure" #: There was an error during processing of the Task. The failure may have occurred before the Task process was launched, while the Task process was executing, or after the Task process exited. + + +class JobReleaseTaskState(str, Enum): + + running = "running" #: The Task is currently running (including retrying). + completed = "completed" #: The Task has exited with exit code 0, or the Task has exhausted its retry limit, or the Batch service was unable to start the Task due to Task preparation errors (such as resource file download failures). + + +class PoolState(str, Enum): + + active = "active" #: The Pool is available to run Tasks subject to the availability of Compute Nodes. + deleting = "deleting" #: The user has requested that the Pool be deleted, but the delete operation has not yet completed. + + +class AllocationState(str, Enum): + + steady = "steady" #: The Pool is not resizing. There are no changes to the number of Compute Nodes in the Pool in progress. A Pool enters this state when it is created and when no operations are being performed on the Pool to change the number of Compute Nodes. + resizing = "resizing" #: The Pool is resizing; that is, Compute Nodes are being added to or removed from the Pool. + stopping = "stopping" #: The Pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed. + + +class TaskState(str, Enum): + + active = "active" #: The Task is queued and able to run, but is not currently assigned to a Compute Node. A Task enters this state when it is created, when it is enabled after being disabled, or when it is awaiting a retry after a failed run. + preparing = "preparing" #: The Task has been assigned to a Compute Node, but is waiting for a required Job Preparation Task to complete on the Compute Node. If the Job Preparation Task succeeds, the Task will move to running. If the Job Preparation Task fails, the Task will return to active and will be eligible to be assigned to a different Compute Node. + running = "running" #: The Task is running on a Compute Node. This includes task-level preparation such as downloading resource files or deploying Packages specified on the Task - it does not necessarily mean that the Task command line has started executing. + completed = "completed" #: The Task is no longer eligible to run, usually because the Task has finished successfully, or the Task has finished unsuccessfully and has exhausted its retry limit. A Task is also marked as completed if an error occurred launching the Task, or when the Task has been terminated. + + +class TaskAddStatus(str, Enum): + + success = "success" #: The Task was added successfully. + client_error = "clienterror" #: The Task failed to add due to a client error and should not be retried without modifying the request as appropriate. + server_error = "servererror" #: Task failed to add due to a server error and can be retried without modification. + + +class SubtaskState(str, Enum): + + preparing = "preparing" #: The Task has been assigned to a Compute Node, but is waiting for a required Job Preparation Task to complete on the Compute Node. If the Job Preparation Task succeeds, the Task will move to running. If the Job Preparation Task fails, the Task will return to active and will be eligible to be assigned to a different Compute Node. + running = "running" #: The Task is running on a Compute Node. This includes task-level preparation such as downloading resource files or deploying Packages specified on the Task - it does not necessarily mean that the Task command line has started executing. + completed = "completed" #: The Task is no longer eligible to run, usually because the Task has finished successfully, or the Task has finished unsuccessfully and has exhausted its retry limit. A Task is also marked as completed if an error occurred launching the Task, or when the Task has been terminated. + + +class StartTaskState(str, Enum): + + running = "running" #: The start Task is currently running. + completed = "completed" #: The start Task has exited with exit code 0, or the start Task has failed and the retry limit has reached, or the start Task process did not run due to Task preparation errors (such as resource file download failures). + + +class ComputeNodeState(str, Enum): + + idle = "idle" #: The Compute Node is not currently running a Task. + rebooting = "rebooting" #: The Compute Node is rebooting. + reimaging = "reimaging" #: The Compute Node is reimaging. + running = "running" #: The Compute Node is running one or more Tasks (other than a start task). + unusable = "unusable" #: The Compute Node cannot be used for Task execution due to errors. + creating = "creating" #: The Batch service has obtained the underlying virtual machine from Azure Compute, but it has not yet started to join the Pool. + starting = "starting" #: The Batch service is starting on the underlying virtual machine. + waiting_for_start_task = "waitingforstarttask" #: The start Task has started running on the Compute Node, but waitForSuccess is set and the start Task has not yet completed. + start_task_failed = "starttaskfailed" #: The start Task has failed on the Compute Node (and exhausted all retries), and waitForSuccess is set. The Compute Node is not usable for running Tasks. + unknown = "unknown" #: The Batch service has lost contact with the Compute Node, and does not know its true state. + leaving_pool = "leavingpool" #: The Compute Node is leaving the Pool, either because the user explicitly removed it or because the Pool is resizing or autoscaling down. + offline = "offline" #: The Compute Node is not currently running a Task, and scheduling of new Tasks to the Compute Node is disabled. + preempted = "preempted" #: The low-priority Compute Node has been preempted. Tasks which were running on the Compute Node when it was preempted will be rescheduled when another Compute Node becomes available. + + +class SchedulingState(str, Enum): + + enabled = "enabled" #: Tasks can be scheduled on the Compute Node. + disabled = "disabled" #: No new Tasks will be scheduled on the Compute Node. Tasks already running on the Compute Node may still run to completion. All Compute Nodes start with scheduling enabled. + + +class DisableJobOption(str, Enum): + + requeue = "requeue" #: Terminate running Tasks and requeue them. The Tasks will run again when the Job is enabled. + terminate = "terminate" #: Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. + wait = "wait" #: Allow currently running Tasks to complete. + + +class ComputeNodeDeallocationOption(str, Enum): + + requeue = "requeue" #: Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Remove Compute Nodes as soon as Tasks have been terminated. + terminate = "terminate" #: Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove Compute Nodes as soon as Tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Remove Compute Nodes when all Tasks have completed. + retained_data = "retaineddata" #: Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Remove Compute Nodes when all Task retention periods have expired. + + +class ComputeNodeRebootOption(str, Enum): + + requeue = "requeue" #: Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Restart the Compute Node as soon as Tasks have been terminated. + terminate = "terminate" #: Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Restart the Compute Node as soon as Tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Restart the Compute Node when all Tasks have completed. + retained_data = "retaineddata" #: Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Restart the Compute Node when all Task retention periods have expired. + + +class ComputeNodeReimageOption(str, Enum): + + requeue = "requeue" #: Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Reimage the Compute Node as soon as Tasks have been terminated. + terminate = "terminate" #: Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Reimage the Compute Node as soon as Tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Reimage the Compute Node when all Tasks have completed. + retained_data = "retaineddata" #: Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Reimage the Compute Node when all Task retention periods have expired. + + +class DisableComputeNodeSchedulingOption(str, Enum): + + requeue = "requeue" #: Terminate running Task processes and requeue the Tasks. The Tasks may run again on other Compute Nodes, or when Task scheduling is re-enabled on this Compute Node. Enter offline state as soon as Tasks have been terminated. + terminate = "terminate" #: Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Enter offline state as soon as Tasks have been terminated. + task_completion = "taskcompletion" #: Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Enter offline state when all Tasks have completed. diff --git a/azext/batch/_vendor/v5/azure/batch/models/_models.py b/azext/batch/_vendor/v5/azure/batch/models/_models.py new file mode 100644 index 00000000..872e9453 --- /dev/null +++ b/azext/batch/_vendor/v5/azure/batch/models/_models.py @@ -0,0 +1,10458 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ....msrest.serialization import Model +from ....msrest.exceptions import HttpOperationError + + +class AccountListPoolNodeCountsOptions(Model): + """Additional parameters for list_pool_node_counts operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. + :type filter: str + :param max_results: The maximum number of items to return in the response. + Default value: 10 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(AccountListPoolNodeCountsOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 10) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class AccountListSupportedImagesOptions(Model): + """Additional parameters for list_supported_images operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(AccountListSupportedImagesOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class AffinityInformation(Model): + """A locality hint that can be used by the Batch service to select a Compute + Node on which to start a Task. + + All required parameters must be populated in order to send to Azure. + + :param affinity_id: Required. An opaque string representing the location + of a Compute Node or a Task that has run previously. You can pass the + affinityId of a Node to indicate that this Task needs to run on that + Compute Node. Note that this is just a soft affinity. If the target + Compute Node is busy or unavailable at the time the Task is scheduled, + then the Task will be scheduled elsewhere. + :type affinity_id: str + """ + + _validation = { + 'affinity_id': {'required': True}, + } + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AffinityInformation, self).__init__(**kwargs) + self.affinity_id = kwargs.get('affinity_id', None) + + +class ApplicationGetOptions(Model): + """Additional parameters for get operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ApplicationGetOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ApplicationListOptions(Model): + """Additional parameters for list operation. + + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 applications can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ApplicationListOptions, self).__init__(**kwargs) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ApplicationPackageReference(Model): + """A reference to an Package to be deployed to Compute Nodes. + + All required parameters must be populated in order to send to Azure. + + :param application_id: Required. The ID of the application to deploy. + :type application_id: str + :param version: The version of the application to deploy. If omitted, the + default version is deployed. If this is omitted on a Pool, and no default + version is specified for this application, the request fails with the + error code InvalidApplicationPackageReferences and HTTP status code 409. + If this is omitted on a Task, and no default version is specified for this + application, the Task fails with a pre-processing error. + :type version: str + """ + + _validation = { + 'application_id': {'required': True}, + } + + _attribute_map = { + 'application_id': {'key': 'applicationId', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ApplicationPackageReference, self).__init__(**kwargs) + self.application_id = kwargs.get('application_id', None) + self.version = kwargs.get('version', None) + + +class ApplicationSummary(Model): + """Contains information about an application in an Azure Batch Account. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the application + within the Account. + :type id: str + :param display_name: Required. The display name for the application. + :type display_name: str + :param versions: Required. The list of available versions of the + application. + :type versions: list[str] + """ + + _validation = { + 'id': {'required': True}, + 'display_name': {'required': True}, + 'versions': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'versions': {'key': 'versions', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(ApplicationSummary, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.versions = kwargs.get('versions', None) + + +class AuthenticationTokenSettings(Model): + """The settings for an authentication token that the Task can use to perform + Batch service operations. + + :param access: The Batch resources to which the token grants access. The + authentication token grants access to a limited set of Batch service + operations. Currently the only supported value for the access property is + 'job', which grants access to all operations related to the Job which + contains the Task. + :type access: list[str or ~azure.batch.models.AccessScope] + """ + + _attribute_map = { + 'access': {'key': 'access', 'type': '[AccessScope]'}, + } + + def __init__(self, **kwargs): + super(AuthenticationTokenSettings, self).__init__(**kwargs) + self.access = kwargs.get('access', None) + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto Pool when the Job is submitted. + + All required parameters must be populated in order to send to Azure. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a Pool is automatically created. The Batch service assigns each auto + Pool a unique identifier on creation. To distinguish between Pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: Required. The minimum lifetime of created + auto Pools, and how multiple Jobs on a schedule are assigned to Pools. + Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or ~azure.batch.models.PoolLifetimeOption + :param keep_alive: Whether to keep an auto Pool alive after its lifetime + expires. If false, the Batch service deletes the Pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the Job or Job Schedule completes. If true, the Batch service does not + delete the Pool automatically. It is up to the user to delete auto Pools + created with this option. + :type keep_alive: bool + :param pool: The Pool specification for the auto Pool. + :type pool: ~azure.batch.models.PoolSpecification + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'PoolSpecification'}, + } + + def __init__(self, **kwargs): + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = kwargs.get('auto_pool_id_prefix', None) + self.pool_lifetime_option = kwargs.get('pool_lifetime_option', None) + self.keep_alive = kwargs.get('keep_alive', None) + self.pool = kwargs.get('pool', None) + + +class AutoScaleRun(Model): + """The results and errors from an execution of a Pool autoscale formula. + + All required parameters must be populated in order to send to Azure. + + :param timestamp: Required. The time at which the autoscale formula was + last evaluated. + :type timestamp: datetime + :param results: The final values of all variables used in the evaluation + of the autoscale formula. Each variable value is returned in the form + $variable=value, and variables are separated by semicolons. + :type results: str + :param error: Details of the error encountered evaluating the autoscale + formula on the Pool, if the evaluation was unsuccessful. + :type error: ~azure.batch.models.AutoScaleRunError + """ + + _validation = { + 'timestamp': {'required': True}, + } + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'results': {'key': 'results', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'AutoScaleRunError'}, + } + + def __init__(self, **kwargs): + super(AutoScaleRun, self).__init__(**kwargs) + self.timestamp = kwargs.get('timestamp', None) + self.results = kwargs.get('results', None) + self.error = kwargs.get('error', None) + + +class AutoScaleRunError(Model): + """An error that occurred when executing or evaluating a Pool autoscale + formula. + + :param code: An identifier for the autoscale error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the autoscale error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the autoscale + error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(AutoScaleRunError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) + + +class AutoUserSpecification(Model): + """Specifies the parameters for the auto user that runs a Task on the Batch + service. + + :param scope: The scope for the auto user. The default value is Task. + Possible values include: 'task', 'pool' + :type scope: str or ~azure.batch.models.AutoUserScope + :param elevation_level: The elevation level of the auto user. The default + value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + """ + + _attribute_map = { + 'scope': {'key': 'scope', 'type': 'AutoUserScope'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + } + + def __init__(self, **kwargs): + super(AutoUserSpecification, self).__init__(**kwargs) + self.scope = kwargs.get('scope', None) + self.elevation_level = kwargs.get('elevation_level', None) + + +class BatchError(Model): + """An error response received from the Azure Batch service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: ~azure.batch.models.ErrorMessage + :param values: A collection of key-value pairs containing additional + details about the error. + :type values: list[~azure.batch.models.BatchErrorDetail] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'ErrorMessage'}, + 'values': {'key': 'values', 'type': '[BatchErrorDetail]'}, + } + + def __init__(self, **kwargs): + super(BatchError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) + + +class BatchErrorException(HttpOperationError): + """Server responsed with exception of type: 'BatchError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(BatchErrorException, self).__init__(deserialize, response, 'BatchError', *args) + + +class BatchErrorDetail(Model): + """An item of additional information included in an Azure Batch error + response. + + :param key: An identifier specifying the meaning of the Value property. + :type key: str + :param value: The additional information included with the error response. + :type value: str + """ + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(BatchErrorDetail, self).__init__(**kwargs) + self.key = kwargs.get('key', None) + self.value = kwargs.get('value', None) + + +class Certificate(Model): + """A Certificate that can be installed on Compute Nodes and can be used to + authenticate operations on the machine. + + :param thumbprint: The X.509 thumbprint of the Certificate. This is a + sequence of up to 40 hex digits. + :type thumbprint: str + :param thumbprint_algorithm: The algorithm used to derive the thumbprint. + :type thumbprint_algorithm: str + :param url: The URL of the Certificate. + :type url: str + :param state: The current state of the Certificate. Possible values + include: 'active', 'deleting', 'deleteFailed' + :type state: str or ~azure.batch.models.CertificateState + :param state_transition_time: The time at which the Certificate entered + its current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Certificate. This + property is not set if the Certificate is in its initial active state. + Possible values include: 'active', 'deleting', 'deleteFailed' + :type previous_state: str or ~azure.batch.models.CertificateState + :param previous_state_transition_time: The time at which the Certificate + entered its previous state. This property is not set if the Certificate is + in its initial Active state. + :type previous_state_transition_time: datetime + :param public_data: The public part of the Certificate as a base-64 + encoded .cer file. + :type public_data: str + :param delete_certificate_error: The error that occurred on the last + attempt to delete this Certificate. This property is set only if the + Certificate is in the DeleteFailed state. + :type delete_certificate_error: ~azure.batch.models.DeleteCertificateError + """ + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'CertificateState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'CertificateState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'public_data': {'key': 'publicData', 'type': 'str'}, + 'delete_certificate_error': {'key': 'deleteCertificateError', 'type': 'DeleteCertificateError'}, + } + + def __init__(self, **kwargs): + super(Certificate, self).__init__(**kwargs) + self.thumbprint = kwargs.get('thumbprint', None) + self.thumbprint_algorithm = kwargs.get('thumbprint_algorithm', None) + self.url = kwargs.get('url', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.public_data = kwargs.get('public_data', None) + self.delete_certificate_error = kwargs.get('delete_certificate_error', None) + + +class CertificateAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class CertificateAddParameter(Model): + """A Certificate that can be installed on Compute Nodes and can be used to + authenticate operations on the machine. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The X.509 thumbprint of the Certificate. This + is a sequence of up to 40 hex digits (it may include spaces but these are + removed). + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm used to derive the + thumbprint. This must be sha1. + :type thumbprint_algorithm: str + :param data: Required. The base64-encoded contents of the Certificate. The + maximum size is 10KB. + :type data: str + :param certificate_format: The format of the Certificate data. Possible + values include: 'pfx', 'cer' + :type certificate_format: str or ~azure.batch.models.CertificateFormat + :param password: The password to access the Certificate's private key. + This is required if the Certificate format is pfx. It should be omitted if + the Certificate format is cer. + :type password: str + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + 'data': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'data': {'key': 'data', 'type': 'str'}, + 'certificate_format': {'key': 'certificateFormat', 'type': 'CertificateFormat'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CertificateAddParameter, self).__init__(**kwargs) + self.thumbprint = kwargs.get('thumbprint', None) + self.thumbprint_algorithm = kwargs.get('thumbprint_algorithm', None) + self.data = kwargs.get('data', None) + self.certificate_format = kwargs.get('certificate_format', None) + self.password = kwargs.get('password', None) + + +class CertificateCancelDeletionOptions(Model): + """Additional parameters for cancel_deletion operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateCancelDeletionOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class CertificateDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class CertificateGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class CertificateListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Certificates can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(CertificateListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class CertificateReference(Model): + """A reference to a Certificate to be installed on Compute Nodes in a Pool. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The thumbprint of the Certificate. + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm with which the + thumbprint is associated. This must be sha1. + :type thumbprint_algorithm: str + :param store_location: The location of the Certificate store on the + Compute Node into which to install the Certificate. The default value is + currentuser. This property is applicable only for Pools configured with + Windows Compute Nodes (that is, created with cloudServiceConfiguration, or + with virtualMachineConfiguration using a Windows Image reference). For + Linux Compute Nodes, the Certificates are stored in a directory inside the + Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + Possible values include: 'currentUser', 'localMachine' + :type store_location: str or ~azure.batch.models.CertificateStoreLocation + :param store_name: The name of the Certificate store on the Compute Node + into which to install the Certificate. This property is applicable only + for Pools configured with Windows Compute Nodes (that is, created with + cloudServiceConfiguration, or with virtualMachineConfiguration using a + Windows Image reference). Common store names include: My, Root, CA, Trust, + Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but + any custom store name can also be used. The default value is My. + :type store_name: str + :param visibility: Which user Accounts on the Compute Node should have + access to the private data of the Certificate. You can specify more than + one visibility in this collection. The default is all Accounts. + :type visibility: list[str or ~azure.batch.models.CertificateVisibility] + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'store_location': {'key': 'storeLocation', 'type': 'CertificateStoreLocation'}, + 'store_name': {'key': 'storeName', 'type': 'str'}, + 'visibility': {'key': 'visibility', 'type': '[CertificateVisibility]'}, + } + + def __init__(self, **kwargs): + super(CertificateReference, self).__init__(**kwargs) + self.thumbprint = kwargs.get('thumbprint', None) + self.thumbprint_algorithm = kwargs.get('thumbprint_algorithm', None) + self.store_location = kwargs.get('store_location', None) + self.store_name = kwargs.get('store_name', None) + self.visibility = kwargs.get('visibility', None) + + +class CloudError(Model): + """CloudError. + """ + + _attribute_map = { + } + + +class CloudJob(Model): + """An Azure Batch Job. + + :param id: A string that uniquely identifies the Job within the Account. + The ID is case-preserving and case-insensitive (that is, you may not have + two IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Job. + :type display_name: str + :param uses_task_dependencies: Whether Tasks in the Job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param url: The URL of the Job. + :type url: str + :param e_tag: The ETag of the Job. This is an opaque string. You can use + it to detect whether the Job has changed between requests. In particular, + you can be pass the ETag when updating a Job to specify that your changes + should take effect only if nobody else has modified the Job in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the Job. This is the last + time at which the Job level data, such as the Job state or priority, + changed. It does not factor in task-level changes such as adding new Tasks + or Tasks changing state. + :type last_modified: datetime + :param creation_time: The creation time of the Job. + :type creation_time: datetime + :param state: The current state of the Job. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type state: str or ~azure.batch.models.JobState + :param state_transition_time: The time at which the Job entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Job. This property is not + set if the Job is in its initial Active state. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type previous_state: str or ~azure.batch.models.JobState + :param previous_state_transition_time: The time at which the Job entered + its previous state. This property is not set if the Job is in its initial + Active state. + :type previous_state_transition_time: datetime + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the Job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager Task to be launched when + the Job is started. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation Task. The Job Preparation + Task is a special Task run on each Compute Node before any other Task of + the Job. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release Task. The Job Release Task is a + special Task run at the end of the Job on each Compute Node that has run + any other Task of the Job. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all Tasks in + the Job (including the Job Manager, Job Preparation and Job Release + Tasks). Individual Tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: The Pool settings associated with the Job. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. The default is + noaction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + Task in the Job fails. A Task is considered to have failed if has a + failureInfo. A failureInfo is set if the Task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the Task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param network_configuration: The network configuration for the Job. + :type network_configuration: ~azure.batch.models.JobNetworkConfiguration + :param metadata: A list of name-value pairs associated with the Job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param execution_info: The execution information for the Job. + :type execution_info: ~azure.batch.models.JobExecutionInformation + :param stats: Resource usage statistics for the entire lifetime of the + Job. This property is populated only if the CloudJob was retrieved with an + expand clause including the 'stats' attribute; otherwise it is null. The + statistics may not be immediately available. The Batch service performs + periodic roll-up of statistics. The typical delay is about 30 minutes. + :type stats: ~azure.batch.models.JobStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'JobNetworkConfiguration'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobExecutionInformation'}, + 'stats': {'key': 'stats', 'type': 'JobStatistics'}, + } + + def __init__(self, **kwargs): + super(CloudJob, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.priority = kwargs.get('priority', None) + self.constraints = kwargs.get('constraints', None) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.pool_info = kwargs.get('pool_info', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.metadata = kwargs.get('metadata', None) + self.execution_info = kwargs.get('execution_info', None) + self.stats = kwargs.get('stats', None) + + +class CloudJobSchedule(Model): + """A Job Schedule that allows recurring Jobs by specifying when to run Jobs + and a specification used to create each Job. + + :param id: A string that uniquely identifies the schedule within the + Account. + :type id: str + :param display_name: The display name for the schedule. + :type display_name: str + :param url: The URL of the Job Schedule. + :type url: str + :param e_tag: The ETag of the Job Schedule. This is an opaque string. You + can use it to detect whether the Job Schedule has changed between + requests. In particular, you can be pass the ETag with an Update Job + Schedule request to specify that your changes should take effect only if + nobody else has modified the schedule in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the Job Schedule. This is + the last time at which the schedule level data, such as the Job + specification or recurrence information, changed. It does not factor in + job-level changes such as new Jobs being created or Jobs changing state. + :type last_modified: datetime + :param creation_time: The creation time of the Job Schedule. + :type creation_time: datetime + :param state: The current state of the Job Schedule. Possible values + include: 'active', 'completed', 'disabled', 'terminating', 'deleting' + :type state: str or ~azure.batch.models.JobScheduleState + :param state_transition_time: The time at which the Job Schedule entered + the current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Job Schedule. This + property is not present if the Job Schedule is in its initial active + state. Possible values include: 'active', 'completed', 'disabled', + 'terminating', 'deleting' + :type previous_state: str or ~azure.batch.models.JobScheduleState + :param previous_state_transition_time: The time at which the Job Schedule + entered its previous state. This property is not present if the Job + Schedule is in its initial active state. + :type previous_state_transition_time: datetime + :param schedule: The schedule according to which Jobs will be created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the Jobs to be created on this + schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param execution_info: Information about Jobs that have been and will be + run under this schedule. + :type execution_info: ~azure.batch.models.JobScheduleExecutionInformation + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: The lifetime resource usage statistics for the Job Schedule. + The statistics may not be immediately available. The Batch service + performs periodic roll-up of statistics. The typical delay is about 30 + minutes. + :type stats: ~azure.batch.models.JobScheduleStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobScheduleState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobScheduleState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobScheduleExecutionInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'JobScheduleStatistics'}, + } + + def __init__(self, **kwargs): + super(CloudJobSchedule, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.execution_info = kwargs.get('execution_info', None) + self.metadata = kwargs.get('metadata', None) + self.stats = kwargs.get('stats', None) + + +class CloudPool(Model): + """A Pool in the Azure Batch service. + + :param id: A string that uniquely identifies the Pool within the Account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the Pool. + :type url: str + :param e_tag: The ETag of the Pool. This is an opaque string. You can use + it to detect whether the Pool has changed between requests. In particular, + you can be pass the ETag when updating a Pool to specify that your changes + should take effect only if nobody else has modified the Pool in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the Pool. This is the last + time at which the Pool level data, such as the targetDedicatedNodes or + enableAutoscale settings, changed. It does not factor in node-level + changes such as a Compute Node changing state. + :type last_modified: datetime + :param creation_time: The creation time of the Pool. + :type creation_time: datetime + :param state: The current state of the Pool. Possible values include: + 'active', 'deleting' + :type state: str or ~azure.batch.models.PoolState + :param state_transition_time: The time at which the Pool entered its + current state. + :type state_transition_time: datetime + :param allocation_state: Whether the Pool is resizing. Possible values + include: 'steady', 'resizing', 'stopping' + :type allocation_state: str or ~azure.batch.models.AllocationState + :param allocation_state_transition_time: The time at which the Pool + entered its current allocation state. + :type allocation_state_transition_time: datetime + :param vm_size: The size of virtual machines in the Pool. All virtual + machines in a Pool are the same size. For information about available + sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes + in an Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the Pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch Account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the Pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of Compute Nodes to the + Pool. This is the timeout for the most recent resize operation. (The + initial sizing when the Pool is created counts as a resize.) The default + value is 15 minutes. + :type resize_timeout: timedelta + :param resize_errors: A list of errors encountered while performing the + last resize on the Pool. This property is set only if one or more errors + occurred during the last Pool resize, and only when the Pool + allocationState is Steady. + :type resize_errors: list[~azure.batch.models.ResizeError] + :param current_dedicated_nodes: The number of dedicated Compute Nodes + currently in the Pool. + :type current_dedicated_nodes: int + :param current_low_priority_nodes: The number of low-priority Compute + Nodes currently in the Pool. Low-priority Compute Nodes which have been + preempted are included in this count. + :type current_low_priority_nodes: int + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the Pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the Pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of Compute + Nodes in the Pool. This property is set only if the Pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. + This property is set only if the Pool automatically scales, i.e. + enableAutoScale is true. + :type auto_scale_evaluation_interval: timedelta + :param auto_scale_run: The results and errors from the last execution of + the autoscale formula. This property is set only if the Pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_run: ~azure.batch.models.AutoScaleRun + :param enable_inter_node_communication: Whether the Pool permits direct + communication between Compute Nodes. This imposes restrictions on which + Compute Nodes can be assigned to the Pool. Specifying this value can + reduce the chance of the requested number of Compute Nodes to be allocated + in the Pool. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the Pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A Task specified to run on each Compute Node as it + joins the Pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of Certificates to be installed on + each Compute Node in the Pool. For Windows Nodes, the Batch service + installs the Certificates to the specified Certificate store and location. + For Linux Compute Nodes, the Certificates are stored in a directory inside + the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of Packages to be + installed on each Compute Node in the Pool. Changes to Package references + affect all new Nodes joining the Pool, but do not affect Compute Nodes + that are already in the Pool until they are rebooted or reimaged. There is + a maximum of 10 Package references on any given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each Compute Node in the Pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + Pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of Tasks that can run + concurrently on a single Compute Node in the Pool. The default value is 1. + The maximum value is the smaller of 4 times the number of cores of the + vmSize of the Pool or 256. + :type max_tasks_per_node: int + :param task_scheduling_policy: How Tasks are distributed across Compute + Nodes in a Pool. If not specified, the default is spread. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user Accounts to be created on each + Compute Node in the Pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: Utilization and resource usage statistics for the entire + lifetime of the Pool. This property is populated only if the CloudPool was + retrieved with an expand clause including the 'stats' attribute; otherwise + it is null. The statistics may not be immediately available. The Batch + service performs periodic roll-up of statistics. The typical delay is + about 30 minutes. + :type stats: ~azure.batch.models.PoolStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'PoolState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'allocation_state': {'key': 'allocationState', 'type': 'AllocationState'}, + 'allocation_state_transition_time': {'key': 'allocationStateTransitionTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'resize_errors': {'key': 'resizeErrors', 'type': '[ResizeError]'}, + 'current_dedicated_nodes': {'key': 'currentDedicatedNodes', 'type': 'int'}, + 'current_low_priority_nodes': {'key': 'currentLowPriorityNodes', 'type': 'int'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'auto_scale_run': {'key': 'autoScaleRun', 'type': 'AutoScaleRun'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'PoolStatistics'}, + } + + def __init__(self, **kwargs): + super(CloudPool, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.allocation_state = kwargs.get('allocation_state', None) + self.allocation_state_transition_time = kwargs.get('allocation_state_transition_time', None) + self.vm_size = kwargs.get('vm_size', None) + self.cloud_service_configuration = kwargs.get('cloud_service_configuration', None) + self.virtual_machine_configuration = kwargs.get('virtual_machine_configuration', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.resize_errors = kwargs.get('resize_errors', None) + self.current_dedicated_nodes = kwargs.get('current_dedicated_nodes', None) + self.current_low_priority_nodes = kwargs.get('current_low_priority_nodes', None) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.enable_auto_scale = kwargs.get('enable_auto_scale', None) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + self.auto_scale_run = kwargs.get('auto_scale_run', None) + self.enable_inter_node_communication = kwargs.get('enable_inter_node_communication', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.application_licenses = kwargs.get('application_licenses', None) + self.max_tasks_per_node = kwargs.get('max_tasks_per_node', None) + self.task_scheduling_policy = kwargs.get('task_scheduling_policy', None) + self.user_accounts = kwargs.get('user_accounts', None) + self.metadata = kwargs.get('metadata', None) + self.stats = kwargs.get('stats', None) + + +class CloudServiceConfiguration(Model): + """The configuration for Compute Nodes in a Pool based on the Azure Cloud + Services platform. + + All required parameters must be populated in order to send to Azure. + + :param os_family: Required. The Azure Guest OS family to be installed on + the virtual machines in the Pool. Possible values are: + 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. + 3 - OS Family 3, equivalent to Windows Server 2012. + 4 - OS Family 4, equivalent to Windows Server 2012 R2. + 5 - OS Family 5, equivalent to Windows Server 2016. + 6 - OS Family 6, equivalent to Windows Server 2019. For more information, + see Azure Guest OS Releases + (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). + :type os_family: str + :param os_version: The Azure Guest OS version to be installed on the + virtual machines in the Pool. The default value is * which specifies the + latest operating system version for the specified OS family. + :type os_version: str + """ + + _validation = { + 'os_family': {'required': True}, + } + + _attribute_map = { + 'os_family': {'key': 'osFamily', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CloudServiceConfiguration, self).__init__(**kwargs) + self.os_family = kwargs.get('os_family', None) + self.os_version = kwargs.get('os_version', None) + + +class CloudTask(Model): + """An Azure Batch Task. + + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host + failure. Retries due to recovery operations are independent of and are not + counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, + an internal retry due to a recovery operation may occur. Because of this, + all Tasks should be idempotent. This means Tasks need to tolerate being + interrupted and restarted without causing any corruption or duplicate data. + The best practice for long running Tasks is to use some form of + checkpointing. + + :param id: A string that uniquely identifies the Task within the Job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. + :type id: str + :param display_name: A display name for the Task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the Task. + :type url: str + :param e_tag: The ETag of the Task. This is an opaque string. You can use + it to detect whether the Task has changed between requests. In particular, + you can be pass the ETag when updating a Task to specify that your changes + should take effect only if nobody else has modified the Task in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the Task. + :type last_modified: datetime + :param creation_time: The creation time of the Task. + :type creation_time: datetime + :param exit_conditions: How the Batch service should respond when the Task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param state: The current state of the Task. Possible values include: + 'active', 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.TaskState + :param state_transition_time: The time at which the Task entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Task. This property is + not set if the Task is in its initial Active state. Possible values + include: 'active', 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.TaskState + :param previous_state_transition_time: The time at which the Task entered + its previous state. This property is not set if the Task is in its initial + Active state. + :type previous_state_transition_time: datetime + :param command_line: The command line of the Task. For multi-instance + Tasks, the command line is executed as the primary Task, after the primary + Task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the Task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Task runs. If the Pool that will run this Task has containerConfiguration + set, this must be set as well. If the Pool that will run this Task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all Task environment variables are mapped into the container, + and the Task command line is executed in the container. Files produced in + the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to + the host disk, meaning that Batch file APIs will not be able to access + those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. For + multi-instance Tasks, the resource files will only be downloaded to the + Compute Node on which the primary Task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the Compute Node after running the command line. For multi-instance + Tasks, the files will only be uploaded from the Compute Node on which the + primary Task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a Compute Node on which to start the new Task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this Task. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the Task runs. If + omitted, the Task runs as a non-administrative user unique to the Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param execution_info: Information about the execution of the Task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + :param node_info: Information about the Compute Node on which the Task + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param multi_instance_settings: An object that indicates that the Task is + a multi-instance Task, and contains information about how to run the + multi-instance Task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param stats: Resource usage statistics for the Task. + :type stats: ~azure.batch.models.TaskStatistics + :param depends_on: The Tasks that this Task depends on. This Task will not + be scheduled until all Tasks that it depends on have completed + successfully. If any of those Tasks fail and exhaust their retry counts, + this Task will never be scheduled. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of Packages that the Batch + service will deploy to the Compute Node before running the command line. + Application packages are downloaded and deployed to a shared directory, + not the Task working directory. Therefore, if a referenced package is + already on the Node, and is up to date, then it is not re-downloaded; the + existing copy on the Compute Node is used. If a referenced Package cannot + be installed, for example because the package has been deleted or because + download failed, the Task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the Task can use to perform Batch service operations. If this + property is set, the Batch service provides the Task with an + authentication token which can be used to authenticate Batch service + operations without requiring an Account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the Task can carry out using the token depend on the settings. For + example, a Task can request Job permissions in order to add other Tasks to + the Job, or check the status of the Job or of other Tasks under the Job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'state': {'key': 'state', 'type': 'TaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'TaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'stats': {'key': 'stats', 'type': 'TaskStatistics'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, **kwargs): + super(CloudTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.url = kwargs.get('url', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.creation_time = kwargs.get('creation_time', None) + self.exit_conditions = kwargs.get('exit_conditions', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.execution_info = kwargs.get('execution_info', None) + self.node_info = kwargs.get('node_info', None) + self.multi_instance_settings = kwargs.get('multi_instance_settings', None) + self.stats = kwargs.get('stats', None) + self.depends_on = kwargs.get('depends_on', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + + +class CloudTaskListSubtasksResult(Model): + """The result of listing the subtasks of a Task. + + :param value: The list of subtasks. + :type value: list[~azure.batch.models.SubtaskInformation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SubtaskInformation]'}, + } + + def __init__(self, **kwargs): + super(CloudTaskListSubtasksResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class ComputeNode(Model): + """A Compute Node in the Batch service. + + :param id: The ID of the Compute Node. Every Compute Node that is added to + a Pool is assigned a unique ID. Whenever a Compute Node is removed from a + Pool, all of its local files are deleted, and the ID is reclaimed and + could be reused for new Compute Nodes. + :type id: str + :param url: The URL of the Compute Node. + :type url: str + :param state: The current state of the Compute Node. The low-priority + Compute Node has been preempted. Tasks which were running on the Compute + Node when it was preempted will be rescheduled when another Compute Node + becomes available. Possible values include: 'idle', 'rebooting', + 'reimaging', 'running', 'unusable', 'creating', 'starting', + 'waitingForStartTask', 'startTaskFailed', 'unknown', 'leavingPool', + 'offline', 'preempted' + :type state: str or ~azure.batch.models.ComputeNodeState + :param scheduling_state: Whether the Compute Node is available for Task + scheduling. Possible values include: 'enabled', 'disabled' + :type scheduling_state: str or ~azure.batch.models.SchedulingState + :param state_transition_time: The time at which the Compute Node entered + its current state. + :type state_transition_time: datetime + :param last_boot_time: The last time at which the Compute Node was + started. This property may not be present if the Compute Node state is + unusable. + :type last_boot_time: datetime + :param allocation_time: The time at which this Compute Node was allocated + to the Pool. This is the time when the Compute Node was initially + allocated and doesn't change once set. It is not updated when the Compute + Node is service healed or preempted. + :type allocation_time: datetime + :param ip_address: The IP address that other Nodes can use to communicate + with this Compute Node. Every Compute Node that is added to a Pool is + assigned a unique IP address. Whenever a Compute Node is removed from a + Pool, all of its local files are deleted, and the IP address is reclaimed + and could be reused for new Compute Nodes. + :type ip_address: str + :param affinity_id: An identifier which can be passed when adding a Task + to request that the Task be scheduled on this Compute Node. Note that this + is just a soft affinity. If the target Compute Node is busy or unavailable + at the time the Task is scheduled, then the Task will be scheduled + elsewhere. + :type affinity_id: str + :param vm_size: The size of the virtual machine hosting the Compute Node. + For information about available sizes of virtual machines in Pools, see + Choose a VM size for Compute Nodes in an Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_tasks_run: The total number of Job Tasks completed on the + Compute Node. This includes Job Manager Tasks and normal Tasks, but not + Job Preparation, Job Release or Start Tasks. + :type total_tasks_run: int + :param running_tasks_count: The total number of currently running Job + Tasks on the Compute Node. This includes Job Manager Tasks and normal + Tasks, but not Job Preparation, Job Release or Start Tasks. + :type running_tasks_count: int + :param total_tasks_succeeded: The total number of Job Tasks which + completed successfully (with exitCode 0) on the Compute Node. This + includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job + Release or Start Tasks. + :type total_tasks_succeeded: int + :param recent_tasks: A list of Tasks whose state has recently changed. + This property is present only if at least one Task has run on this Compute + Node since it was assigned to the Pool. + :type recent_tasks: list[~azure.batch.models.TaskInformation] + :param start_task: The Task specified to run on the Compute Node as it + joins the Pool. + :type start_task: ~azure.batch.models.StartTask + :param start_task_info: Runtime information about the execution of the + start Task on the Compute Node. + :type start_task_info: ~azure.batch.models.StartTaskInformation + :param certificate_references: The list of Certificates installed on the + Compute Node. For Windows Nodes, the Batch service installs the + Certificates to the specified Certificate store and location. For Linux + Compute Nodes, the Certificates are stored in a directory inside the Task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the Task to query for this location. For Certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and Certificates are placed + in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param errors: The list of errors that are currently being encountered by + the Compute Node. + :type errors: list[~azure.batch.models.ComputeNodeError] + :param is_dedicated: Whether this Compute Node is a dedicated Compute + Node. If false, the Compute Node is a low-priority Compute Node. + :type is_dedicated: bool + :param endpoint_configuration: The endpoint configuration for the Compute + Node. + :type endpoint_configuration: + ~azure.batch.models.ComputeNodeEndpointConfiguration + :param node_agent_info: Information about the Compute Node agent version + and the time the Compute Node upgraded to a new version. + :type node_agent_info: ~azure.batch.models.NodeAgentInformation + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'ComputeNodeState'}, + 'scheduling_state': {'key': 'schedulingState', 'type': 'SchedulingState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'last_boot_time': {'key': 'lastBootTime', 'type': 'iso-8601'}, + 'allocation_time': {'key': 'allocationTime', 'type': 'iso-8601'}, + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_tasks_run': {'key': 'totalTasksRun', 'type': 'int'}, + 'running_tasks_count': {'key': 'runningTasksCount', 'type': 'int'}, + 'total_tasks_succeeded': {'key': 'totalTasksSucceeded', 'type': 'int'}, + 'recent_tasks': {'key': 'recentTasks', 'type': '[TaskInformation]'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'start_task_info': {'key': 'startTaskInfo', 'type': 'StartTaskInformation'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'errors': {'key': 'errors', 'type': '[ComputeNodeError]'}, + 'is_dedicated': {'key': 'isDedicated', 'type': 'bool'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'ComputeNodeEndpointConfiguration'}, + 'node_agent_info': {'key': 'nodeAgentInfo', 'type': 'NodeAgentInformation'}, + } + + def __init__(self, **kwargs): + super(ComputeNode, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.url = kwargs.get('url', None) + self.state = kwargs.get('state', None) + self.scheduling_state = kwargs.get('scheduling_state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.last_boot_time = kwargs.get('last_boot_time', None) + self.allocation_time = kwargs.get('allocation_time', None) + self.ip_address = kwargs.get('ip_address', None) + self.affinity_id = kwargs.get('affinity_id', None) + self.vm_size = kwargs.get('vm_size', None) + self.total_tasks_run = kwargs.get('total_tasks_run', None) + self.running_tasks_count = kwargs.get('running_tasks_count', None) + self.total_tasks_succeeded = kwargs.get('total_tasks_succeeded', None) + self.recent_tasks = kwargs.get('recent_tasks', None) + self.start_task = kwargs.get('start_task', None) + self.start_task_info = kwargs.get('start_task_info', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.errors = kwargs.get('errors', None) + self.is_dedicated = kwargs.get('is_dedicated', None) + self.endpoint_configuration = kwargs.get('endpoint_configuration', None) + self.node_agent_info = kwargs.get('node_agent_info', None) + + +class ComputeNodeAddUserOptions(Model): + """Additional parameters for add_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeAddUserOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeDeleteUserOptions(Model): + """Additional parameters for delete_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeDeleteUserOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeDisableSchedulingOptions(Model): + """Additional parameters for disable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeDisableSchedulingOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeEnableSchedulingOptions(Model): + """Additional parameters for enable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeEnableSchedulingOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeEndpointConfiguration(Model): + """The endpoint configuration for the Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param inbound_endpoints: Required. The list of inbound endpoints that are + accessible on the Compute Node. + :type inbound_endpoints: list[~azure.batch.models.InboundEndpoint] + """ + + _validation = { + 'inbound_endpoints': {'required': True}, + } + + _attribute_map = { + 'inbound_endpoints': {'key': 'inboundEndpoints', 'type': '[InboundEndpoint]'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeEndpointConfiguration, self).__init__(**kwargs) + self.inbound_endpoints = kwargs.get('inbound_endpoints', None) + + +class ComputeNodeError(Model): + """An error encountered by a Compute Node. + + :param code: An identifier for the Compute Node error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Compute Node error, intended to + be suitable for display in a user interface. + :type message: str + :param error_details: The list of additional error details related to the + Compute Node error. + :type error_details: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'error_details': {'key': 'errorDetails', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.error_details = kwargs.get('error_details', None) + + +class ComputeNodeGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeGetRemoteDesktopOptions(Model): + """Additional parameters for get_remote_desktop operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetRemoteDesktopOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeGetRemoteLoginSettingsOptions(Model): + """Additional parameters for get_remote_login_settings operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetRemoteLoginSettingsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeGetRemoteLoginSettingsResult(Model): + """The remote login settings for a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param remote_login_ip_address: Required. The IP address used for remote + login to the Compute Node. + :type remote_login_ip_address: str + :param remote_login_port: Required. The port used for remote login to the + Compute Node. + :type remote_login_port: int + """ + + _validation = { + 'remote_login_ip_address': {'required': True}, + 'remote_login_port': {'required': True}, + } + + _attribute_map = { + 'remote_login_ip_address': {'key': 'remoteLoginIPAddress', 'type': 'str'}, + 'remote_login_port': {'key': 'remoteLoginPort', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeGetRemoteLoginSettingsResult, self).__init__(**kwargs) + self.remote_login_ip_address = kwargs.get('remote_login_ip_address', None) + self.remote_login_port = kwargs.get('remote_login_port', None) + + +class ComputeNodeInformation(Model): + """Information about the Compute Node on which a Task ran. + + :param affinity_id: An identifier for the Node on which the Task ran, + which can be passed when adding a Task to request that the Task be + scheduled on this Compute Node. + :type affinity_id: str + :param node_url: The URL of the Compute Node on which the Task ran. . + :type node_url: str + :param pool_id: The ID of the Pool on which the Task ran. + :type pool_id: str + :param node_id: The ID of the Compute Node on which the Task ran. + :type node_id: str + :param task_root_directory: The root directory of the Task on the Compute + Node. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Task + on the Compute Node. + :type task_root_directory_url: str + """ + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeInformation, self).__init__(**kwargs) + self.affinity_id = kwargs.get('affinity_id', None) + self.node_url = kwargs.get('node_url', None) + self.pool_id = kwargs.get('pool_id', None) + self.node_id = kwargs.get('node_id', None) + self.task_root_directory = kwargs.get('task_root_directory', None) + self.task_root_directory_url = kwargs.get('task_root_directory_url', None) + + +class ComputeNodeListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Compute Nodes can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeRebootOptions(Model): + """Additional parameters for reboot operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeRebootOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeReimageOptions(Model): + """Additional parameters for reimage operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeReimageOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeUpdateUserOptions(Model): + """Additional parameters for update_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeUpdateUserOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeUploadBatchServiceLogsOptions(Model): + """Additional parameters for upload_batch_service_logs operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeUploadBatchServiceLogsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class ComputeNodeUser(Model): + """A user Account for RDP or SSH access on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The user name of the Account. + :type name: str + :param is_admin: Whether the Account should be an administrator on the + Compute Node. The default value is false. + :type is_admin: bool + :param expiry_time: The time at which the Account should expire. If + omitted, the default is 1 day from the current time. For Linux Compute + Nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param password: The password of the Account. The password is required for + Windows Compute Nodes (those created with 'cloudServiceConfiguration', or + created with 'virtualMachineConfiguration' using a Windows Image + reference). For Linux Compute Nodes, the password can optionally be + specified along with the sshPublicKey property. + :type password: str + :param ssh_public_key: The SSH public key that can be used for remote + login to the Compute Node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux Compute Nodes. If this is specified for a Windows + Compute Node, then the Batch service rejects the request; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type ssh_public_key: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'is_admin': {'key': 'isAdmin', 'type': 'bool'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'password': {'key': 'password', 'type': 'str'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ComputeNodeUser, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.is_admin = kwargs.get('is_admin', None) + self.expiry_time = kwargs.get('expiry_time', None) + self.password = kwargs.get('password', None) + self.ssh_public_key = kwargs.get('ssh_public_key', None) + + +class ContainerConfiguration(Model): + """The configuration for container-enabled Pools. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar type: Required. The container technology to be used. Default value: + "dockerCompatible" . + :vartype type: str + :param container_image_names: The collection of container Image names. + This is the full Image reference, as would be specified to "docker pull". + An Image will be sourced from the default Docker registry unless the Image + is fully qualified with an alternative registry. + :type container_image_names: list[str] + :param container_registries: Additional private registries from which + containers can be pulled. If any Images must be downloaded from a private + registry which requires credentials, then those credentials must be + provided here. + :type container_registries: list[~azure.batch.models.ContainerRegistry] + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'container_image_names': {'key': 'containerImageNames', 'type': '[str]'}, + 'container_registries': {'key': 'containerRegistries', 'type': '[ContainerRegistry]'}, + } + + type = "dockerCompatible" + + def __init__(self, **kwargs): + super(ContainerConfiguration, self).__init__(**kwargs) + self.container_image_names = kwargs.get('container_image_names', None) + self.container_registries = kwargs.get('container_registries', None) + + +class ContainerRegistry(Model): + """A private container registry. + + All required parameters must be populated in order to send to Azure. + + :param registry_server: The registry URL. If omitted, the default is + "docker.io". + :type registry_server: str + :param user_name: Required. The user name to log into the registry server. + :type user_name: str + :param password: Required. The password to log into the registry server. + :type password: str + """ + + _validation = { + 'user_name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'registry_server': {'key': 'registryServer', 'type': 'str'}, + 'user_name': {'key': 'username', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerRegistry, self).__init__(**kwargs) + self.registry_server = kwargs.get('registry_server', None) + self.user_name = kwargs.get('user_name', None) + self.password = kwargs.get('password', None) + + +class DataDisk(Model): + """Settings which will be used by the data disks associated to Compute Nodes + in the Pool. + + All required parameters must be populated in order to send to Azure. + + :param lun: Required. The logical unit number. The lun is used to uniquely + identify each data disk. If attaching multiple disks, each should have a + distinct lun. + :type lun: int + :param caching: The type of caching to be enabled for the data disks. The + default value for caching is readwrite. For information about the caching + options see: + https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + Possible values include: 'none', 'readOnly', 'readWrite' + :type caching: str or ~azure.batch.models.CachingType + :param disk_size_gb: Required. The initial disk size in gigabytes. + :type disk_size_gb: int + :param storage_account_type: The storage Account type to be used for the + data disk. If omitted, the default is "standard_lrs". Possible values + include: 'StandardLRS', 'PremiumLRS' + :type storage_account_type: str or ~azure.batch.models.StorageAccountType + """ + + _validation = { + 'lun': {'required': True}, + 'disk_size_gb': {'required': True}, + } + + _attribute_map = { + 'lun': {'key': 'lun', 'type': 'int'}, + 'caching': {'key': 'caching', 'type': 'CachingType'}, + 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, + 'storage_account_type': {'key': 'storageAccountType', 'type': 'StorageAccountType'}, + } + + def __init__(self, **kwargs): + super(DataDisk, self).__init__(**kwargs) + self.lun = kwargs.get('lun', None) + self.caching = kwargs.get('caching', None) + self.disk_size_gb = kwargs.get('disk_size_gb', None) + self.storage_account_type = kwargs.get('storage_account_type', None) + + +class DeleteCertificateError(Model): + """An error encountered by the Batch service when deleting a Certificate. + + :param code: An identifier for the Certificate deletion error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Certificate deletion error, + intended to be suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the + Certificate deletion error. This list includes details such as the active + Pools and Compute Nodes referencing this Certificate. However, if a large + number of resources reference the Certificate, the list contains only + about the first hundred. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(DeleteCertificateError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) + + +class EnvironmentSetting(Model): + """An environment variable to be set on a Task process. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the environment variable. + :type name: str + :param value: The value of the environment variable. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(EnvironmentSetting, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + + +class ErrorMessage(Model): + """An error message received in an Azure Batch error response. + + :param lang: The language code of the error message. + :type lang: str + :param value: The text of the message. + :type value: str + """ + + _attribute_map = { + 'lang': {'key': 'lang', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ErrorMessage, self).__init__(**kwargs) + self.lang = kwargs.get('lang', None) + self.value = kwargs.get('value', None) + + +class ExitCodeMapping(Model): + """How the Batch service should respond if a Task exits with a particular exit + code. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. A process exit code. + :type code: int + :param exit_options: Required. How the Batch service should respond if the + Task exits with this exit code. + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'code': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, **kwargs): + super(ExitCodeMapping, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.exit_options = kwargs.get('exit_options', None) + + +class ExitCodeRangeMapping(Model): + """A range of exit codes and how the Batch service should respond to exit + codes within that range. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first exit code in the range. + :type start: int + :param end: Required. The last exit code in the range. + :type end: int + :param exit_options: Required. How the Batch service should respond if the + Task exits with an exit code in the range start to end (inclusive). + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, **kwargs): + super(ExitCodeRangeMapping, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + self.exit_options = kwargs.get('exit_options', None) + + +class ExitConditions(Model): + """Specifies how the Batch service should respond when the Task completes. + + :param exit_codes: A list of individual Task exit codes and how the Batch + service should respond to them. + :type exit_codes: list[~azure.batch.models.ExitCodeMapping] + :param exit_code_ranges: A list of Task exit code ranges and how the Batch + service should respond to them. + :type exit_code_ranges: list[~azure.batch.models.ExitCodeRangeMapping] + :param pre_processing_error: How the Batch service should respond if the + Task fails to start due to an error. + :type pre_processing_error: ~azure.batch.models.ExitOptions + :param file_upload_error: How the Batch service should respond if a file + upload error occurs. If the Task exited with an exit code that was + specified via exitCodes or exitCodeRanges, and then encountered a file + upload error, then the action specified by the exit code takes precedence. + :type file_upload_error: ~azure.batch.models.ExitOptions + :param default: How the Batch service should respond if the Task fails + with an exit condition not covered by any of the other properties. This + value is used if the Task exits with any nonzero exit code not listed in + the exitCodes or exitCodeRanges collection, with a pre-processing error if + the preProcessingError property is not present, or with a file upload + error if the fileUploadError property is not present. If you want + non-default behavior on exit code 0, you must list it explicitly using the + exitCodes or exitCodeRanges collection. + :type default: ~azure.batch.models.ExitOptions + """ + + _attribute_map = { + 'exit_codes': {'key': 'exitCodes', 'type': '[ExitCodeMapping]'}, + 'exit_code_ranges': {'key': 'exitCodeRanges', 'type': '[ExitCodeRangeMapping]'}, + 'pre_processing_error': {'key': 'preProcessingError', 'type': 'ExitOptions'}, + 'file_upload_error': {'key': 'fileUploadError', 'type': 'ExitOptions'}, + 'default': {'key': 'default', 'type': 'ExitOptions'}, + } + + def __init__(self, **kwargs): + super(ExitConditions, self).__init__(**kwargs) + self.exit_codes = kwargs.get('exit_codes', None) + self.exit_code_ranges = kwargs.get('exit_code_ranges', None) + self.pre_processing_error = kwargs.get('pre_processing_error', None) + self.file_upload_error = kwargs.get('file_upload_error', None) + self.default = kwargs.get('default', None) + + +class ExitOptions(Model): + """Specifies how the Batch service responds to a particular exit condition. + + :param job_action: An action to take on the Job containing the Task, if + the Task completes with the given exit condition and the Job's + onTaskFailed property is 'performExitOptionsJobAction'. The default is + none for exit code 0 and terminate for all other exit conditions. If the + Job's onTaskFailed property is noaction, then specifying this property + returns an error and the add Task request fails with an invalid property + value error; if you are calling the REST API directly, the HTTP status + code is 400 (Bad Request). Possible values include: 'none', 'disable', + 'terminate' + :type job_action: str or ~azure.batch.models.JobAction + :param dependency_action: An action that the Batch service performs on + Tasks that depend on this Task. The default is 'satisfy' for exit code 0, + and 'block' for all other exit conditions. If the Job's + usesTaskDependencies property is set to false, then specifying the + dependencyAction property returns an error and the add Task request fails + with an invalid property value error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). Possible values + include: 'satisfy', 'block' + :type dependency_action: str or ~azure.batch.models.DependencyAction + """ + + _attribute_map = { + 'job_action': {'key': 'jobAction', 'type': 'JobAction'}, + 'dependency_action': {'key': 'dependencyAction', 'type': 'DependencyAction'}, + } + + def __init__(self, **kwargs): + super(ExitOptions, self).__init__(**kwargs) + self.job_action = kwargs.get('job_action', None) + self.dependency_action = kwargs.get('dependency_action', None) + + +class FileDeleteFromComputeNodeOptions(Model): + """Additional parameters for delete_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileDeleteFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class FileDeleteFromTaskOptions(Model): + """Additional parameters for delete_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileDeleteFromTaskOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class FileGetFromComputeNodeOptions(Model): + """Additional parameters for get_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.ocp_range = kwargs.get('ocp_range', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class FileGetFromTaskOptions(Model): + """Additional parameters for get_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetFromTaskOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.ocp_range = kwargs.get('ocp_range', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class FileGetPropertiesFromComputeNodeOptions(Model): + """Additional parameters for get_properties_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetPropertiesFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class FileGetPropertiesFromTaskOptions(Model): + """Additional parameters for get_properties_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileGetPropertiesFromTaskOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class FileListFromComputeNodeOptions(Model): + """Additional parameters for list_from_compute_node operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileListFromComputeNodeOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class FileListFromTaskOptions(Model): + """Additional parameters for list_from_task operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(FileListFromTaskOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class FileProperties(Model): + """The properties of a file on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: The file creation time. The creation time is not + returned for files on Linux Compute Nodes. + :type creation_time: datetime + :param last_modified: Required. The time at which the file was last + modified. + :type last_modified: datetime + :param content_length: Required. The length of the file. + :type content_length: long + :param content_type: The content type of the file. + :type content_type: str + :param file_mode: The file mode attribute in octal format. The file mode + is returned only for files on Linux Compute Nodes. + :type file_mode: str + """ + + _validation = { + 'last_modified': {'required': True}, + 'content_length': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'content_length': {'key': 'contentLength', 'type': 'long'}, + 'content_type': {'key': 'contentType', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(FileProperties, self).__init__(**kwargs) + self.creation_time = kwargs.get('creation_time', None) + self.last_modified = kwargs.get('last_modified', None) + self.content_length = kwargs.get('content_length', None) + self.content_type = kwargs.get('content_type', None) + self.file_mode = kwargs.get('file_mode', None) + + +class ImageInformation(Model): + """A reference to the Azure Virtual Machines Marketplace Image and additional + information about the Image. + + All required parameters must be populated in order to send to Azure. + + :param node_agent_sku_id: Required. The ID of the Compute Node agent SKU + which the Image supports. + :type node_agent_sku_id: str + :param image_reference: Required. The reference to the Azure Virtual + Machine's Marketplace Image. + :type image_reference: ~azure.batch.models.ImageReference + :param os_type: Required. The type of operating system (e.g. Windows or + Linux) of the Image. Possible values include: 'linux', 'windows' + :type os_type: str or ~azure.batch.models.OSType + :param capabilities: The capabilities or features which the Image + supports. Not every capability of the Image is listed. Capabilities in + this list are considered of special interest and are generally related to + integration with other features in the Azure Batch service. + :type capabilities: list[str] + :param batch_support_end_of_life: The time when the Azure Batch service + will stop accepting create Pool requests for the Image. + :type batch_support_end_of_life: datetime + :param verification_type: Required. Whether the Azure Batch service + actively verifies that the Image is compatible with the associated Compute + Node agent SKU. Possible values include: 'verified', 'unverified' + :type verification_type: str or ~azure.batch.models.VerificationType + """ + + _validation = { + 'node_agent_sku_id': {'required': True}, + 'image_reference': {'required': True}, + 'os_type': {'required': True}, + 'verification_type': {'required': True}, + } + + _attribute_map = { + 'node_agent_sku_id': {'key': 'nodeAgentSKUId', 'type': 'str'}, + 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, + 'os_type': {'key': 'osType', 'type': 'OSType'}, + 'capabilities': {'key': 'capabilities', 'type': '[str]'}, + 'batch_support_end_of_life': {'key': 'batchSupportEndOfLife', 'type': 'iso-8601'}, + 'verification_type': {'key': 'verificationType', 'type': 'VerificationType'}, + } + + def __init__(self, **kwargs): + super(ImageInformation, self).__init__(**kwargs) + self.node_agent_sku_id = kwargs.get('node_agent_sku_id', None) + self.image_reference = kwargs.get('image_reference', None) + self.os_type = kwargs.get('os_type', None) + self.capabilities = kwargs.get('capabilities', None) + self.batch_support_end_of_life = kwargs.get('batch_support_end_of_life', None) + self.verification_type = kwargs.get('verification_type', None) + + +class ImageReference(Model): + """A reference to an Azure Virtual Machines Marketplace Image or a custom + Azure Virtual Machine Image. To get the list of all Azure Marketplace Image + references verified by Azure Batch, see the 'List supported Images' + operation. + + :param publisher: The publisher of the Azure Virtual Machines Marketplace + Image. For example, Canonical or MicrosoftWindowsServer. + :type publisher: str + :param offer: The offer type of the Azure Virtual Machines Marketplace + Image. For example, UbuntuServer or WindowsServer. + :type offer: str + :param sku: The SKU of the Azure Virtual Machines Marketplace Image. For + example, 14.04.0-LTS or 2012-R2-Datacenter. + :type sku: str + :param version: The version of the Azure Virtual Machines Marketplace + Image. A value of 'latest' can be specified to select the latest version + of an Image. If omitted, the default is 'latest'. + :type version: str + :param virtual_machine_image_id: The ARM resource identifier of the + Virtual Machine Image. Computes Compute Nodes of the Pool will be created + using this custom Image. This is of the form + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}. + This property is mutually exclusive with other ImageReference properties. + The Virtual Machine Image must be in the same region and subscription as + the Azure Batch Account. For information about the firewall settings for + the Batch Compute Node agent to communicate with the Batch service see + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + :type virtual_machine_image_id: str + """ + + _attribute_map = { + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'offer': {'key': 'offer', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'virtual_machine_image_id': {'key': 'virtualMachineImageId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ImageReference, self).__init__(**kwargs) + self.publisher = kwargs.get('publisher', None) + self.offer = kwargs.get('offer', None) + self.sku = kwargs.get('sku', None) + self.version = kwargs.get('version', None) + self.virtual_machine_image_id = kwargs.get('virtual_machine_image_id', None) + + +class InboundEndpoint(Model): + """An inbound endpoint on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param public_ip_address: Required. The public IP address of the Compute + Node. + :type public_ip_address: str + :param public_fqdn: Required. The public fully qualified domain name for + the Compute Node. + :type public_fqdn: str + :param frontend_port: Required. The public port number of the endpoint. + :type frontend_port: int + :param backend_port: Required. The backend port number of the endpoint. + :type backend_port: int + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'public_ip_address': {'required': True}, + 'public_fqdn': {'required': True}, + 'frontend_port': {'required': True}, + 'backend_port': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'public_ip_address': {'key': 'publicIPAddress', 'type': 'str'}, + 'public_fqdn': {'key': 'publicFQDN', 'type': 'str'}, + 'frontend_port': {'key': 'frontendPort', 'type': 'int'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(InboundEndpoint, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.protocol = kwargs.get('protocol', None) + self.public_ip_address = kwargs.get('public_ip_address', None) + self.public_fqdn = kwargs.get('public_fqdn', None) + self.frontend_port = kwargs.get('frontend_port', None) + self.backend_port = kwargs.get('backend_port', None) + + +class InboundNATPool(Model): + """A inbound NAT Pool that can be used to address specific ports on Compute + Nodes in a Batch Pool externally. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. The name must be unique + within a Batch Pool, can contain letters, numbers, underscores, periods, + and hyphens. Names must start with a letter or number, must end with a + letter, number, or underscore, and cannot exceed 77 characters. If any + invalid values are provided the request fails with HTTP status code 400. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param backend_port: Required. The port number on the Compute Node. This + must be unique within a Batch Pool. Acceptable values are between 1 and + 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any + reserved values are provided the request fails with HTTP status code 400. + :type backend_port: int + :param frontend_port_range_start: Required. The first port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual Compute Nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved. All ranges + within a Pool must be distinct and cannot overlap. Each range must contain + at least 40 ports. If any reserved or overlapping values are provided the + request fails with HTTP status code 400. + :type frontend_port_range_start: int + :param frontend_port_range_end: Required. The last port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual Compute Nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved by the Batch + service. All ranges within a Pool must be distinct and cannot overlap. + Each range must contain at least 40 ports. If any reserved or overlapping + values are provided the request fails with HTTP status code 400. + :type frontend_port_range_end: int + :param network_security_group_rules: A list of network security group + rules that will be applied to the endpoint. The maximum number of rules + that can be specified across all the endpoints on a Batch Pool is 25. If + no network security group rules are specified, a default rule will be + created to allow inbound access to the specified backendPort. If the + maximum number of network security group rules is exceeded the request + fails with HTTP status code 400. + :type network_security_group_rules: + list[~azure.batch.models.NetworkSecurityGroupRule] + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'backend_port': {'required': True}, + 'frontend_port_range_start': {'required': True}, + 'frontend_port_range_end': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + 'frontend_port_range_start': {'key': 'frontendPortRangeStart', 'type': 'int'}, + 'frontend_port_range_end': {'key': 'frontendPortRangeEnd', 'type': 'int'}, + 'network_security_group_rules': {'key': 'networkSecurityGroupRules', 'type': '[NetworkSecurityGroupRule]'}, + } + + def __init__(self, **kwargs): + super(InboundNATPool, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.protocol = kwargs.get('protocol', None) + self.backend_port = kwargs.get('backend_port', None) + self.frontend_port_range_start = kwargs.get('frontend_port_range_start', None) + self.frontend_port_range_end = kwargs.get('frontend_port_range_end', None) + self.network_security_group_rules = kwargs.get('network_security_group_rules', None) + + +class JobAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobAddParameter(Model): + """An Azure Batch Job to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Job within the + Account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the Job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager Task to be launched when + the Job is started. If the Job does not specify a Job Manager Task, the + user must explicitly add Tasks to the Job. If the Job does specify a Job + Manager Task, the Batch service creates the Job Manager Task when the Job + is created, and will try to schedule the Job Manager Task before + scheduling other Tasks in the Job. The Job Manager Task's typical purpose + is to control and/or monitor Job execution, for example by deciding what + additional Tasks to run, determining when the work is complete, etc. + (However, a Job Manager Task is not restricted to these activities - it is + a fully-fledged Task in the system and perform whatever actions are + required for the Job.) For example, a Job Manager Task might download a + file specified as a parameter, analyze the contents of that file and + submit additional Tasks based on those contents. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation Task. If a Job has a Job + Preparation Task, the Batch service will run the Job Preparation Task on a + Node before starting any Tasks of that Job on that Compute Node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release Task. A Job Release Task cannot + be specified without also specifying a Job Preparation Task for the Job. + The Batch service runs the Job Release Task on the Nodes that have run the + Job Preparation Task. The primary purpose of the Job Release Task is to + undo changes to Compute Nodes made by the Job Preparation Task. Example + activities include deleting local files, or shutting down services that + were started as part of Job preparation. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all Tasks in + the Job (including the Job Manager, Job Preparation and Job Release + Tasks). Individual Tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The Pool on which the Batch service runs the + Job's Tasks. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. Note that if a Job + contains no Tasks, then all Tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic Job termination without a Job Manager, you should initially set + onAllTasksComplete to noaction and update the Job properties to set + onAllTasksComplete to terminatejob once you have finished adding Tasks. + The default is noaction. Possible values include: 'noAction', + 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + Task in the Job fails. A Task is considered to have failed if has a + failureInfo. A failureInfo is set if the Task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the Task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param metadata: A list of name-value pairs associated with the Job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param uses_task_dependencies: Whether Tasks in the Job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param network_configuration: The network configuration for the Job. + :type network_configuration: ~azure.batch.models.JobNetworkConfiguration + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'JobNetworkConfiguration'}, + } + + def __init__(self, **kwargs): + super(JobAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.priority = kwargs.get('priority', None) + self.constraints = kwargs.get('constraints', None) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.pool_info = kwargs.get('pool_info', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.metadata = kwargs.get('metadata', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.network_configuration = kwargs.get('network_configuration', None) + + +class JobConstraints(Model): + """The execution constraints for a Job. + + :param max_wall_clock_time: The maximum elapsed time that the Job may run, + measured from the time the Job is created. If the Job does not complete + within the time limit, the Batch service terminates it and any Tasks that + are still running. In this case, the termination reason will be + MaxWallClockTimeExpiry. If this property is not specified, there is no + time limit on how long the Job may run. + :type max_wall_clock_time: timedelta + :param max_task_retry_count: The maximum number of times each Task may be + retried. The Batch service retries a Task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try each Task once, and may then retry up to this + limit. For example, if the maximum retry count is 3, Batch tries a Task up + to 4 times (one initial try and 3 retries). If the maximum retry count is + 0, the Batch service does not retry Tasks. If the maximum retry count is + -1, the Batch service retries Tasks without limit. The default value is 0 + (no retries). + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(JobConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) + + +class JobDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobDisableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobDisableParameter(Model): + """Options when disabling a Job. + + All required parameters must be populated in order to send to Azure. + + :param disable_tasks: Required. What to do with active Tasks associated + with the Job. Possible values include: 'requeue', 'terminate', 'wait' + :type disable_tasks: str or ~azure.batch.models.DisableJobOption + """ + + _validation = { + 'disable_tasks': {'required': True}, + } + + _attribute_map = { + 'disable_tasks': {'key': 'disableTasks', 'type': 'DisableJobOption'}, + } + + def __init__(self, **kwargs): + super(JobDisableParameter, self).__init__(**kwargs) + self.disable_tasks = kwargs.get('disable_tasks', None) + + +class JobEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobEnableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobExecutionInformation(Model): + """Contains information about the execution of a Job in the Azure Batch + service. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the Job. This is the time + at which the Job was created. + :type start_time: datetime + :param end_time: The completion time of the Job. This property is set only + if the Job is in the completed state. + :type end_time: datetime + :param pool_id: The ID of the Pool to which this Job is assigned. This + element contains the actual Pool where the Job is assigned. When you get + Job details from the service, they also contain a poolInfo element, which + contains the Pool configuration data from when the Job was added or + updated. That poolInfo element may also contain a poolId element. If it + does, the two IDs are the same. If it does not, it means the Job ran on an + auto Pool, and this property contains the ID of that auto Pool. + :type pool_id: str + :param scheduling_error: Details of any error encountered by the service + in starting the Job. This property is not set if there was no error + starting the Job. + :type scheduling_error: ~azure.batch.models.JobSchedulingError + :param terminate_reason: A string describing the reason the Job ended. + This property is set only if the Job is in the completed state. If the + Batch service terminates the Job, it sets the reason as follows: + JMComplete - the Job Manager Task completed, and killJobOnCompletion was + set to true. MaxWallClockTimeExpiry - the Job reached its maxWallClockTime + constraint. TerminateJobSchedule - the Job ran as part of a schedule, and + the schedule terminated. AllTasksComplete - the Job's onAllTasksComplete + attribute is set to terminatejob, and all Tasks in the Job are complete. + TaskFailed - the Job's onTaskFailure attribute is set to + performExitOptionsJobAction, and a Task in the Job failed with an exit + condition that specified a jobAction of terminatejob. Any other string is + a user-defined reason specified in a call to the 'Terminate a Job' + operation. + :type terminate_reason: str + """ + + _validation = { + 'start_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'scheduling_error': {'key': 'schedulingError', 'type': 'JobSchedulingError'}, + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(JobExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.pool_id = kwargs.get('pool_id', None) + self.scheduling_error = kwargs.get('scheduling_error', None) + self.terminate_reason = kwargs.get('terminate_reason', None) + + +class JobGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobGetTaskCountsOptions(Model): + """Additional parameters for get_task_counts operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobGetTaskCountsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobListFromJobScheduleOptions(Model): + """Additional parameters for list_from_job_schedule operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobListFromJobScheduleOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobListPreparationAndReleaseTaskStatusOptions(Model): + """Additional parameters for list_preparation_and_release_task_status + operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobListPreparationAndReleaseTaskStatusOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobManagerTask(Model): + """Specifies details of a Job Manager Task. + + The Job Manager Task is automatically started when the Job is created. The + Batch service tries to schedule the Job Manager Task before any other Tasks + in the Job. When shrinking a Pool, the Batch service tries to preserve + Nodes where Job Manager Tasks are running for as long as possible (that is, + Compute Nodes running 'normal' Tasks are removed before Compute Nodes + running Job Manager Tasks). When a Job Manager Task fails and needs to be + restarted, the system tries to schedule it at the highest priority. If + there are no idle Compute Nodes available, the system may terminate one of + the running Tasks in the Pool and return it to the queue in order to make + room for the Job Manager Task to restart. Note that a Job Manager Task in + one Job does not have priority over Tasks in other Jobs. Across Jobs, only + Job level priorities are observed. For example, if a Job Manager in a + priority 0 Job needs to be restarted, it will not displace Tasks of a + priority 1 Job. Batch will retry Tasks when a recovery operation is + triggered on a Node. Examples of recovery operations include (but are not + limited to) when an unhealthy Node is rebooted or a Compute Node + disappeared due to host failure. Retries due to recovery operations are + independent of and are not counted against the maxTaskRetryCount. Even if + the maxTaskRetryCount is 0, an internal retry due to a recovery operation + may occur. Because of this, all Tasks should be idempotent. This means + Tasks need to tolerate being interrupted and restarted without causing any + corruption or duplicate data. The best practice for long running Tasks is + to use some form of checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Job Manager + Task within the Job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. + :type id: str + :param display_name: The display name of the Job Manager Task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: Required. The command line of the Job Manager Task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the Task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager Task runs. If the Pool that will run this Task has + containerConfiguration set, this must be set as well. If the Pool that + will run this Task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all Task environment variables are mapped + into the container, and the Task command line is executed in the + container. Files produced in the container outside of + AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. Files listed + under this element are located in the Task's working directory. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the Compute Node after running the command line. For multi-instance + Tasks, the files will only be uploaded from the Compute Node on which the + primary Task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Job Manager Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Manager Task. + :type constraints: ~azure.batch.models.TaskConstraints + :param kill_job_on_completion: Whether completion of the Job Manager Task + signifies completion of the entire Job. If true, when the Job Manager Task + completes, the Batch service marks the Job as complete. If any Tasks are + still running at this time (other than Job Release), those Tasks are + terminated. If false, the completion of the Job Manager Task does not + affect the Job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the Job, or have a client or + user terminate the Job explicitly. An example of this is if the Job + Manager creates a set of Tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control Job lifetime, + and using the Job Manager Task only to create the Tasks for the Job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager Task + runs. If omitted, the Task runs as a non-administrative user unique to the + Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param run_exclusive: Whether the Job Manager Task requires exclusive use + of the Compute Node where it runs. If true, no other Tasks will run on the + same Node for as long as the Job Manager is running. If false, other Tasks + can run simultaneously with the Job Manager on a Compute Node. The Job + Manager Task counts normally against the Compute Node's concurrent Task + limit, so this is only relevant if the Compute Node allows multiple + concurrent Tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of Application Packages that + the Batch service will deploy to the Compute Compute Node before running + the command line. Application Packages are downloaded and deployed to a + shared directory, not the Task working directory. Therefore, if a + referenced Application Package is already on the Compute Node, and is up + to date, then it is not re-downloaded; the existing copy on the Compute + Compute Node is used. If a referenced Application Package cannot be + installed, for example because the package has been deleted or because + download failed, the Task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the Task can use to perform Batch service operations. If this + property is set, the Batch service provides the Task with an + authentication token which can be used to authenticate Batch service + operations without requiring an Account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the Task can carry out using the token depend on the settings. For + example, a Task can request Job permissions in order to add other Tasks to + the Job, or check the status of the Job or of other Tasks under the Job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + :param allow_low_priority_node: Whether the Job Manager Task may run on a + low-priority Compute Node. The default value is true. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobManagerTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.kill_job_on_completion = kwargs.get('kill_job_on_completion', None) + self.user_identity = kwargs.get('user_identity', None) + self.run_exclusive = kwargs.get('run_exclusive', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + self.allow_low_priority_node = kwargs.get('allow_low_priority_node', None) + + +class JobNetworkConfiguration(Model): + """The network configuration for the Job. + + All required parameters must be populated in order to send to Azure. + + :param subnet_id: Required. The ARM resource identifier of the virtual + network subnet which Compute Nodes running Tasks from the Job will join + for the duration of the Task. This will only work with a + VirtualMachineConfiguration Pool. The virtual network must be in the same + region and subscription as the Azure Batch Account. The specified subnet + should have enough free IP addresses to accommodate the number of Compute + Nodes which will run Tasks from the Job. This can be up to the number of + Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service principal + must have the 'Classic Virtual Machine Contributor' Role-Based Access + Control (RBAC) role for the specified VNet so that Azure Batch service can + schedule Tasks on the Nodes. This can be verified by checking if the + specified VNet has any associated Network Security Groups (NSG). If + communication to the Nodes in the specified subnet is denied by an NSG, + then the Batch service will set the state of the Compute Nodes to + unusable. This is of the form + /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. + If the specified VNet has any associated Network Security Groups (NSG), + then a few reserved system ports must be enabled for inbound communication + from the Azure Batch service. For Pools created with a Virtual Machine + configuration, enable ports 29876 and 29877, as well as port 22 for Linux + and port 3389 for Windows. Port 443 is also required to be open for + outbound connections for communications to Azure Storage. For more details + see: + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + :type subnet_id: str + """ + + _validation = { + 'subnet_id': {'required': True}, + } + + _attribute_map = { + 'subnet_id': {'key': 'subnetId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(JobNetworkConfiguration, self).__init__(**kwargs) + self.subnet_id = kwargs.get('subnet_id', None) + + +class JobPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobPatchOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobPatchParameter(Model): + """The set of changes to be made to a Job. + + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, the priority of the Job is left unchanged. + :type priority: int + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. If omitted, the + completion behavior is left unchanged. You may not change the value from + terminatejob to noaction - that is, once you have engaged automatic Job + termination, you cannot turn it off again. If you try to do this, the + request fails with an 'invalid property value' error response; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param constraints: The execution constraints for the Job. If omitted, the + existing execution constraints are left unchanged. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: The Pool on which the Batch service runs the Job's + Tasks. You may change the Pool for a Job only when the Job is disabled. + The Patch Job call will fail if you include the poolInfo element and the + Job is not disabled. If you specify an autoPoolSpecification specification + in the poolInfo, only the keepAlive property can be updated, and then only + if the auto Pool has a poolLifetimeOption of Job. If omitted, the Job + continues to run on its current Pool. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the Job as + metadata. If omitted, the existing Job metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobPatchParameter, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.constraints = kwargs.get('constraints', None) + self.pool_info = kwargs.get('pool_info', None) + self.metadata = kwargs.get('metadata', None) + + +class JobPreparationAndReleaseTaskExecutionInformation(Model): + """The status of the Job Preparation and Job Release Tasks on a Compute Node. + + :param pool_id: The ID of the Pool containing the Compute Node to which + this entry refers. + :type pool_id: str + :param node_id: The ID of the Compute Node to which this entry refers. + :type node_id: str + :param node_url: The URL of the Compute Node to which this entry refers. + :type node_url: str + :param job_preparation_task_execution_info: Information about the + execution status of the Job Preparation Task on this Compute Node. + :type job_preparation_task_execution_info: + ~azure.batch.models.JobPreparationTaskExecutionInformation + :param job_release_task_execution_info: Information about the execution + status of the Job Release Task on this Compute Node. This property is set + only if the Job Release Task has run on the Compute Node. + :type job_release_task_execution_info: + ~azure.batch.models.JobReleaseTaskExecutionInformation + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'job_preparation_task_execution_info': {'key': 'jobPreparationTaskExecutionInfo', 'type': 'JobPreparationTaskExecutionInformation'}, + 'job_release_task_execution_info': {'key': 'jobReleaseTaskExecutionInfo', 'type': 'JobReleaseTaskExecutionInformation'}, + } + + def __init__(self, **kwargs): + super(JobPreparationAndReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.node_id = kwargs.get('node_id', None) + self.node_url = kwargs.get('node_url', None) + self.job_preparation_task_execution_info = kwargs.get('job_preparation_task_execution_info', None) + self.job_release_task_execution_info = kwargs.get('job_release_task_execution_info', None) + + +class JobPreparationTask(Model): + """A Job Preparation Task to run before any Tasks of the Job on any given + Compute Node. + + You can use Job Preparation to prepare a Node to run Tasks for the Job. + Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the Tasks in the Job. The Job Preparation + Task can download these common resource files to the shared location on the + Node. (AZ_BATCH_NODE_ROOT_DIR\shared), or starting a local service on the + Node so that all Tasks of that Job can communicate with it. If the Job + Preparation Task fails (that is, exhausts its retry count before exiting + with exit code 0), Batch will not run Tasks of this Job on the Node. The + Compute Node remains ineligible to run Tasks of this Job until it is + reimaged. The Compute Node remains active and can be used for other Jobs. + The Job Preparation Task can run multiple times on the same Node. + Therefore, you should write the Job Preparation Task to handle + re-execution. If the Node is rebooted, the Job Preparation Task is run + again on the Compute Node before scheduling any other Task of the Job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation Task did + not previously complete. If the Node is reimaged, the Job Preparation Task + is run again before scheduling any Task of the Job. Batch will retry Tasks + when a recovery operation is triggered on a Node. Examples of recovery + operations include (but are not limited to) when an unhealthy Node is + rebooted or a Compute Node disappeared due to host failure. Retries due to + recovery operations are independent of and are not counted against the + maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry + due to a recovery operation may occur. Because of this, all Tasks should be + idempotent. This means Tasks need to tolerate being interrupted and + restarted without causing any corruption or duplicate data. The best + practice for long running Tasks is to use some form of checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Preparation Task + within the Job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other Task in the Job can + have the same ID as the Job Preparation Task. If you try to submit a Task + with the same id, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Preparation + Task. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the Task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation Task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all Task + environment variables are mapped into the container, and the Task command + line is executed in the container. Files produced in the container outside + of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. Files listed + under this element are located in the Task's working directory. There is + a maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Preparation Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Preparation Task. + :type constraints: ~azure.batch.models.TaskConstraints + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation Task to complete successfully before scheduling any other + Tasks of the Job on the Compute Node. A Job Preparation Task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + Task fails on a Node, the Batch service retries the Job Preparation Task + up to its maximum retry count (as specified in the constraints element). + If the Task has still not completed successfully after all retries, then + the Batch service will not schedule Tasks of the Job to the Node. The Node + remains active and eligible to run Tasks of other Jobs. If false, the + Batch service will not wait for the Job Preparation Task to complete. In + this case, other Tasks of the Job can start executing on the Compute Node + while the Job Preparation Task is still running; and even if the Job + Preparation Task fails, new Tasks will continue to be scheduled on the + Compute Node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + Task runs. If omitted, the Task runs as a non-administrative user unique + to the Task on Windows Compute Nodes, or a non-administrative user unique + to the Pool on Linux Compute Nodes. + :type user_identity: ~azure.batch.models.UserIdentity + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation Task after a Compute Node reboots. The + Job Preparation Task is always rerun if a Compute Node is reimaged, or if + the Job Preparation Task did not complete (e.g. because the reboot + occurred while the Task was running). Therefore, you should always write a + Job Preparation Task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(JobPreparationTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.constraints = kwargs.get('constraints', None) + self.wait_for_success = kwargs.get('wait_for_success', None) + self.user_identity = kwargs.get('user_identity', None) + self.rerun_on_node_reboot_after_success = kwargs.get('rerun_on_node_reboot_after_success', None) + + +class JobPreparationTaskExecutionInformation(Model): + """Contains information about the execution of a Job Preparation Task on a + Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the Task started running. + If the Task has been restarted or retried, this is the most recent time at + which the Task started running. + :type start_time: datetime + :param end_time: The time at which the Job Preparation Task completed. + This property is set only if the Task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Preparation Task on + the Compute Node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobPreparationTaskState + :param task_root_directory: The root directory of the Job Preparation Task + on the Compute Node. You can use this path to retrieve files created by + the Task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Preparation Task on the Compute Node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the Task + command line. This parameter is returned only if the Task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the Compute Node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the Task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the Task could not be run) and + file upload errors are not retried. The Batch service will retry the Task + up to the limit specified by the constraints. Task application failures + (non-zero exit code) are retried, pre-processing errors (the Task could + not be run) and file upload errors are not retried. The Batch service will + retry the Task up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Job + Preparation Task started running. This property is set only if the Task + was retried (i.e. retryCount is nonzero). If present, this is typically + the same as startTime, but may be different if the Task has been restarted + for reasons other than retry; for example, if the Compute Node was + rebooted during a retry, then the startTime is updated but the + lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobPreparationTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(JobPreparationTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.state = kwargs.get('state', None) + self.task_root_directory = kwargs.get('task_root_directory', None) + self.task_root_directory_url = kwargs.get('task_root_directory_url', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.retry_count = kwargs.get('retry_count', None) + self.last_retry_time = kwargs.get('last_retry_time', None) + self.result = kwargs.get('result', None) + + +class JobReleaseTask(Model): + """A Job Release Task to run on Job completion on any Compute Node where the + Job has run. + + The Job Release Task runs when the Job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the Job is still active, the Job's maximum wall clock time constraint + is reached, and the Job is still active, or the Job's Job Manager Task + completed, and the Job is configured to terminate when the Job Manager + completes. The Job Release Task runs on each Node where Tasks of the Job + have run and the Job Preparation Task ran and completed. If you reimage a + Node after it has run the Job Preparation Task, and the Job ends without + any further Tasks of the Job running on that Node (and hence the Job + Preparation Task does not re-run), then the Job Release Task does not run + on that Compute Node. If a Node reboots while the Job Release Task is still + running, the Job Release Task runs again when the Compute Node starts up. + The Job is not marked as complete until all Job Release Tasks have + completed. The Job Release Task runs in the background. It does not occupy + a scheduling slot; that is, it does not count towards the maxTasksPerNode + limit specified on the Pool. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Release Task within + the Job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other Task in the Job can have the + same ID as the Job Release Task. If you try to submit a Task with the same + id, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Release Task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the Task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release Task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all Task environment variables + are mapped into the container, and the Task command line is executed in + the container. Files produced in the container outside of + AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the Task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Release Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param max_wall_clock_time: The maximum elapsed time that the Job Release + Task may run on a given Compute Node, measured from the time the Task + starts. If the Task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the Task directory for + the Job Release Task on the Compute Node. After this time, the Batch + service may delete the Task directory and all its contents. The default is + 7 days, i.e. the Task directory will be retained for 7 days unless the + Compute Node is removed or the Job is deleted. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release Task + runs. If omitted, the Task runs as a non-administrative user unique to the + Task. + :type user_identity: ~azure.batch.models.UserIdentity + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, **kwargs): + super(JobReleaseTask, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.retention_time = kwargs.get('retention_time', None) + self.user_identity = kwargs.get('user_identity', None) + + +class JobReleaseTaskExecutionInformation(Model): + """Contains information about the execution of a Job Release Task on a Compute + Node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the Task started running. + If the Task has been restarted or retried, this is the most recent time at + which the Task started running. + :type start_time: datetime + :param end_time: The time at which the Job Release Task completed. This + property is set only if the Task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Release Task on the + Compute Node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobReleaseTaskState + :param task_root_directory: The root directory of the Job Release Task on + the Compute Node. You can use this path to retrieve files created by the + Task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Release Task on the Compute Node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the Task + command line. This parameter is returned only if the Task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the Compute Node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobReleaseTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(JobReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.state = kwargs.get('state', None) + self.task_root_directory = kwargs.get('task_root_directory', None) + self.task_root_directory_url = kwargs.get('task_root_directory_url', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.result = kwargs.get('result', None) + + +class JobScheduleAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobScheduleAddParameter(Model): + """A Job Schedule that allows recurring Jobs by specifying when to run Jobs + and a specification used to create each Job. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the schedule within + the Account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the schedule. The display name + need not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param schedule: Required. The schedule according to which Jobs will be + created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. The details of the Jobs to be created + on this schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobScheduleAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.metadata = kwargs.get('metadata', None) + + +class JobScheduleDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleDisableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleEnableOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleExecutionInformation(Model): + """Contains information about Jobs that have been and will be run under a Job + Schedule. + + :param next_run_time: The next time at which a Job will be created under + this schedule. This property is meaningful only if the schedule is in the + active state when the time comes around. For example, if the schedule is + disabled, no Job will be created at nextRunTime unless the Job is enabled + before then. + :type next_run_time: datetime + :param recent_job: Information about the most recent Job under the Job + Schedule. This property is present only if the at least one Job has run + under the schedule. + :type recent_job: ~azure.batch.models.RecentJob + :param end_time: The time at which the schedule ended. This property is + set only if the Job Schedule is in the completed state. + :type end_time: datetime + """ + + _attribute_map = { + 'next_run_time': {'key': 'nextRunTime', 'type': 'iso-8601'}, + 'recent_job': {'key': 'recentJob', 'type': 'RecentJob'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(JobScheduleExecutionInformation, self).__init__(**kwargs) + self.next_run_time = kwargs.get('next_run_time', None) + self.recent_job = kwargs.get('recent_job', None) + self.end_time = kwargs.get('end_time', None) + + +class JobScheduleExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleExistsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Job Schedules can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class JobSchedulePatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobSchedulePatchOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobSchedulePatchParameter(Model): + """The set of changes to be made to a Job Schedule. + + :param schedule: The schedule according to which Jobs will be created. If + you do not specify this element, the existing schedule is left unchanged. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the Jobs to be created on this + schedule. Updates affect only Jobs that are started after the update has + taken place. Any currently active Job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the Job + Schedule as metadata. If you do not specify this element, existing + metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobSchedulePatchParameter, self).__init__(**kwargs) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.metadata = kwargs.get('metadata', None) + + +class JobScheduleStatistics(Model): + """Resource usage statistics for a Job Schedule. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in all Jobs + created under the schedule. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in all Jobs + created under the schedule. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all the + Tasks in all the Jobs created under the schedule. The wall clock time is + the elapsed time from when the Task started running on a Compute Node to + when it finished (or to the last time the statistics were updated, if the + Task had not finished by then). If a Task was retried, this includes the + wall clock time of all the Task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all Tasks in all Jobs created under the schedule. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all Tasks in all Jobs created under the schedule. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by all + Tasks in all Jobs created under the schedule. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by all + Tasks in all Jobs created under the schedule. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of Tasks + successfully completed during the given time range in Jobs created under + the schedule. A Task completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of Tasks that failed + during the given time range in Jobs created under the schedule. A Task + fails if it exhausts its maximum retry count without returning exit code + 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries during the + given time range on all Tasks in all Jobs created under the schedule. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all Tasks in all Jobs + created under the schedule. The wait time for a Task is defined as the + elapsed time between the creation of the Task and the start of Task + execution. (If the Task is retried due to failures, the wait time is the + time to the most recent Task execution.). This value is only reported in + the Account lifetime statistics; it is not included in the Job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(JobScheduleStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.kernel_cpu_time = kwargs.get('kernel_cpu_time', None) + self.wall_clock_time = kwargs.get('wall_clock_time', None) + self.read_iops = kwargs.get('read_iops', None) + self.write_iops = kwargs.get('write_iops', None) + self.read_io_gi_b = kwargs.get('read_io_gi_b', None) + self.write_io_gi_b = kwargs.get('write_io_gi_b', None) + self.num_succeeded_tasks = kwargs.get('num_succeeded_tasks', None) + self.num_failed_tasks = kwargs.get('num_failed_tasks', None) + self.num_task_retries = kwargs.get('num_task_retries', None) + self.wait_time = kwargs.get('wait_time', None) + + +class JobScheduleTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleTerminateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobScheduleUpdateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobScheduleUpdateParameter(Model): + """The set of changes to be made to a Job Schedule. + + All required parameters must be populated in order to send to Azure. + + :param schedule: Required. The schedule according to which Jobs will be + created. If you do not specify this element, it is equivalent to passing + the default schedule: that is, a single Job scheduled to run immediately. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. Details of the Jobs to be created on + this schedule. Updates affect only Jobs that are started after the update + has taken place. Any currently active Job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the Job + Schedule as metadata. If you do not specify this element, it takes the + default value of an empty list; in effect, any existing metadata is + deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobScheduleUpdateParameter, self).__init__(**kwargs) + self.schedule = kwargs.get('schedule', None) + self.job_specification = kwargs.get('job_specification', None) + self.metadata = kwargs.get('metadata', None) + + +class JobSchedulingError(Model): + """An error encountered by the Batch service when scheduling a Job. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the Job scheduling error. + Possible values include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the Job scheduling error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Job scheduling error, intended to + be suitable for display in a user interface. + :type message: str + :param details: A list of additional error details related to the + scheduling error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(JobSchedulingError, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.details = kwargs.get('details', None) + + +class JobSpecification(Model): + """Specifies details of the Jobs to be created on a schedule. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of Jobs created under this schedule. + Priority values can range from -1000 to 1000, with -1000 being the lowest + priority and 1000 being the highest priority. The default value is 0. This + priority is used as the default for all Jobs under the Job Schedule. You + can update a Job's priority after it has been created using by using the + update Job API. + :type priority: int + :param display_name: The display name for Jobs created under this + schedule. The name need not be unique and can contain any Unicode + characters up to a maximum length of 1024. + :type display_name: str + :param uses_task_dependencies: Whether Tasks in the Job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in a Job created under this schedule are in the completed + state. Note that if a Job contains no Tasks, then all Tasks are considered + complete. This option is therefore most commonly used with a Job Manager + task; if you want to use automatic Job termination without a Job Manager, + you should initially set onAllTasksComplete to noaction and update the Job + properties to set onAllTasksComplete to terminatejob once you have + finished adding Tasks. The default is noaction. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + Task fails in a Job created under this schedule. A Task is considered to + have failed if it have failed if has a failureInfo. A failureInfo is set + if the Task completes with a non-zero exit code after exhausting its retry + count, or if there was an error starting the Task, for example due to a + resource file download error. The default is noaction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param network_configuration: The network configuration for the Job. + :type network_configuration: ~azure.batch.models.JobNetworkConfiguration + :param constraints: The execution constraints for Jobs created under this + schedule. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: The details of a Job Manager Task to be launched + when a Job is started under this schedule. If the Job does not specify a + Job Manager Task, the user must explicitly add Tasks to the Job using the + Task API. If the Job does specify a Job Manager Task, the Batch service + creates the Job Manager Task when the Job is created, and will try to + schedule the Job Manager Task before scheduling other Tasks in the Job. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation Task for Jobs created + under this schedule. If a Job has a Job Preparation Task, the Batch + service will run the Job Preparation Task on a Node before starting any + Tasks of that Job on that Compute Node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release Task for Jobs created under this + schedule. The primary purpose of the Job Release Task is to undo changes + to Nodes made by the Job Preparation Task. Example activities include + deleting local files, or shutting down services that were started as part + of Job preparation. A Job Release Task cannot be specified without also + specifying a Job Preparation Task for the Job. The Batch service runs the + Job Release Task on the Compute Nodes that have run the Job Preparation + Task. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: A list of common environment variable + settings. These environment variables are set for all Tasks in Jobs + created under this schedule (including the Job Manager, Job Preparation + and Job Release Tasks). Individual Tasks can override an environment + setting specified here by specifying the same setting name with a + different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The Pool on which the Batch service runs the + Tasks of Jobs created under this schedule. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with each Job + created under this schedule as metadata. The Batch service does not assign + any meaning to metadata; it is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'JobNetworkConfiguration'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(JobSpecification, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.display_name = kwargs.get('display_name', None) + self.uses_task_dependencies = kwargs.get('uses_task_dependencies', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + self.on_task_failure = kwargs.get('on_task_failure', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.constraints = kwargs.get('constraints', None) + self.job_manager_task = kwargs.get('job_manager_task', None) + self.job_preparation_task = kwargs.get('job_preparation_task', None) + self.job_release_task = kwargs.get('job_release_task', None) + self.common_environment_settings = kwargs.get('common_environment_settings', None) + self.pool_info = kwargs.get('pool_info', None) + self.metadata = kwargs.get('metadata', None) + + +class JobStatistics(Model): + """Resource usage statistics for a Job. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in the Job. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in the Job. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all Tasks + in the Job. The wall clock time is the elapsed time from when the Task + started running on a Compute Node to when it finished (or to the last time + the statistics were updated, if the Task had not finished by then). If a + Task was retried, this includes the wall clock time of all the Task + retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all Tasks in the Job. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all Tasks in the Job. + :type write_iops: long + :param read_io_gi_b: Required. The total amount of data in GiB read from + disk by all Tasks in the Job. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total amount of data in GiB written to + disk by all Tasks in the Job. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of Tasks + successfully completed in the Job during the given time range. A Task + completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of Tasks in the Job + that failed during the given time range. A Task fails if it exhausts its + maximum retry count without returning exit code 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries on all the + Tasks in the Job during the given time range. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all Tasks in the Job. + The wait time for a Task is defined as the elapsed time between the + creation of the Task and the start of Task execution. (If the Task is + retried due to failures, the wait time is the time to the most recent Task + execution.) This value is only reported in the Account lifetime + statistics; it is not included in the Job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(JobStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.kernel_cpu_time = kwargs.get('kernel_cpu_time', None) + self.wall_clock_time = kwargs.get('wall_clock_time', None) + self.read_iops = kwargs.get('read_iops', None) + self.write_iops = kwargs.get('write_iops', None) + self.read_io_gi_b = kwargs.get('read_io_gi_b', None) + self.write_io_gi_b = kwargs.get('write_io_gi_b', None) + self.num_succeeded_tasks = kwargs.get('num_succeeded_tasks', None) + self.num_failed_tasks = kwargs.get('num_failed_tasks', None) + self.num_task_retries = kwargs.get('num_task_retries', None) + self.wait_time = kwargs.get('wait_time', None) + + +class JobTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobTerminateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobTerminateParameter(Model): + """Options when terminating a Job. + + :param terminate_reason: The text you want to appear as the Job's + TerminateReason. The default is 'UserTerminate'. + :type terminate_reason: str + """ + + _attribute_map = { + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(JobTerminateParameter, self).__init__(**kwargs) + self.terminate_reason = kwargs.get('terminate_reason', None) + + +class JobUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(JobUpdateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class JobUpdateParameter(Model): + """The set of changes to be made to a Job. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, it is set to the default value 0. + :type priority: int + :param constraints: The execution constraints for the Job. If omitted, the + constraints are cleared. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: Required. The Pool on which the Batch service runs the + Job's Tasks. You may change the Pool for a Job only when the Job is + disabled. The Update Job call will fail if you include the poolInfo + element and the Job is not disabled. If you specify an + autoPoolSpecification specification in the poolInfo, only the keepAlive + property can be updated, and then only if the auto Pool has a + poolLifetimeOption of Job. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the Job as + metadata. If omitted, it takes the default value of an empty list; in + effect, any existing metadata is deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. If omitted, the + completion behavior is set to noaction. If the current value is + terminatejob, this is an error because a Job's completion behavior may not + be changed from terminatejob to noaction. You may not change the value + from terminatejob to noaction - that is, once you have engaged automatic + Job termination, you cannot turn it off again. If you try to do this, the + request fails and Batch returns status code 400 (Bad Request) and an + 'invalid property value' error response. If you do not specify this + element in a PUT request, it is equivalent to passing noaction. This is an + error if the current value is terminatejob. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + } + + def __init__(self, **kwargs): + super(JobUpdateParameter, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.constraints = kwargs.get('constraints', None) + self.pool_info = kwargs.get('pool_info', None) + self.metadata = kwargs.get('metadata', None) + self.on_all_tasks_complete = kwargs.get('on_all_tasks_complete', None) + + +class LinuxUserConfiguration(Model): + """Properties used to create a user Account on a Linux Compute Node. + + :param uid: The user ID of the user Account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the uid. + :type uid: int + :param gid: The group ID for the user Account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the gid. + :type gid: int + :param ssh_private_key: The SSH private key for the user Account. The + private key must not be password protected. The private key is used to + automatically configure asymmetric-key based authentication for SSH + between Compute Nodes in a Linux Pool when the Pool's + enableInterNodeCommunication property is true (it is ignored if + enableInterNodeCommunication is false). It does this by placing the key + pair into the user's .ssh directory. If not specified, password-less SSH + is not configured between Compute Nodes (no modification of the user's + .ssh directory is done). + :type ssh_private_key: str + """ + + _attribute_map = { + 'uid': {'key': 'uid', 'type': 'int'}, + 'gid': {'key': 'gid', 'type': 'int'}, + 'ssh_private_key': {'key': 'sshPrivateKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(LinuxUserConfiguration, self).__init__(**kwargs) + self.uid = kwargs.get('uid', None) + self.gid = kwargs.get('gid', None) + self.ssh_private_key = kwargs.get('ssh_private_key', None) + + +class MetadataItem(Model): + """A name-value pair associated with a Batch service resource. + + The Batch service does not assign any meaning to this metadata; it is + solely for the use of user code. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the metadata item. + :type name: str + :param value: Required. The value of the metadata item. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(MetadataItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance Task. + + Multi-instance Tasks are commonly used to support MPI Tasks. In the MPI + case, if any of the subtasks fail (for example due to exiting with a + non-zero exit code) the entire multi-instance Task fails. The + multi-instance Task is then terminated and retried, up to its retry limit. + + All required parameters must be populated in order to send to Azure. + + :param number_of_instances: The number of Compute Nodes required by the + Task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: Required. The command line to run on all + the Compute Nodes to enable them to coordinate when the primary runs the + main Task command. A typical coordination command line launches a + background service and verifies that the service is ready to process + inter-node messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and Task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas Task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the Task working + directory, but instead are downloaded to the Task root directory (one + directory above the working directory). There is a maximum size for the + list of resource files. When the max size is exceeded, the request will + fail and the response error code will be RequestEntityTooLarge. If this + occurs, the collection of ResourceFiles must be reduced in size. This can + be achieved using .zip files, Application Packages, or Docker Containers. + :type common_resource_files: list[~azure.batch.models.ResourceFile] + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ResourceFile]'}, + } + + def __init__(self, **kwargs): + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = kwargs.get('number_of_instances', None) + self.coordination_command_line = kwargs.get('coordination_command_line', None) + self.common_resource_files = kwargs.get('common_resource_files', None) + + +class NameValuePair(Model): + """Represents a name-value pair. + + :param name: The name in the name-value pair. + :type name: str + :param value: The value in the name-value pair. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(NameValuePair, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.value = kwargs.get('value', None) + + +class NetworkConfiguration(Model): + """The network configuration for a Pool. + + :param subnet_id: The ARM resource identifier of the virtual network + subnet which the Compute Nodes of the Pool will join. This is of the form + /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. + The virtual network must be in the same region and subscription as the + Azure Batch Account. The specified subnet should have enough free IP + addresses to accommodate the number of Compute Nodes in the Pool. If the + subnet doesn't have enough free IP addresses, the Pool will partially + allocate Nodes, and a resize error will occur. The 'MicrosoftAzureBatch' + service principal must have the 'Classic Virtual Machine Contributor' + Role-Based Access Control (RBAC) role for the specified VNet. The + specified subnet must allow communication from the Azure Batch service to + be able to schedule Tasks on the Nodes. This can be verified by checking + if the specified VNet has any associated Network Security Groups (NSG). If + communication to the Nodes in the specified subnet is denied by an NSG, + then the Batch service will set the state of the Compute Nodes to + unusable. For Pools created with virtualMachineConfiguration only ARM + virtual networks ('Microsoft.Network/virtualNetworks') are supported, but + for Pools created with cloudServiceConfiguration both ARM and classic + virtual networks are supported. If the specified VNet has any associated + Network Security Groups (NSG), then a few reserved system ports must be + enabled for inbound communication. For Pools created with a virtual + machine configuration, enable ports 29876 and 29877, as well as port 22 + for Linux and port 3389 for Windows. For Pools created with a cloud + service configuration, enable ports 10100, 20100, and 30100. Also enable + outbound connections to Azure Storage on port 443. For more details see: + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + :type subnet_id: str + :param dynamic_vnet_assignment_scope: The scope of dynamic vnet + assignment. Possible values include: 'none', 'job' + :type dynamic_vnet_assignment_scope: str or + ~azure.batch.models.DynamicVNetAssignmentScope + :param endpoint_configuration: The configuration for endpoints on Compute + Nodes in the Batch Pool. Pool endpoint configuration is only supported on + Pools with the virtualMachineConfiguration property. + :type endpoint_configuration: + ~azure.batch.models.PoolEndpointConfiguration + """ + + _attribute_map = { + 'subnet_id': {'key': 'subnetId', 'type': 'str'}, + 'dynamic_vnet_assignment_scope': {'key': 'dynamicVNetAssignmentScope', 'type': 'DynamicVNetAssignmentScope'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'PoolEndpointConfiguration'}, + } + + def __init__(self, **kwargs): + super(NetworkConfiguration, self).__init__(**kwargs) + self.subnet_id = kwargs.get('subnet_id', None) + self.dynamic_vnet_assignment_scope = kwargs.get('dynamic_vnet_assignment_scope', None) + self.endpoint_configuration = kwargs.get('endpoint_configuration', None) + + +class NetworkSecurityGroupRule(Model): + """A network security group rule to apply to an inbound endpoint. + + All required parameters must be populated in order to send to Azure. + + :param priority: Required. The priority for this rule. Priorities within a + Pool must be unique and are evaluated in order of priority. The lower the + number the higher the priority. For example, rules could be specified with + order numbers of 150, 250, and 350. The rule with the order number of 150 + takes precedence over the rule that has an order of 250. Allowed + priorities are 150 to 3500. If any reserved or duplicate values are + provided the request fails with HTTP status code 400. + :type priority: int + :param access: Required. The action that should be taken for a specified + IP address, subnet range or tag. Possible values include: 'allow', 'deny' + :type access: str or ~azure.batch.models.NetworkSecurityGroupRuleAccess + :param source_address_prefix: Required. The source address prefix or tag + to match for the rule. Valid values are a single IP address (i.e. + 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all + addresses). If any other values are provided the request fails with HTTP + status code 400. + :type source_address_prefix: str + :param source_port_ranges: The source port ranges to match for the rule. + Valid values are '*' (for all ports 0 - 65535), a specific port (i.e. 22), + or a port range (i.e. 100-200). The ports must be in the range of 0 to + 65535. Each entry in this collection must not overlap any other entry + (either a range or an individual port). If any other values are provided + the request fails with HTTP status code 400. The default value is '*'. + :type source_port_ranges: list[str] + """ + + _validation = { + 'priority': {'required': True}, + 'access': {'required': True}, + 'source_address_prefix': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'access': {'key': 'access', 'type': 'NetworkSecurityGroupRuleAccess'}, + 'source_address_prefix': {'key': 'sourceAddressPrefix', 'type': 'str'}, + 'source_port_ranges': {'key': 'sourcePortRanges', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(NetworkSecurityGroupRule, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.access = kwargs.get('access', None) + self.source_address_prefix = kwargs.get('source_address_prefix', None) + self.source_port_ranges = kwargs.get('source_port_ranges', None) + + +class NodeAgentInformation(Model): + """Information about the Compute Node agent. + + The Batch Compute Node agent is a program that runs on each Compute Node in + the Pool and provides Batch capability on the Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of the Batch Compute Node agent + running on the Compute Node. This version number can be checked against + the Compute Node agent release notes located at + https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md. + :type version: str + :param last_update_time: Required. The time when the Compute Node agent + was updated on the Compute Node. This is the most recent time that the + Compute Node agent was updated to a new version. + :type last_update_time: datetime + """ + + _validation = { + 'version': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'version', 'type': 'str'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(NodeAgentInformation, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.last_update_time = kwargs.get('last_update_time', None) + + +class NodeCounts(Model): + """The number of Compute Nodes in each Compute Node state. + + All required parameters must be populated in order to send to Azure. + + :param creating: Required. The number of Compute Nodes in the creating + state. + :type creating: int + :param idle: Required. The number of Compute Nodes in the idle state. + :type idle: int + :param offline: Required. The number of Compute Nodes in the offline + state. + :type offline: int + :param preempted: Required. The number of Compute Nodes in the preempted + state. + :type preempted: int + :param rebooting: Required. The count of Compute Nodes in the rebooting + state. + :type rebooting: int + :param reimaging: Required. The number of Compute Nodes in the reimaging + state. + :type reimaging: int + :param running: Required. The number of Compute Nodes in the running + state. + :type running: int + :param starting: Required. The number of Compute Nodes in the starting + state. + :type starting: int + :param start_task_failed: Required. The number of Compute Nodes in the + startTaskFailed state. + :type start_task_failed: int + :param leaving_pool: Required. The number of Compute Nodes in the + leavingPool state. + :type leaving_pool: int + :param unknown: Required. The number of Compute Nodes in the unknown + state. + :type unknown: int + :param unusable: Required. The number of Compute Nodes in the unusable + state. + :type unusable: int + :param waiting_for_start_task: Required. The number of Compute Nodes in + the waitingForStartTask state. + :type waiting_for_start_task: int + :param total: Required. The total number of Compute Nodes. + :type total: int + """ + + _validation = { + 'creating': {'required': True}, + 'idle': {'required': True}, + 'offline': {'required': True}, + 'preempted': {'required': True}, + 'rebooting': {'required': True}, + 'reimaging': {'required': True}, + 'running': {'required': True}, + 'starting': {'required': True}, + 'start_task_failed': {'required': True}, + 'leaving_pool': {'required': True}, + 'unknown': {'required': True}, + 'unusable': {'required': True}, + 'waiting_for_start_task': {'required': True}, + 'total': {'required': True}, + } + + _attribute_map = { + 'creating': {'key': 'creating', 'type': 'int'}, + 'idle': {'key': 'idle', 'type': 'int'}, + 'offline': {'key': 'offline', 'type': 'int'}, + 'preempted': {'key': 'preempted', 'type': 'int'}, + 'rebooting': {'key': 'rebooting', 'type': 'int'}, + 'reimaging': {'key': 'reimaging', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'starting': {'key': 'starting', 'type': 'int'}, + 'start_task_failed': {'key': 'startTaskFailed', 'type': 'int'}, + 'leaving_pool': {'key': 'leavingPool', 'type': 'int'}, + 'unknown': {'key': 'unknown', 'type': 'int'}, + 'unusable': {'key': 'unusable', 'type': 'int'}, + 'waiting_for_start_task': {'key': 'waitingForStartTask', 'type': 'int'}, + 'total': {'key': 'total', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(NodeCounts, self).__init__(**kwargs) + self.creating = kwargs.get('creating', None) + self.idle = kwargs.get('idle', None) + self.offline = kwargs.get('offline', None) + self.preempted = kwargs.get('preempted', None) + self.rebooting = kwargs.get('rebooting', None) + self.reimaging = kwargs.get('reimaging', None) + self.running = kwargs.get('running', None) + self.starting = kwargs.get('starting', None) + self.start_task_failed = kwargs.get('start_task_failed', None) + self.leaving_pool = kwargs.get('leaving_pool', None) + self.unknown = kwargs.get('unknown', None) + self.unusable = kwargs.get('unusable', None) + self.waiting_for_start_task = kwargs.get('waiting_for_start_task', None) + self.total = kwargs.get('total', None) + + +class NodeDisableSchedulingParameter(Model): + """Options for disabling scheduling on a Compute Node. + + :param node_disable_scheduling_option: What to do with currently running + Tasks when disabling Task scheduling on the Compute Node. The default + value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion' + :type node_disable_scheduling_option: str or + ~azure.batch.models.DisableComputeNodeSchedulingOption + """ + + _attribute_map = { + 'node_disable_scheduling_option': {'key': 'nodeDisableSchedulingOption', 'type': 'DisableComputeNodeSchedulingOption'}, + } + + def __init__(self, **kwargs): + super(NodeDisableSchedulingParameter, self).__init__(**kwargs) + self.node_disable_scheduling_option = kwargs.get('node_disable_scheduling_option', None) + + +class NodeFile(Model): + """Information about a file or directory on a Compute Node. + + :param name: The file path. + :type name: str + :param url: The URL of the file. + :type url: str + :param is_directory: Whether the object represents a directory. + :type is_directory: bool + :param properties: The file properties. + :type properties: ~azure.batch.models.FileProperties + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'is_directory': {'key': 'isDirectory', 'type': 'bool'}, + 'properties': {'key': 'properties', 'type': 'FileProperties'}, + } + + def __init__(self, **kwargs): + super(NodeFile, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.url = kwargs.get('url', None) + self.is_directory = kwargs.get('is_directory', None) + self.properties = kwargs.get('properties', None) + + +class NodeRebootParameter(Model): + """Options for rebooting a Compute Node. + + :param node_reboot_option: When to reboot the Compute Node and what to do + with currently running Tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reboot_option: str or + ~azure.batch.models.ComputeNodeRebootOption + """ + + _attribute_map = { + 'node_reboot_option': {'key': 'nodeRebootOption', 'type': 'ComputeNodeRebootOption'}, + } + + def __init__(self, **kwargs): + super(NodeRebootParameter, self).__init__(**kwargs) + self.node_reboot_option = kwargs.get('node_reboot_option', None) + + +class NodeReimageParameter(Model): + """Options for reimaging a Compute Node. + + :param node_reimage_option: When to reimage the Compute Node and what to + do with currently running Tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reimage_option: str or + ~azure.batch.models.ComputeNodeReimageOption + """ + + _attribute_map = { + 'node_reimage_option': {'key': 'nodeReimageOption', 'type': 'ComputeNodeReimageOption'}, + } + + def __init__(self, **kwargs): + super(NodeReimageParameter, self).__init__(**kwargs) + self.node_reimage_option = kwargs.get('node_reimage_option', None) + + +class NodeRemoveParameter(Model): + """Options for removing Compute Nodes from a Pool. + + All required parameters must be populated in order to send to Azure. + + :param node_list: Required. A list containing the IDs of the Compute Nodes + to be removed from the specified Pool. + :type node_list: list[str] + :param resize_timeout: The timeout for removal of Compute Nodes to the + Pool. The default value is 15 minutes. The minimum value is 5 minutes. If + you specify a value less than 5 minutes, the Batch service returns an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a Compute Node + and its running task(s) after it has been selected for deallocation. The + default value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _validation = { + 'node_list': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'node_list': {'key': 'nodeList', 'type': '[str]'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, **kwargs): + super(NodeRemoveParameter, self).__init__(**kwargs) + self.node_list = kwargs.get('node_list', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.node_deallocation_option = kwargs.get('node_deallocation_option', None) + + +class NodeUpdateUserParameter(Model): + """The set of changes to be made to a user Account on a Compute Node. + + :param password: The password of the Account. The password is required for + Windows Compute Nodes (those created with 'cloudServiceConfiguration', or + created with 'virtualMachineConfiguration' using a Windows Image + reference). For Linux Compute Nodes, the password can optionally be + specified along with the sshPublicKey property. If omitted, any existing + password is removed. + :type password: str + :param expiry_time: The time at which the Account should expire. If + omitted, the default is 1 day from the current time. For Linux Compute + Nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param ssh_public_key: The SSH public key that can be used for remote + login to the Compute Node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux Compute Nodes. If this is specified for a Windows + Compute Node, then the Batch service rejects the request; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + If omitted, any existing SSH public key is removed. + :type ssh_public_key: str + """ + + _attribute_map = { + 'password': {'key': 'password', 'type': 'str'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(NodeUpdateUserParameter, self).__init__(**kwargs) + self.password = kwargs.get('password', None) + self.expiry_time = kwargs.get('expiry_time', None) + self.ssh_public_key = kwargs.get('ssh_public_key', None) + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch Compute Node to + another location after the Batch service has finished executing the Task + process. + + All required parameters must be populated in order to send to Azure. + + :param file_pattern: Required. A pattern indicating which file(s) to + upload. Both relative and absolute paths are supported. Relative paths are + relative to the Task working directory. The following wildcards are + supported: * matches 0 or more characters (for example pattern abc* would + match abc or abcdef), ** matches any directory, ? matches any single + character, [abc] matches one character in the brackets, and [a-c] matches + one character in the range. Brackets can include a negation to match any + character not specified (for example [!abc] matches any character but a, + b, or c). If a file name starts with "." it is ignored by default but may + be matched by specifying it explicitly (for example *.gif will not match + .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file + that does not start in '.' and ends with .txt in the Task working + directory or any subdirectory. If the filename contains a wildcard + character it can be escaped using brackets (for example abc[*] would match + a file named abc*). Note that both \\ and / are treated as directory + separators on Windows, but only / is on Linux. Environment variables + (%var% on Windows or $var on Linux) are expanded prior to the pattern + being applied. + :type file_pattern: str + :param destination: Required. The destination for the output file(s). + :type destination: ~azure.batch.models.OutputFileDestination + :param upload_options: Required. Additional options for the upload + operation, including under what conditions to perform the upload. + :type upload_options: ~azure.batch.models.OutputFileUploadOptions + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'OutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, **kwargs): + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = kwargs.get('file_pattern', None) + self.destination = kwargs.get('destination', None) + self.upload_options = kwargs.get('upload_options', None) + + +class OutputFileBlobContainerDestination(Model): + """Specifies a file upload destination within an Azure blob storage container. + + All required parameters must be populated in order to send to Azure. + + :param path: The destination blob or virtual directory within the Azure + Storage container. If filePattern refers to a specific file (i.e. contains + no wildcards), then path is the name of the blob to which to upload that + file. If filePattern contains one or more wildcards (and therefore may + match multiple files), then path is the name of the blob virtual directory + (which is prepended to each blob name) to which to upload the file(s). If + omitted, file(s) are uploaded to the root of the container with a blob + name matching their file name. + :type path: str + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the file(s). The URL must include a Shared + Access Signature (SAS) granting write permissions to the container. + :type container_url: str + """ + + _validation = { + 'container_url': {'required': True}, + } + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(OutputFileBlobContainerDestination, self).__init__(**kwargs) + self.path = kwargs.get('path', None) + self.container_url = kwargs.get('container_url', None) + + +class OutputFileDestination(Model): + """The destination to which a file should be uploaded. + + :param container: A location in Azure blob storage to which files are + uploaded. + :type container: ~azure.batch.models.OutputFileBlobContainerDestination + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + } + + def __init__(self, **kwargs): + super(OutputFileDestination, self).__init__(**kwargs) + self.container = kwargs.get('container', None) + + +class OutputFileUploadOptions(Model): + """Details about an output file upload operation, including under what + conditions to perform the upload. + + All required parameters must be populated in order to send to Azure. + + :param upload_condition: Required. The conditions under which the Task + output file or set of files should be uploaded. The default is + taskcompletion. Possible values include: 'taskSuccess', 'taskFailure', + 'taskCompletion' + :type upload_condition: str or + ~azure.batch.models.OutputFileUploadCondition + """ + + _validation = { + 'upload_condition': {'required': True}, + } + + _attribute_map = { + 'upload_condition': {'key': 'uploadCondition', 'type': 'OutputFileUploadCondition'}, + } + + def __init__(self, **kwargs): + super(OutputFileUploadOptions, self).__init__(**kwargs) + self.upload_condition = kwargs.get('upload_condition', None) + + +class PoolAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolAddParameter(Model): + """A Pool in the Azure Batch service to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Pool within the + Account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two Pool IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of virtual machines in the Pool. All + virtual machines in a Pool are the same size. For information about + available sizes of virtual machines for Cloud Services Pools (pools + created with cloudServiceConfiguration), see Sizes for Cloud Services + (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for Pools using Images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the Pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch Account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the Pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of Compute Nodes to the + Pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the Pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the Pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the Pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale Compute Nodes in an Azure Batch Pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the Pool permits direct + communication between Compute Nodes. Enabling inter-node communication + limits the maximum size of the Pool due to deployment restrictions on the + Compute Nodes of the Pool. This may result in the Pool not reaching its + desired size. The default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the Pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A Task specified to run on each Compute Node as it + joins the Pool. The Task runs when the Compute Node is added to the Pool + or when the Compute Node is restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of Certificates to be installed on + each Compute Node in the Pool. For Windows Nodes, the Batch service + installs the Certificates to the specified Certificate store and location. + For Linux Compute Nodes, the Certificates are stored in a directory inside + the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of Packages to be + installed on each Compute Node in the Pool. Changes to Package references + affect all new Nodes joining the Pool, but do not affect Compute Nodes + that are already in the Pool until they are rebooted or reimaged. There is + a maximum of 10 Package references on any given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each Compute Node in the Pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + Pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of Tasks that can run + concurrently on a single Compute Node in the Pool. The default value is 1. + The maximum value is the smaller of 4 times the number of cores of the + vmSize of the Pool or 256. + :type max_tasks_per_node: int + :param task_scheduling_policy: How Tasks are distributed across Compute + Nodes in a Pool. If not specified, the default is spread. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user Accounts to be created on each + Compute Node in the Pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.vm_size = kwargs.get('vm_size', None) + self.cloud_service_configuration = kwargs.get('cloud_service_configuration', None) + self.virtual_machine_configuration = kwargs.get('virtual_machine_configuration', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.enable_auto_scale = kwargs.get('enable_auto_scale', None) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + self.enable_inter_node_communication = kwargs.get('enable_inter_node_communication', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.application_licenses = kwargs.get('application_licenses', None) + self.max_tasks_per_node = kwargs.get('max_tasks_per_node', None) + self.task_scheduling_policy = kwargs.get('task_scheduling_policy', None) + self.user_accounts = kwargs.get('user_accounts', None) + self.metadata = kwargs.get('metadata', None) + + +class PoolDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolDisableAutoScaleOptions(Model): + """Additional parameters for disable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolDisableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolEnableAutoScaleOptions(Model): + """Additional parameters for enable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolEnableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolEnableAutoScaleParameter(Model): + """Options for enabling automatic scaling on a Pool. + + :param auto_scale_formula: The formula for the desired number of Compute + Nodes in the Pool. The formula is checked for validity before it is + applied to the Pool. If the formula is not valid, the Batch service + rejects the request with detailed error information. For more information + about specifying this formula, see Automatically scale Compute Nodes in an + Azure Batch Pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). If you specify a new interval, + then the existing autoscale evaluation schedule will be stopped and a new + autoscale evaluation schedule will be started, with its starting time + being the time when this request was issued. + :type auto_scale_evaluation_interval: timedelta + """ + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(PoolEnableAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + + +class PoolEndpointConfiguration(Model): + """The endpoint configuration for a Pool. + + All required parameters must be populated in order to send to Azure. + + :param inbound_nat_pools: Required. A list of inbound NAT Pools that can + be used to address specific ports on an individual Compute Node + externally. The maximum number of inbound NAT Pools per Batch Pool is 5. + If the maximum number of inbound NAT Pools is exceeded the request fails + with HTTP status code 400. + :type inbound_nat_pools: list[~azure.batch.models.InboundNATPool] + """ + + _validation = { + 'inbound_nat_pools': {'required': True}, + } + + _attribute_map = { + 'inbound_nat_pools': {'key': 'inboundNATPools', 'type': '[InboundNATPool]'}, + } + + def __init__(self, **kwargs): + super(PoolEndpointConfiguration, self).__init__(**kwargs) + self.inbound_nat_pools = kwargs.get('inbound_nat_pools', None) + + +class PoolEvaluateAutoScaleOptions(Model): + """Additional parameters for evaluate_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolEvaluateAutoScaleOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolEvaluateAutoScaleParameter(Model): + """Options for evaluating an automatic scaling formula on a Pool. + + All required parameters must be populated in order to send to Azure. + + :param auto_scale_formula: Required. The formula for the desired number of + Compute Nodes in the Pool. The formula is validated and its results + calculated, but it is not applied to the Pool. To apply the formula to the + Pool, 'Enable automatic scaling on a Pool'. For more information about + specifying this formula, see Automatically scale Compute Nodes in an Azure + Batch Pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + """ + + _validation = { + 'auto_scale_formula': {'required': True}, + } + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PoolEvaluateAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + + +class PoolExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolExistsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolInformation(Model): + """Specifies how a Job should be assigned to a Pool. + + :param pool_id: The ID of an existing Pool. All the Tasks of the Job will + run on the specified Pool. You must ensure that the Pool referenced by + this property exists. If the Pool does not exist at the time the Batch + service tries to schedule a Job, no Tasks for the Job will run until you + create a Pool with that id. Note that the Batch service will not reject + the Job request; it will simply not run Tasks until the Pool exists. You + must specify either the Pool ID or the auto Pool specification, but not + both. + :type pool_id: str + :param auto_pool_specification: Characteristics for a temporary 'auto + pool'. The Batch service will create this auto Pool when the Job is + submitted. If auto Pool creation fails, the Batch service moves the Job to + a completed state, and the Pool creation error is set in the Job's + scheduling error property. The Batch service manages the lifetime (both + creation and, unless keepAlive is specified, deletion) of the auto Pool. + Any user actions that affect the lifetime of the auto Pool while the Job + is active will result in unexpected behavior. You must specify either the + Pool ID or the auto Pool specification, but not both. + :type auto_pool_specification: ~azure.batch.models.AutoPoolSpecification + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'auto_pool_specification': {'key': 'autoPoolSpecification', 'type': 'AutoPoolSpecification'}, + } + + def __init__(self, **kwargs): + super(PoolInformation, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.auto_pool_specification = kwargs.get('auto_pool_specification', None) + + +class PoolListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Pools can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolListUsageMetricsOptions(Model): + """Additional parameters for list_usage_metrics operation. + + :param start_time: The earliest time from which to include metrics. This + must be at least two and a half hours before the current time. If not + specified this defaults to the start time of the last aggregation interval + currently available. + :type start_time: datetime + :param end_time: The latest time from which to include metrics. This must + be at least two hours before the current time. If not specified this + defaults to the end time of the last aggregation interval currently + available. + :type end_time: datetime + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'start_time': {'key': '', 'type': 'iso-8601'}, + 'end_time': {'key': '', 'type': 'iso-8601'}, + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolListUsageMetricsOptions, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.filter = kwargs.get('filter', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolNodeCounts(Model): + """The number of Compute Nodes in each state for a Pool. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the Pool. + :type pool_id: str + :param dedicated: The number of dedicated Compute Nodes in each state. + :type dedicated: ~azure.batch.models.NodeCounts + :param low_priority: The number of low priority Compute Nodes in each + state. + :type low_priority: ~azure.batch.models.NodeCounts + """ + + _validation = { + 'pool_id': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'dedicated': {'key': 'dedicated', 'type': 'NodeCounts'}, + 'low_priority': {'key': 'lowPriority', 'type': 'NodeCounts'}, + } + + def __init__(self, **kwargs): + super(PoolNodeCounts, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.dedicated = kwargs.get('dedicated', None) + self.low_priority = kwargs.get('low_priority', None) + + +class PoolPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolPatchOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolPatchParameter(Model): + """The set of changes to be made to a Pool. + + :param start_task: A Task to run on each Compute Node as it joins the + Pool. The Task runs when the Compute Node is added to the Pool or when the + Compute Node is restarted. If this element is present, it overwrites any + existing start Task. If omitted, any existing start Task is left + unchanged. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of Certificates to be installed on + each Compute Node in the Pool. If this element is present, it replaces any + existing Certificate references configured on the Pool. If omitted, any + existing Certificate references are left unchanged. For Windows Nodes, the + Batch service installs the Certificates to the specified Certificate store + and location. For Linux Compute Nodes, the Certificates are stored in a + directory inside the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: A list of Packages to be installed + on each Compute Node in the Pool. Changes to Package references affect all + new Nodes joining the Pool, but do not affect Compute Nodes that are + already in the Pool until they are rebooted or reimaged. If this element + is present, it replaces any existing Package references. If you specify an + empty collection, then all Package references are removed from the Pool. + If omitted, any existing Package references are left unchanged. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. If this element is present, it replaces any existing metadata + configured on the Pool. If you specify an empty collection, any metadata + is removed from the Pool. If omitted, any existing metadata is left + unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolPatchParameter, self).__init__(**kwargs) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.metadata = kwargs.get('metadata', None) + + +class PoolRemoveNodesOptions(Model): + """Additional parameters for remove_nodes operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolRemoveNodesOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolResizeOptions(Model): + """Additional parameters for resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolResizeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolResizeParameter(Model): + """Options for changing the size of a Pool. + + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. + :type target_low_priority_nodes: int + :param resize_timeout: The timeout for allocation of Nodes to the Pool or + removal of Compute Nodes from the Pool. The default value is 15 minutes. + The minimum value is 5 minutes. If you specify a value less than 5 + minutes, the Batch service returns an error; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a Compute Node + and its running task(s) if the Pool size is decreasing. The default value + is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _attribute_map = { + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, **kwargs): + super(PoolResizeParameter, self).__init__(**kwargs) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.node_deallocation_option = kwargs.get('node_deallocation_option', None) + + +class PoolSpecification(Model): + """Specification for creating a new Pool. + + All required parameters must be populated in order to send to Azure. + + :param display_name: The display name for the Pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of the virtual machines in the Pool. + All virtual machines in a Pool are the same size. For information about + available sizes of virtual machines in Pools, see Choose a VM size for + Compute Nodes in an Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the Pool. This property must be specified if the Pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch Account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the Pool. This property must be specified if the Pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param max_tasks_per_node: The maximum number of Tasks that can run + concurrently on a single Compute Node in the Pool. The default value is 1. + The maximum value is the smaller of 4 times the number of cores of the + vmSize of the Pool or 256. + :type max_tasks_per_node: int + :param task_scheduling_policy: How Tasks are distributed across Compute + Compute Nodes in a Pool. If not specified, the default is spread. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param resize_timeout: The timeout for allocation of Compute Nodes to the + Pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the Pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + element is required. The Pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the Pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the Pool permits direct + communication between Compute Nodes. Enabling inter-node communication + limits the maximum size of the Pool due to deployment restrictions on the + Compute Nodes of the Pool. This may result in the Pool not reaching its + desired size. The default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the Pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A Task to run on each Compute Node as it joins the + Pool. The Task runs when the Compute Node is added to the Pool or when the + Compute Node is restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of Certificates to be installed on + each Compute Node in the Pool. For Windows Nodes, the Batch service + installs the Certificates to the specified Certificate store and location. + For Linux Compute Nodes, the Certificates are stored in a directory inside + the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of Packages to be + installed on each Compute Node in the Pool. Changes to Package references + affect all new Nodes joining the Pool, but do not affect Compute Nodes + that are already in the Pool until they are rebooted or reimaged. There is + a maximum of 10 Package references on any given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each Compute Node in the Pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + Pool creation will fail. The permitted licenses available on the Pool are + 'maya', 'vray', '3dsmax', 'arnold'. An additional charge applies for each + application license added to the Pool. + :type application_licenses: list[str] + :param user_accounts: The list of user Accounts to be created on each + Compute Node in the Pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolSpecification, self).__init__(**kwargs) + self.display_name = kwargs.get('display_name', None) + self.vm_size = kwargs.get('vm_size', None) + self.cloud_service_configuration = kwargs.get('cloud_service_configuration', None) + self.virtual_machine_configuration = kwargs.get('virtual_machine_configuration', None) + self.max_tasks_per_node = kwargs.get('max_tasks_per_node', None) + self.task_scheduling_policy = kwargs.get('task_scheduling_policy', None) + self.resize_timeout = kwargs.get('resize_timeout', None) + self.target_dedicated_nodes = kwargs.get('target_dedicated_nodes', None) + self.target_low_priority_nodes = kwargs.get('target_low_priority_nodes', None) + self.enable_auto_scale = kwargs.get('enable_auto_scale', None) + self.auto_scale_formula = kwargs.get('auto_scale_formula', None) + self.auto_scale_evaluation_interval = kwargs.get('auto_scale_evaluation_interval', None) + self.enable_inter_node_communication = kwargs.get('enable_inter_node_communication', None) + self.network_configuration = kwargs.get('network_configuration', None) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.application_licenses = kwargs.get('application_licenses', None) + self.user_accounts = kwargs.get('user_accounts', None) + self.metadata = kwargs.get('metadata', None) + + +class PoolStatistics(Model): + """Contains utilization and resource usage statistics for the lifetime of a + Pool. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL for the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param usage_stats: Statistics related to Pool usage, such as the amount + of core-time used. + :type usage_stats: ~azure.batch.models.UsageStatistics + :param resource_stats: Statistics related to resource consumption by + Compute Nodes in the Pool. + :type resource_stats: ~azure.batch.models.ResourceStatistics + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'usage_stats': {'key': 'usageStats', 'type': 'UsageStatistics'}, + 'resource_stats': {'key': 'resourceStats', 'type': 'ResourceStatistics'}, + } + + def __init__(self, **kwargs): + super(PoolStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.usage_stats = kwargs.get('usage_stats', None) + self.resource_stats = kwargs.get('resource_stats', None) + + +class PoolStopResizeOptions(Model): + """Additional parameters for stop_resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolStopResizeOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class PoolUpdatePropertiesOptions(Model): + """Additional parameters for update_properties operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(PoolUpdatePropertiesOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class PoolUpdatePropertiesParameter(Model): + """The set of changes to be made to a Pool. + + All required parameters must be populated in order to send to Azure. + + :param start_task: A Task to run on each Compute Node as it joins the + Pool. The Task runs when the Compute Node is added to the Pool or when the + Compute Node is restarted. If this element is present, it overwrites any + existing start Task. If omitted, any existing start Task is removed from + the Pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: Required. A list of Certificates to be + installed on each Compute Node in the Pool. This list replaces any + existing Certificate references configured on the Pool. If you specify an + empty collection, any existing Certificate references are removed from the + Pool. For Windows Nodes, the Batch service installs the Certificates to + the specified Certificate store and location. For Linux Compute Nodes, the + Certificates are stored in a directory inside the Task working directory + and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the + Task to query for this location. For Certificates with visibility of + 'remoteUser', a 'certs' directory is created in the user's home directory + (e.g., /home/{user-name}/certs) and Certificates are placed in that + directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: Required. The list of Application + Packages to be installed on each Compute Compute Node in the Pool. The + list replaces any existing Application Package references on the Pool. + Changes to Application Package references affect all new Compute Nodes + joining the Pool, but do not affect Compute Compute Nodes that are already + in the Pool until they are rebooted or reimaged. There is a maximum of 10 + Application Package references on any given Pool. If omitted, or if you + specify an empty collection, any existing Application Packages references + are removed from the Pool. A maximum of 10 references may be specified on + a given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: Required. A list of name-value pairs associated with the + Pool as metadata. This list replaces any existing metadata configured on + the Pool. If omitted, or if you specify an empty collection, any existing + metadata is removed from the Pool. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'certificate_references': {'required': True}, + 'application_package_references': {'required': True}, + 'metadata': {'required': True}, + } + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, **kwargs): + super(PoolUpdatePropertiesParameter, self).__init__(**kwargs) + self.start_task = kwargs.get('start_task', None) + self.certificate_references = kwargs.get('certificate_references', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.metadata = kwargs.get('metadata', None) + + +class PoolUsageMetrics(Model): + """Usage metrics for a Pool across an aggregation interval. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the Pool whose metrics are aggregated + in this entry. + :type pool_id: str + :param start_time: Required. The start time of the aggregation interval + covered by this entry. + :type start_time: datetime + :param end_time: Required. The end time of the aggregation interval + covered by this entry. + :type end_time: datetime + :param vm_size: Required. The size of virtual machines in the Pool. All + VMs in a Pool are the same size. For information about available sizes of + virtual machines in Pools, see Choose a VM size for Compute Nodes in an + Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_core_hours: Required. The total core hours used in the Pool + during this aggregation interval. + :type total_core_hours: float + """ + + _validation = { + 'pool_id': {'required': True}, + 'start_time': {'required': True}, + 'end_time': {'required': True}, + 'vm_size': {'required': True}, + 'total_core_hours': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_core_hours': {'key': 'totalCoreHours', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(PoolUsageMetrics, self).__init__(**kwargs) + self.pool_id = kwargs.get('pool_id', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.vm_size = kwargs.get('vm_size', None) + self.total_core_hours = kwargs.get('total_core_hours', None) + + +class RecentJob(Model): + """Information about the most recent Job to run under the Job Schedule. + + :param id: The ID of the Job. + :type id: str + :param url: The URL of the Job. + :type url: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(RecentJob, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.url = kwargs.get('url', None) + + +class ResizeError(Model): + """An error that occurred when resizing a Pool. + + :param code: An identifier for the Pool resize error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Pool resize error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the Pool + resize error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(ResizeError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.values = kwargs.get('values', None) + + +class ResourceFile(Model): + """A single file or multiple files to be downloaded to a Compute Node. + + :param auto_storage_container_name: The storage container name in the auto + storage Account. The autoStorageContainerName, storageContainerUrl and + httpUrl properties are mutually exclusive and one of them must be + specified. + :type auto_storage_container_name: str + :param storage_container_url: The URL of the blob container within Azure + Blob Storage. The autoStorageContainerName, storageContainerUrl and + httpUrl properties are mutually exclusive and one of them must be + specified. This URL must be readable and listable using anonymous access; + that is, the Batch service does not present any credentials when + downloading blobs from the container. There are two ways to get such a URL + for a container in Azure storage: include a Shared Access Signature (SAS) + granting read and list permissions on the container, or set the ACL for + the container to allow public access. + :type storage_container_url: str + :param http_url: The URL of the file to download. The + autoStorageContainerName, storageContainerUrl and httpUrl properties are + mutually exclusive and one of them must be specified. If the URL points to + Azure Blob Storage, it must be readable using anonymous access; that is, + the Batch service does not present any credentials when downloading the + blob. There are two ways to get such a URL for a blob in Azure storage: + include a Shared Access Signature (SAS) granting read permissions on the + blob, or set the ACL for the blob or its container to allow public access. + :type http_url: str + :param blob_prefix: The blob prefix to use when downloading blobs from an + Azure Storage container. Only the blobs whose names begin with the + specified prefix will be downloaded. The property is valid only when + autoStorageContainerName or storageContainerUrl is used. This prefix can + be a partial filename or a subdirectory. If a prefix is not specified, all + the files in the container will be downloaded. + :type blob_prefix: str + :param file_path: The location on the Compute Node to which to download + the file(s), relative to the Task's working directory. If the httpUrl + property is specified, the filePath is required and describes the path + which the file will be downloaded to, including the filename. Otherwise, + if the autoStorageContainerName or storageContainerUrl property is + specified, filePath is optional and is the directory to download the files + to. In the case where filePath is used as a directory, any directory + structure already associated with the input data will be retained in full + and appended to the specified filePath directory. The specified relative + path cannot break out of the Task's working directory (for example by + using '..'). + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux Compute Nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows Compute Node. If this property is not specified + for a Linux Compute Node, then a default value of 0770 is applied to the + file. + :type file_mode: str + """ + + _attribute_map = { + 'auto_storage_container_name': {'key': 'autoStorageContainerName', 'type': 'str'}, + 'storage_container_url': {'key': 'storageContainerUrl', 'type': 'str'}, + 'http_url': {'key': 'httpUrl', 'type': 'str'}, + 'blob_prefix': {'key': 'blobPrefix', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ResourceFile, self).__init__(**kwargs) + self.auto_storage_container_name = kwargs.get('auto_storage_container_name', None) + self.storage_container_url = kwargs.get('storage_container_url', None) + self.http_url = kwargs.get('http_url', None) + self.blob_prefix = kwargs.get('blob_prefix', None) + self.file_path = kwargs.get('file_path', None) + self.file_mode = kwargs.get('file_mode', None) + + +class ResourceStatistics(Model): + """Statistics related to resource consumption by Compute Nodes in a Pool. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param avg_cpu_percentage: Required. The average CPU usage across all + Compute Nodes in the Pool (percentage per node). + :type avg_cpu_percentage: float + :param avg_memory_gi_b: Required. The average memory usage in GiB across + all Compute Nodes in the Pool. + :type avg_memory_gi_b: float + :param peak_memory_gi_b: Required. The peak memory usage in GiB across all + Compute Nodes in the Pool. + :type peak_memory_gi_b: float + :param avg_disk_gi_b: Required. The average used disk space in GiB across + all Compute Nodes in the Pool. + :type avg_disk_gi_b: float + :param peak_disk_gi_b: Required. The peak used disk space in GiB across + all Compute Nodes in the Pool. + :type peak_disk_gi_b: float + :param disk_read_iops: Required. The total number of disk read operations + across all Compute Nodes in the Pool. + :type disk_read_iops: long + :param disk_write_iops: Required. The total number of disk write + operations across all Compute Nodes in the Pool. + :type disk_write_iops: long + :param disk_read_gi_b: Required. The total amount of data in GiB of disk + reads across all Compute Nodes in the Pool. + :type disk_read_gi_b: float + :param disk_write_gi_b: Required. The total amount of data in GiB of disk + writes across all Compute Nodes in the Pool. + :type disk_write_gi_b: float + :param network_read_gi_b: Required. The total amount of data in GiB of + network reads across all Compute Nodes in the Pool. + :type network_read_gi_b: float + :param network_write_gi_b: Required. The total amount of data in GiB of + network writes across all Compute Nodes in the Pool. + :type network_write_gi_b: float + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'avg_cpu_percentage': {'required': True}, + 'avg_memory_gi_b': {'required': True}, + 'peak_memory_gi_b': {'required': True}, + 'avg_disk_gi_b': {'required': True}, + 'peak_disk_gi_b': {'required': True}, + 'disk_read_iops': {'required': True}, + 'disk_write_iops': {'required': True}, + 'disk_read_gi_b': {'required': True}, + 'disk_write_gi_b': {'required': True}, + 'network_read_gi_b': {'required': True}, + 'network_write_gi_b': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'avg_cpu_percentage': {'key': 'avgCPUPercentage', 'type': 'float'}, + 'avg_memory_gi_b': {'key': 'avgMemoryGiB', 'type': 'float'}, + 'peak_memory_gi_b': {'key': 'peakMemoryGiB', 'type': 'float'}, + 'avg_disk_gi_b': {'key': 'avgDiskGiB', 'type': 'float'}, + 'peak_disk_gi_b': {'key': 'peakDiskGiB', 'type': 'float'}, + 'disk_read_iops': {'key': 'diskReadIOps', 'type': 'long'}, + 'disk_write_iops': {'key': 'diskWriteIOps', 'type': 'long'}, + 'disk_read_gi_b': {'key': 'diskReadGiB', 'type': 'float'}, + 'disk_write_gi_b': {'key': 'diskWriteGiB', 'type': 'float'}, + 'network_read_gi_b': {'key': 'networkReadGiB', 'type': 'float'}, + 'network_write_gi_b': {'key': 'networkWriteGiB', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(ResourceStatistics, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.avg_cpu_percentage = kwargs.get('avg_cpu_percentage', None) + self.avg_memory_gi_b = kwargs.get('avg_memory_gi_b', None) + self.peak_memory_gi_b = kwargs.get('peak_memory_gi_b', None) + self.avg_disk_gi_b = kwargs.get('avg_disk_gi_b', None) + self.peak_disk_gi_b = kwargs.get('peak_disk_gi_b', None) + self.disk_read_iops = kwargs.get('disk_read_iops', None) + self.disk_write_iops = kwargs.get('disk_write_iops', None) + self.disk_read_gi_b = kwargs.get('disk_read_gi_b', None) + self.disk_write_gi_b = kwargs.get('disk_write_gi_b', None) + self.network_read_gi_b = kwargs.get('network_read_gi_b', None) + self.network_write_gi_b = kwargs.get('network_write_gi_b', None) + + +class Schedule(Model): + """The schedule according to which Jobs will be created. + + :param do_not_run_until: The earliest time at which any Job may be created + under this Job Schedule. If you do not specify a doNotRunUntil time, the + schedule becomes ready to create Jobs immediately. + :type do_not_run_until: datetime + :param do_not_run_after: A time after which no Job will be created under + this Job Schedule. The schedule will move to the completed state as soon + as this deadline is past and there is no active Job under this Job + Schedule. If you do not specify a doNotRunAfter time, and you are creating + a recurring Job Schedule, the Job Schedule will remain active until you + explicitly terminate it. + :type do_not_run_after: datetime + :param start_window: The time interval, starting from the time at which + the schedule indicates a Job should be created, within which a Job must be + created. If a Job is not created within the startWindow interval, then the + 'opportunity' is lost; no Job will be created until the next recurrence of + the schedule. If the schedule is recurring, and the startWindow is longer + than the recurrence interval, then this is equivalent to an infinite + startWindow, because the Job that is 'due' in one recurrenceInterval is + not carried forward into the next recurrence interval. The default is + infinite. The minimum value is 1 minute. If you specify a lower value, the + Batch service rejects the schedule with an error; if you are calling the + REST API directly, the HTTP status code is 400 (Bad Request). + :type start_window: timedelta + :param recurrence_interval: The time interval between the start times of + two successive Jobs under the Job Schedule. A Job Schedule can have at + most one active Job under it at any given time. Because a Job Schedule can + have at most one active Job under it at any given time, if it is time to + create a new Job under a Job Schedule, but the previous Job is still + running, the Batch service will not create the new Job until the previous + Job finishes. If the previous Job does not finish within the startWindow + period of the new recurrenceInterval, then no new Job will be scheduled + for that interval. For recurring Jobs, you should normally specify a + jobManagerTask in the jobSpecification. If you do not use jobManagerTask, + you will need an external process to monitor when Jobs are created, add + Tasks to the Jobs and terminate the Jobs ready for the next recurrence. + The default is that the schedule does not recur: one Job is created, + within the startWindow after the doNotRunUntil time, and the schedule is + complete as soon as that Job finishes. The minimum value is 1 minute. If + you specify a lower value, the Batch service rejects the schedule with an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type recurrence_interval: timedelta + """ + + _attribute_map = { + 'do_not_run_until': {'key': 'doNotRunUntil', 'type': 'iso-8601'}, + 'do_not_run_after': {'key': 'doNotRunAfter', 'type': 'iso-8601'}, + 'start_window': {'key': 'startWindow', 'type': 'duration'}, + 'recurrence_interval': {'key': 'recurrenceInterval', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(Schedule, self).__init__(**kwargs) + self.do_not_run_until = kwargs.get('do_not_run_until', None) + self.do_not_run_after = kwargs.get('do_not_run_after', None) + self.start_window = kwargs.get('start_window', None) + self.recurrence_interval = kwargs.get('recurrence_interval', None) + + +class StartTask(Model): + """A Task which is run when a Node joins a Pool in the Azure Batch service, or + when the Compute Node is rebooted or reimaged. + + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host + failure. Retries due to recovery operations are independent of and are not + counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, + an internal retry due to a recovery operation may occur. Because of this, + all Tasks should be idempotent. This means Tasks need to tolerate being + interrupted and restarted without causing any corruption or duplicate data. + The best practice for long running Tasks is to use some form of + checkpointing. In some cases the start Task may be re-run even though the + Compute Node was not rebooted. Special care should be taken to avoid start + Tasks which create breakaway process or install/launch services from the + start Task working directory, as this will block Batch from being able to + re-run the start Task. + + All required parameters must be populated in order to send to Azure. + + :param command_line: Required. The command line of the start Task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the Task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + start Task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all Task environment variables are + mapped into the container, and the Task command line is executed in the + container. Files produced in the container outside of + AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the Task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the start Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param user_identity: The user identity under which the start Task runs. + If omitted, the Task runs as a non-administrative user unique to the Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param max_task_retry_count: The maximum number of times the Task may be + retried. The Batch service retries a Task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the Task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the Task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the Task. If the maximum retry count is + -1, the Batch service retries the Task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start Task to complete successfully (that is, to exit with exit code 0) + before scheduling any Tasks on the Compute Node. If true and the start + Task fails on a Node, the Batch service retries the start Task up to its + maximum retry count (maxTaskRetryCount). If the Task has still not + completed successfully after all retries, then the Batch service marks the + Node unusable, and will not schedule Tasks to it. This condition can be + detected via the Compute Node state and failure info details. If false, + the Batch service will not wait for the start Task to complete. In this + case, other Tasks can start executing on the Compute Node while the start + Task is still running; and even if the start Task fails, new Tasks will + continue to be scheduled on the Compute Node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(StartTask, self).__init__(**kwargs) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.resource_files = kwargs.get('resource_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.user_identity = kwargs.get('user_identity', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) + self.wait_for_success = kwargs.get('wait_for_success', None) + + +class StartTaskInformation(Model): + """Information about a start Task running on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param state: Required. The state of the start Task on the Compute Node. + Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.StartTaskState + :param start_time: Required. The time at which the start Task started + running. This value is reset every time the Task is restarted or retried + (that is, this is the most recent time at which the start Task started + running). + :type start_time: datetime + :param end_time: The time at which the start Task stopped running. This is + the end time of the most recent run of the start Task, if that run has + completed (even if that run failed and a retry is pending). This element + is not present if the start Task is currently running. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the start Task + command line. This property is set only if the start Task is in the + completed state. In general, the exit code for a process reflects the + specific convention implemented by the application developer for that + process. If you use the exit code value to make decisions in your code, be + sure that you know the exit code convention used by the application + process. However, if the Batch service terminates the start Task (due to + timeout, or user termination via the API) you may see an operating + system-defined exit code. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the Task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the Task could not be run) and + file upload errors are not retried. The Batch service will retry the Task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Task + started running. This element is present only if the Task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the Task has been restarted for reasons + other than retry; for example, if the Compute Node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'state': {'required': True}, + 'start_time': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'state': {'key': 'state', 'type': 'StartTaskState'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(StartTaskInformation, self).__init__(**kwargs) + self.state = kwargs.get('state', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.retry_count = kwargs.get('retry_count', None) + self.last_retry_time = kwargs.get('last_retry_time', None) + self.result = kwargs.get('result', None) + + +class SubtaskInformation(Model): + """Information about an Azure Batch subtask. + + :param id: The ID of the subtask. + :type id: int + :param node_info: Information about the Compute Node on which the subtask + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param start_time: The time at which the subtask started running. If the + subtask has been restarted or retried, this is the most recent time at + which the subtask started running. + :type start_time: datetime + :param end_time: The time at which the subtask completed. This property is + set only if the subtask is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the subtask + command line. This property is set only if the subtask is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the subtask (due to timeout, or + user termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param state: The current state of the subtask. Possible values include: + 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.SubtaskState + :param state_transition_time: The time at which the subtask entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the subtask. This property is + not set if the subtask is in its initial running state. Possible values + include: 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.SubtaskState + :param previous_state_transition_time: The time at which the subtask + entered its previous state. This property is not set if the subtask is in + its initial running state. + :type previous_state_transition_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'int'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'state': {'key': 'state', 'type': 'SubtaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'SubtaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(SubtaskInformation, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.node_info = kwargs.get('node_info', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.state = kwargs.get('state', None) + self.state_transition_time = kwargs.get('state_transition_time', None) + self.previous_state = kwargs.get('previous_state', None) + self.previous_state_transition_time = kwargs.get('previous_state_transition_time', None) + self.result = kwargs.get('result', None) + + +class TaskAddCollectionOptions(Model): + """Additional parameters for add_collection operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskAddCollectionOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class TaskAddCollectionParameter(Model): + """A collection of Azure Batch Tasks to add. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. The collection of Tasks to add. The maximum count + of Tasks is 100. The total serialized size of this collection must be less + than 1MB. If it is greater than 1MB (for example if each Task has 100's of + resource files or environment variables), the request will fail with code + 'RequestBodyTooLarge' and should be retried again with fewer Tasks. + :type value: list[~azure.batch.models.TaskAddParameter] + """ + + _validation = { + 'value': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddParameter]'}, + } + + def __init__(self, **kwargs): + super(TaskAddCollectionParameter, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class TaskAddCollectionResult(Model): + """The result of adding a collection of Tasks to a Job. + + :param value: The results of the add Task collection operation. + :type value: list[~azure.batch.models.TaskAddResult] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddResult]'}, + } + + def __init__(self, **kwargs): + super(TaskAddCollectionResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class TaskAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskAddOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class TaskAddParameter(Model): + """An Azure Batch Task to add. + + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host + failure. Retries due to recovery operations are independent of and are not + counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, + an internal retry due to a recovery operation may occur. Because of this, + all Tasks should be idempotent. This means Tasks need to tolerate being + interrupted and restarted without causing any corruption or duplicate data. + The best practice for long running Tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Task within the + Job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within a Job that differ only by case). + :type id: str + :param display_name: A display name for the Task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: Required. The command line of the Task. For + multi-instance Tasks, the command line is executed as the primary Task, + after the primary Task and all subtasks have finished executing the + coordination command line. The command line does not run under a shell, + and therefore cannot take advantage of shell features such as environment + variable expansion. If you want to take advantage of such features, you + should invoke the shell in the command line, for example using "cmd /c + MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. If the command + line refers to file paths, it should use a relative path (relative to the + Task working directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Task runs. If the Pool that will run this Task has containerConfiguration + set, this must be set as well. If the Pool that will run this Task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all Task environment variables are mapped into the container, + and the Task command line is executed in the container. Files produced in + the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to + the host disk, meaning that Batch file APIs will not be able to access + those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param exit_conditions: How the Batch service should respond when the Task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. For + multi-instance Tasks, the resource files will only be downloaded to the + Compute Node on which the primary Task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the Compute Node after running the command line. For multi-instance + Tasks, the files will only be uploaded from the Compute Node on which the + primary Task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a Compute Node on which to start the new Task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this Task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the Job, the maxWallClockTime is infinite, + and the retentionTime is 7 days. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the Task runs. If + omitted, the Task runs as a non-administrative user unique to the Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param multi_instance_settings: An object that indicates that the Task is + a multi-instance Task, and contains information about how to run the + multi-instance Task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param depends_on: The Tasks that this Task depends on. This Task will not + be scheduled until all Tasks that it depends on have completed + successfully. If any of those Tasks fail and exhaust their retry counts, + this Task will never be scheduled. If the Job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of Packages that the Batch + service will deploy to the Compute Node before running the command line. + Application packages are downloaded and deployed to a shared directory, + not the Task working directory. Therefore, if a referenced package is + already on the Node, and is up to date, then it is not re-downloaded; the + existing copy on the Compute Node is used. If a referenced Package cannot + be installed, for example because the package has been deleted or because + download failed, the Task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the Task can use to perform Batch service operations. If this + property is set, the Batch service provides the Task with an + authentication token which can be used to authenticate Batch service + operations without requiring an Account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the Task can carry out using the token depend on the settings. For + example, a Task can request Job permissions in order to add other Tasks to + the Job, or check the status of the Job or of other Tasks under the Job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, **kwargs): + super(TaskAddParameter, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.display_name = kwargs.get('display_name', None) + self.command_line = kwargs.get('command_line', None) + self.container_settings = kwargs.get('container_settings', None) + self.exit_conditions = kwargs.get('exit_conditions', None) + self.resource_files = kwargs.get('resource_files', None) + self.output_files = kwargs.get('output_files', None) + self.environment_settings = kwargs.get('environment_settings', None) + self.affinity_info = kwargs.get('affinity_info', None) + self.constraints = kwargs.get('constraints', None) + self.user_identity = kwargs.get('user_identity', None) + self.multi_instance_settings = kwargs.get('multi_instance_settings', None) + self.depends_on = kwargs.get('depends_on', None) + self.application_package_references = kwargs.get('application_package_references', None) + self.authentication_token_settings = kwargs.get('authentication_token_settings', None) + + +class TaskAddResult(Model): + """Result for a single Task added as part of an add Task collection operation. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the add Task request. Possible + values include: 'success', 'clientError', 'serverError' + :type status: str or ~azure.batch.models.TaskAddStatus + :param task_id: Required. The ID of the Task for which this is the result. + :type task_id: str + :param e_tag: The ETag of the Task, if the Task was successfully added. + You can use this to detect whether the Task has changed between requests. + In particular, you can be pass the ETag with an Update Task request to + specify that your changes should take effect only if nobody else has + modified the Job in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the Task. + :type last_modified: datetime + :param location: The URL of the Task, if the Task was successfully added. + :type location: str + :param error: The error encountered while attempting to add the Task. + :type error: ~azure.batch.models.BatchError + """ + + _validation = { + 'status': {'required': True}, + 'task_id': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'TaskAddStatus'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'location': {'key': 'location', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'BatchError'}, + } + + def __init__(self, **kwargs): + super(TaskAddResult, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.task_id = kwargs.get('task_id', None) + self.e_tag = kwargs.get('e_tag', None) + self.last_modified = kwargs.get('last_modified', None) + self.location = kwargs.get('location', None) + self.error = kwargs.get('error', None) + + +class TaskConstraints(Model): + """Execution constraints to apply to a Task. + + :param max_wall_clock_time: The maximum elapsed time that the Task may + run, measured from the time the Task starts. If the Task does not complete + within the time limit, the Batch service terminates it. If this is not + specified, there is no time limit on how long the Task may run. + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the Task directory on + the Compute Node where it ran, from the time it completes execution. After + this time, the Batch service may delete the Task directory and all its + contents. The default is 7 days, i.e. the Task directory will be retained + for 7 days unless the Compute Node is removed or the Job is deleted. + :type retention_time: timedelta + :param max_task_retry_count: The maximum number of times the Task may be + retried. The Batch service retries a Task if its exit code is nonzero. + Note that this value specifically controls the number of retries for the + Task executable due to a nonzero exit code. The Batch service will try the + Task once, and may then retry up to this limit. For example, if the + maximum retry count is 3, Batch tries the Task up to 4 times (one initial + try and 3 retries). If the maximum retry count is 0, the Batch service + does not retry the Task after the first attempt. If the maximum retry + count is -1, the Batch service retries the Task without limit. + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(TaskConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = kwargs.get('max_wall_clock_time', None) + self.retention_time = kwargs.get('retention_time', None) + self.max_task_retry_count = kwargs.get('max_task_retry_count', None) + + +class TaskContainerExecutionInformation(Model): + """Contains information about the container which a Task is executing. + + :param container_id: The ID of the container. + :type container_id: str + :param state: The state of the container. This is the state of the + container according to the Docker service. It is equivalent to the status + field returned by "docker inspect". + :type state: str + :param error: Detailed error information about the container. This is the + detailed error string from the Docker service, if available. It is + equivalent to the error field returned by "docker inspect". + :type error: str + """ + + _attribute_map = { + 'container_id': {'key': 'containerId', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(TaskContainerExecutionInformation, self).__init__(**kwargs) + self.container_id = kwargs.get('container_id', None) + self.state = kwargs.get('state', None) + self.error = kwargs.get('error', None) + + +class TaskContainerSettings(Model): + """The container settings for a Task. + + All required parameters must be populated in order to send to Azure. + + :param container_run_options: Additional options to the container create + command. These additional options are supplied as arguments to the "docker + create" command, in addition to those controlled by the Batch Service. + :type container_run_options: str + :param image_name: Required. The Image to use to create the container in + which the Task will run. This is the full Image reference, as would be + specified to "docker pull". If no tag is provided as part of the Image + name, the tag ":latest" is used as a default. + :type image_name: str + :param registry: The private registry which contains the container Image. + This setting can be omitted if was already provided at Pool creation. + :type registry: ~azure.batch.models.ContainerRegistry + :param working_directory: The location of the container Task working + directory. The default is 'taskWorkingDirectory'. Possible values include: + 'taskWorkingDirectory', 'containerImageDefault' + :type working_directory: str or + ~azure.batch.models.ContainerWorkingDirectory + """ + + _validation = { + 'image_name': {'required': True}, + } + + _attribute_map = { + 'container_run_options': {'key': 'containerRunOptions', 'type': 'str'}, + 'image_name': {'key': 'imageName', 'type': 'str'}, + 'registry': {'key': 'registry', 'type': 'ContainerRegistry'}, + 'working_directory': {'key': 'workingDirectory', 'type': 'ContainerWorkingDirectory'}, + } + + def __init__(self, **kwargs): + super(TaskContainerSettings, self).__init__(**kwargs) + self.container_run_options = kwargs.get('container_run_options', None) + self.image_name = kwargs.get('image_name', None) + self.registry = kwargs.get('registry', None) + self.working_directory = kwargs.get('working_directory', None) + + +class TaskCounts(Model): + """The Task counts for a Job. + + All required parameters must be populated in order to send to Azure. + + :param active: Required. The number of Tasks in the active state. + :type active: int + :param running: Required. The number of Tasks in the running or preparing + state. + :type running: int + :param completed: Required. The number of Tasks in the completed state. + :type completed: int + :param succeeded: Required. The number of Tasks which succeeded. A Task + succeeds if its result (found in the executionInfo property) is 'success'. + :type succeeded: int + :param failed: Required. The number of Tasks which failed. A Task fails if + its result (found in the executionInfo property) is 'failure'. + :type failed: int + """ + + _validation = { + 'active': {'required': True}, + 'running': {'required': True}, + 'completed': {'required': True}, + 'succeeded': {'required': True}, + 'failed': {'required': True}, + } + + _attribute_map = { + 'active': {'key': 'active', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'completed': {'key': 'completed', 'type': 'int'}, + 'succeeded': {'key': 'succeeded', 'type': 'int'}, + 'failed': {'key': 'failed', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(TaskCounts, self).__init__(**kwargs) + self.active = kwargs.get('active', None) + self.running = kwargs.get('running', None) + self.completed = kwargs.get('completed', None) + self.succeeded = kwargs.get('succeeded', None) + self.failed = kwargs.get('failed', None) + + +class TaskDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskDeleteOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class TaskDependencies(Model): + """Specifies any dependencies of a Task. Any Task that is explicitly specified + or within a dependency range must complete before the dependant Task will + be scheduled. + + :param task_ids: The list of Task IDs that this Task depends on. All Tasks + in this list must complete successfully before the dependent Task can be + scheduled. The taskIds collection is limited to 64000 characters total + (i.e. the combined length of all Task IDs). If the taskIds collection + exceeds the maximum length, the Add Task request fails with error code + TaskDependencyListTooLong. In this case consider using Task ID ranges + instead. + :type task_ids: list[str] + :param task_id_ranges: The list of Task ID ranges that this Task depends + on. All Tasks in all ranges must complete successfully before the + dependent Task can be scheduled. + :type task_id_ranges: list[~azure.batch.models.TaskIdRange] + """ + + _attribute_map = { + 'task_ids': {'key': 'taskIds', 'type': '[str]'}, + 'task_id_ranges': {'key': 'taskIdRanges', 'type': '[TaskIdRange]'}, + } + + def __init__(self, **kwargs): + super(TaskDependencies, self).__init__(**kwargs) + self.task_ids = kwargs.get('task_ids', None) + self.task_id_ranges = kwargs.get('task_id_ranges', None) + + +class TaskExecutionInformation(Model): + """Information about the execution of a Task. + + All required parameters must be populated in order to send to Azure. + + :param start_time: The time at which the Task started running. 'Running' + corresponds to the running state, so if the Task specifies resource files + or Packages, then the start time reflects the time at which the Task + started downloading or deploying these. If the Task has been restarted or + retried, this is the most recent time at which the Task started running. + This property is present only for Tasks that are in the running or + completed state. + :type start_time: datetime + :param end_time: The time at which the Task completed. This property is + set only if the Task is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the Task + command line. This property is set only if the Task is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the Task (due to timeout, or user + termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the Task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the Task could not be run) and + file upload errors are not retried. The Batch service will retry the Task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Task + started running. This element is present only if the Task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the Task has been restarted for reasons + other than retry; for example, if the Compute Node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param requeue_count: Required. The number of times the Task has been + requeued by the Batch service as the result of a user request. When the + user removes Compute Nodes from a Pool (by resizing/shrinking the pool) or + when the Job is being disabled, the user can specify that running Tasks on + the Compute Nodes be requeued for execution. This count tracks how many + times the Task has been requeued for these reasons. + :type requeue_count: int + :param last_requeue_time: The most recent time at which the Task has been + requeued by the Batch service as the result of a user request. This + property is set only if the requeueCount is nonzero. + :type last_requeue_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'retry_count': {'required': True}, + 'requeue_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'requeue_count': {'key': 'requeueCount', 'type': 'int'}, + 'last_requeue_time': {'key': 'lastRequeueTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, **kwargs): + super(TaskExecutionInformation, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + self.exit_code = kwargs.get('exit_code', None) + self.container_info = kwargs.get('container_info', None) + self.failure_info = kwargs.get('failure_info', None) + self.retry_count = kwargs.get('retry_count', None) + self.last_retry_time = kwargs.get('last_retry_time', None) + self.requeue_count = kwargs.get('requeue_count', None) + self.last_requeue_time = kwargs.get('last_requeue_time', None) + self.result = kwargs.get('result', None) + + +class TaskFailureInformation(Model): + """Information about a Task failure. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the Task error. Possible values + include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the Task error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the Task error, intended to be + suitable for display in a user interface. + :type message: str + :param details: A list of additional details related to the error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, **kwargs): + super(TaskFailureInformation, self).__init__(**kwargs) + self.category = kwargs.get('category', None) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.details = kwargs.get('details', None) + + +class TaskGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskGetOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class TaskIdRange(Model): + """A range of Task IDs that a Task can depend on. All Tasks with IDs in the + range must complete successfully before the dependent Task can be + scheduled. + + The start and end of the range are inclusive. For example, if a range has + start 9 and end 12, then it represents Tasks '9', '10', '11' and '12'. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first Task ID in the range. + :type start: int + :param end: Required. The last Task ID in the range. + :type end: int + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(TaskIdRange, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + + +class TaskInformation(Model): + """Information about a Task running on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param task_url: The URL of the Task. + :type task_url: str + :param job_id: The ID of the Job to which the Task belongs. + :type job_id: str + :param task_id: The ID of the Task. + :type task_id: str + :param subtask_id: The ID of the subtask if the Task is a multi-instance + Task. + :type subtask_id: int + :param task_state: Required. The current state of the Task. Possible + values include: 'active', 'preparing', 'running', 'completed' + :type task_state: str or ~azure.batch.models.TaskState + :param execution_info: Information about the execution of the Task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + """ + + _validation = { + 'task_state': {'required': True}, + } + + _attribute_map = { + 'task_url': {'key': 'taskUrl', 'type': 'str'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'subtask_id': {'key': 'subtaskId', 'type': 'int'}, + 'task_state': {'key': 'taskState', 'type': 'TaskState'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + } + + def __init__(self, **kwargs): + super(TaskInformation, self).__init__(**kwargs) + self.task_url = kwargs.get('task_url', None) + self.job_id = kwargs.get('job_id', None) + self.task_id = kwargs.get('task_id', None) + self.subtask_id = kwargs.get('subtask_id', None) + self.task_state = kwargs.get('task_state', None) + self.execution_info = kwargs.get('execution_info', None) + + +class TaskListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskListOptions, self).__init__(**kwargs) + self.filter = kwargs.get('filter', None) + self.select = kwargs.get('select', None) + self.expand = kwargs.get('expand', None) + self.max_results = kwargs.get('max_results', 1000) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class TaskListSubtasksOptions(Model): + """Additional parameters for list_subtasks operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskListSubtasksOptions, self).__init__(**kwargs) + self.select = kwargs.get('select', None) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + + +class TaskReactivateOptions(Model): + """Additional parameters for reactivate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskReactivateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class TaskSchedulingPolicy(Model): + """Specifies how Tasks should be distributed across Compute Nodes. + + All required parameters must be populated in order to send to Azure. + + :param node_fill_type: Required. How Tasks are distributed across Compute + Compute Nodes in a Pool. If not specified, the default is spread. Possible + values include: 'spread', 'pack' + :type node_fill_type: str or ~azure.batch.models.ComputeNodeFillType + """ + + _validation = { + 'node_fill_type': {'required': True}, + } + + _attribute_map = { + 'node_fill_type': {'key': 'nodeFillType', 'type': 'ComputeNodeFillType'}, + } + + def __init__(self, **kwargs): + super(TaskSchedulingPolicy, self).__init__(**kwargs) + self.node_fill_type = kwargs.get('node_fill_type', None) + + +class TaskStatistics(Model): + """Resource usage statistics for a Task. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all Compute Nodes) consumed by the Task. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all Compute Nodes) consumed by the Task. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of the Task. + The wall clock time is the elapsed time from when the Task started running + on a Compute Node to when it finished (or to the last time the statistics + were updated, if the Task had not finished by then). If the Task was + retried, this includes the wall clock time of all the Task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by the Task. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by the Task. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by the + Task. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by the + Task. + :type write_io_gi_b: float + :param wait_time: Required. The total wait time of the Task. The wait time + for a Task is defined as the elapsed time between the creation of the Task + and the start of Task execution. (If the Task is retried due to failures, + the wait time is the time to the most recent Task execution.). + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(TaskStatistics, self).__init__(**kwargs) + self.url = kwargs.get('url', None) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.user_cpu_time = kwargs.get('user_cpu_time', None) + self.kernel_cpu_time = kwargs.get('kernel_cpu_time', None) + self.wall_clock_time = kwargs.get('wall_clock_time', None) + self.read_iops = kwargs.get('read_iops', None) + self.write_iops = kwargs.get('write_iops', None) + self.read_io_gi_b = kwargs.get('read_io_gi_b', None) + self.write_io_gi_b = kwargs.get('write_io_gi_b', None) + self.wait_time = kwargs.get('wait_time', None) + + +class TaskTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskTerminateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class TaskUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, **kwargs): + super(TaskUpdateOptions, self).__init__(**kwargs) + self.timeout = kwargs.get('timeout', 30) + self.client_request_id = kwargs.get('client_request_id', None) + self.return_client_request_id = kwargs.get('return_client_request_id', False) + self.ocp_date = kwargs.get('ocp_date', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + + +class TaskUpdateParameter(Model): + """The set of changes to be made to a Task. + + :param constraints: Constraints that apply to this Task. If omitted, the + Task is given the default constraints. For multi-instance Tasks, updating + the retention time applies only to the primary Task and not subtasks. + :type constraints: ~azure.batch.models.TaskConstraints + """ + + _attribute_map = { + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + } + + def __init__(self, **kwargs): + super(TaskUpdateParameter, self).__init__(**kwargs) + self.constraints = kwargs.get('constraints', None) + + +class UploadBatchServiceLogsConfiguration(Model): + """The Azure Batch service log files upload configuration for a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the Batch Service log file(s). The URL must + include a Shared Access Signature (SAS) granting write permissions to the + container. The SAS duration must allow enough time for the upload to + finish. The start time for SAS is optional and recommended to not be + specified. + :type container_url: str + :param start_time: Required. The start of the time range from which to + upload Batch Service log file(s). Any log file containing a log message in + the time range will be uploaded. This means that the operation might + retrieve more logs than have been requested since the entire log file is + always uploaded, but the operation should not retrieve fewer logs than + have been requested. + :type start_time: datetime + :param end_time: The end of the time range from which to upload Batch + Service log file(s). Any log file containing a log message in the time + range will be uploaded. This means that the operation might retrieve more + logs than have been requested since the entire log file is always + uploaded, but the operation should not retrieve fewer logs than have been + requested. If omitted, the default is to upload all logs available after + the startTime. + :type end_time: datetime + """ + + _validation = { + 'container_url': {'required': True}, + 'start_time': {'required': True}, + } + + _attribute_map = { + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(UploadBatchServiceLogsConfiguration, self).__init__(**kwargs) + self.container_url = kwargs.get('container_url', None) + self.start_time = kwargs.get('start_time', None) + self.end_time = kwargs.get('end_time', None) + + +class UploadBatchServiceLogsResult(Model): + """The result of uploading Batch service log files from a specific Compute + Node. + + All required parameters must be populated in order to send to Azure. + + :param virtual_directory_name: Required. The virtual directory within + Azure Blob Storage container to which the Batch Service log file(s) will + be uploaded. The virtual directory name is part of the blob name for each + log file uploaded, and it is built based poolId, nodeId and a unique + identifier. + :type virtual_directory_name: str + :param number_of_files_uploaded: Required. The number of log files which + will be uploaded. + :type number_of_files_uploaded: int + """ + + _validation = { + 'virtual_directory_name': {'required': True}, + 'number_of_files_uploaded': {'required': True}, + } + + _attribute_map = { + 'virtual_directory_name': {'key': 'virtualDirectoryName', 'type': 'str'}, + 'number_of_files_uploaded': {'key': 'numberOfFilesUploaded', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(UploadBatchServiceLogsResult, self).__init__(**kwargs) + self.virtual_directory_name = kwargs.get('virtual_directory_name', None) + self.number_of_files_uploaded = kwargs.get('number_of_files_uploaded', None) + + +class UsageStatistics(Model): + """Statistics related to Pool usage information. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param dedicated_core_time: Required. The aggregated wall-clock time of + the dedicated Compute Node cores being part of the Pool. + :type dedicated_core_time: timedelta + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'dedicated_core_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'dedicated_core_time': {'key': 'dedicatedCoreTime', 'type': 'duration'}, + } + + def __init__(self, **kwargs): + super(UsageStatistics, self).__init__(**kwargs) + self.start_time = kwargs.get('start_time', None) + self.last_update_time = kwargs.get('last_update_time', None) + self.dedicated_core_time = kwargs.get('dedicated_core_time', None) + + +class UserAccount(Model): + """Properties used to create a user used to execute Tasks on an Azure Batch + Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the user Account. + :type name: str + :param password: Required. The password for the user Account. + :type password: str + :param elevation_level: The elevation level of the user Account. The + default value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + :param linux_user_configuration: The Linux-specific user configuration for + the user Account. This property is ignored if specified on a Windows Pool. + If not specified, the user is created with the default options. + :type linux_user_configuration: ~azure.batch.models.LinuxUserConfiguration + :param windows_user_configuration: The Windows-specific user configuration + for the user Account. This property can only be specified if the user is + on a Windows Pool. If not specified and on a Windows Pool, the user is + created with the default options. + :type windows_user_configuration: + ~azure.batch.models.WindowsUserConfiguration + """ + + _validation = { + 'name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + 'linux_user_configuration': {'key': 'linuxUserConfiguration', 'type': 'LinuxUserConfiguration'}, + 'windows_user_configuration': {'key': 'windowsUserConfiguration', 'type': 'WindowsUserConfiguration'}, + } + + def __init__(self, **kwargs): + super(UserAccount, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.password = kwargs.get('password', None) + self.elevation_level = kwargs.get('elevation_level', None) + self.linux_user_configuration = kwargs.get('linux_user_configuration', None) + self.windows_user_configuration = kwargs.get('windows_user_configuration', None) + + +class UserIdentity(Model): + """The definition of the user identity under which the Task is run. + + Specify either the userName or autoUser property, but not both. + + :param user_name: The name of the user identity under which the Task is + run. The userName and autoUser properties are mutually exclusive; you must + specify one but not both. + :type user_name: str + :param auto_user: The auto user under which the Task is run. The userName + and autoUser properties are mutually exclusive; you must specify one but + not both. + :type auto_user: ~azure.batch.models.AutoUserSpecification + """ + + _attribute_map = { + 'user_name': {'key': 'username', 'type': 'str'}, + 'auto_user': {'key': 'autoUser', 'type': 'AutoUserSpecification'}, + } + + def __init__(self, **kwargs): + super(UserIdentity, self).__init__(**kwargs) + self.user_name = kwargs.get('user_name', None) + self.auto_user = kwargs.get('auto_user', None) + + +class VirtualMachineConfiguration(Model): + """The configuration for Compute Nodes in a Pool based on the Azure Virtual + Machines infrastructure. + + All required parameters must be populated in order to send to Azure. + + :param image_reference: Required. A reference to the Azure Virtual + Machines Marketplace Image or the custom Virtual Machine Image to use. + :type image_reference: ~azure.batch.models.ImageReference + :param node_agent_sku_id: Required. The SKU of the Batch Compute Node + agent to be provisioned on Compute Nodes in the Pool. The Batch Compute + Node agent is a program that runs on each Compute Node in the Pool, and + provides the command-and-control interface between the Compute Node and + the Batch service. There are different implementations of the Compute Node + agent, known as SKUs, for different operating systems. You must specify a + Compute Node agent SKU which matches the selected Image reference. To get + the list of supported Compute Node agent SKUs along with their list of + verified Image references, see the 'List supported Compute Node agent + SKUs' operation. + :type node_agent_sku_id: str + :param windows_configuration: Windows operating system settings on the + virtual machine. This property must not be specified if the imageReference + property specifies a Linux OS Image. + :type windows_configuration: ~azure.batch.models.WindowsConfiguration + :param data_disks: The configuration for data disks attached to the + Compute Nodes in the Pool. This property must be specified if the Compute + Nodes in the Pool need to have empty data disks attached to them. This + cannot be updated. Each Compute Node gets its own disk (the disk is not a + file share). Existing disks cannot be attached, each attached disk is + empty. When the Compute Node is removed from the Pool, the disk and all + data associated with it is also deleted. The disk is not formatted after + being attached, it must be formatted before use - for more information see + https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux + and + https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. + :type data_disks: list[~azure.batch.models.DataDisk] + :param license_type: The type of on-premises license to be used when + deploying the operating system. This only applies to Images that contain + the Windows operating system, and should only be used when you hold valid + on-premises licenses for the Compute Nodes which will be deployed. If + omitted, no on-premises licensing discount is applied. Values are: + Windows_Server - The on-premises license is for Windows Server. + Windows_Client - The on-premises license is for Windows Client. + :type license_type: str + :param container_configuration: The container configuration for the Pool. + If specified, setup is performed on each Compute Node in the Pool to allow + Tasks to run in containers. All regular Tasks and Job manager Tasks run on + this Pool must specify the containerSettings property, and all other Tasks + may specify it. + :type container_configuration: ~azure.batch.models.ContainerConfiguration + """ + + _validation = { + 'image_reference': {'required': True}, + 'node_agent_sku_id': {'required': True}, + } + + _attribute_map = { + 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, + 'node_agent_sku_id': {'key': 'nodeAgentSKUId', 'type': 'str'}, + 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, + 'data_disks': {'key': 'dataDisks', 'type': '[DataDisk]'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'container_configuration': {'key': 'containerConfiguration', 'type': 'ContainerConfiguration'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineConfiguration, self).__init__(**kwargs) + self.image_reference = kwargs.get('image_reference', None) + self.node_agent_sku_id = kwargs.get('node_agent_sku_id', None) + self.windows_configuration = kwargs.get('windows_configuration', None) + self.data_disks = kwargs.get('data_disks', None) + self.license_type = kwargs.get('license_type', None) + self.container_configuration = kwargs.get('container_configuration', None) + + +class WindowsConfiguration(Model): + """Windows operating system settings to apply to the virtual machine. + + :param enable_automatic_updates: Whether automatic updates are enabled on + the virtual machine. If omitted, the default value is true. + :type enable_automatic_updates: bool + """ + + _attribute_map = { + 'enable_automatic_updates': {'key': 'enableAutomaticUpdates', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(WindowsConfiguration, self).__init__(**kwargs) + self.enable_automatic_updates = kwargs.get('enable_automatic_updates', None) + + +class WindowsUserConfiguration(Model): + """Properties used to create a user Account on a Windows Compute Node. + + :param login_mode: The login mode for the user. The default value for + VirtualMachineConfiguration Pools is 'batch' and for + CloudServiceConfiguration Pools is 'interactive'. Possible values include: + 'batch', 'interactive' + :type login_mode: str or ~azure.batch.models.LoginMode + """ + + _attribute_map = { + 'login_mode': {'key': 'loginMode', 'type': 'LoginMode'}, + } + + def __init__(self, **kwargs): + super(WindowsUserConfiguration, self).__init__(**kwargs) + self.login_mode = kwargs.get('login_mode', None) diff --git a/azext/batch/_vendor/v5/azure/batch/models/_models_py3.py b/azext/batch/_vendor/v5/azure/batch/models/_models_py3.py new file mode 100644 index 00000000..32475cd8 --- /dev/null +++ b/azext/batch/_vendor/v5/azure/batch/models/_models_py3.py @@ -0,0 +1,10458 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class AccountListPoolNodeCountsOptions(Model): + """Additional parameters for list_pool_node_counts operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. + :type filter: str + :param max_results: The maximum number of items to return in the response. + Default value: 10 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=10, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(AccountListPoolNodeCountsOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class AccountListSupportedImagesOptions(Model): + """Additional parameters for list_supported_images operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(AccountListSupportedImagesOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class AffinityInformation(Model): + """A locality hint that can be used by the Batch service to select a Compute + Node on which to start a Task. + + All required parameters must be populated in order to send to Azure. + + :param affinity_id: Required. An opaque string representing the location + of a Compute Node or a Task that has run previously. You can pass the + affinityId of a Node to indicate that this Task needs to run on that + Compute Node. Note that this is just a soft affinity. If the target + Compute Node is busy or unavailable at the time the Task is scheduled, + then the Task will be scheduled elsewhere. + :type affinity_id: str + """ + + _validation = { + 'affinity_id': {'required': True}, + } + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + } + + def __init__(self, *, affinity_id: str, **kwargs) -> None: + super(AffinityInformation, self).__init__(**kwargs) + self.affinity_id = affinity_id + + +class ApplicationGetOptions(Model): + """Additional parameters for get operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ApplicationGetOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ApplicationListOptions(Model): + """Additional parameters for list operation. + + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 applications can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ApplicationListOptions, self).__init__(**kwargs) + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ApplicationPackageReference(Model): + """A reference to an Package to be deployed to Compute Nodes. + + All required parameters must be populated in order to send to Azure. + + :param application_id: Required. The ID of the application to deploy. + :type application_id: str + :param version: The version of the application to deploy. If omitted, the + default version is deployed. If this is omitted on a Pool, and no default + version is specified for this application, the request fails with the + error code InvalidApplicationPackageReferences and HTTP status code 409. + If this is omitted on a Task, and no default version is specified for this + application, the Task fails with a pre-processing error. + :type version: str + """ + + _validation = { + 'application_id': {'required': True}, + } + + _attribute_map = { + 'application_id': {'key': 'applicationId', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, *, application_id: str, version: str=None, **kwargs) -> None: + super(ApplicationPackageReference, self).__init__(**kwargs) + self.application_id = application_id + self.version = version + + +class ApplicationSummary(Model): + """Contains information about an application in an Azure Batch Account. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the application + within the Account. + :type id: str + :param display_name: Required. The display name for the application. + :type display_name: str + :param versions: Required. The list of available versions of the + application. + :type versions: list[str] + """ + + _validation = { + 'id': {'required': True}, + 'display_name': {'required': True}, + 'versions': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'versions': {'key': 'versions', 'type': '[str]'}, + } + + def __init__(self, *, id: str, display_name: str, versions, **kwargs) -> None: + super(ApplicationSummary, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.versions = versions + + +class AuthenticationTokenSettings(Model): + """The settings for an authentication token that the Task can use to perform + Batch service operations. + + :param access: The Batch resources to which the token grants access. The + authentication token grants access to a limited set of Batch service + operations. Currently the only supported value for the access property is + 'job', which grants access to all operations related to the Job which + contains the Task. + :type access: list[str or ~azure.batch.models.AccessScope] + """ + + _attribute_map = { + 'access': {'key': 'access', 'type': '[AccessScope]'}, + } + + def __init__(self, *, access=None, **kwargs) -> None: + super(AuthenticationTokenSettings, self).__init__(**kwargs) + self.access = access + + +class AutoPoolSpecification(Model): + """Specifies characteristics for a temporary 'auto pool'. The Batch service + will create this auto Pool when the Job is submitted. + + All required parameters must be populated in order to send to Azure. + + :param auto_pool_id_prefix: A prefix to be added to the unique identifier + when a Pool is automatically created. The Batch service assigns each auto + Pool a unique identifier on creation. To distinguish between Pools created + for different purposes, you can specify this element to add a prefix to + the ID that is assigned. The prefix can be up to 20 characters long. + :type auto_pool_id_prefix: str + :param pool_lifetime_option: Required. The minimum lifetime of created + auto Pools, and how multiple Jobs on a schedule are assigned to Pools. + Possible values include: 'jobSchedule', 'job' + :type pool_lifetime_option: str or ~azure.batch.models.PoolLifetimeOption + :param keep_alive: Whether to keep an auto Pool alive after its lifetime + expires. If false, the Batch service deletes the Pool once its lifetime + (as determined by the poolLifetimeOption setting) expires; that is, when + the Job or Job Schedule completes. If true, the Batch service does not + delete the Pool automatically. It is up to the user to delete auto Pools + created with this option. + :type keep_alive: bool + :param pool: The Pool specification for the auto Pool. + :type pool: ~azure.batch.models.PoolSpecification + """ + + _validation = { + 'pool_lifetime_option': {'required': True}, + } + + _attribute_map = { + 'auto_pool_id_prefix': {'key': 'autoPoolIdPrefix', 'type': 'str'}, + 'pool_lifetime_option': {'key': 'poolLifetimeOption', 'type': 'PoolLifetimeOption'}, + 'keep_alive': {'key': 'keepAlive', 'type': 'bool'}, + 'pool': {'key': 'pool', 'type': 'PoolSpecification'}, + } + + def __init__(self, *, pool_lifetime_option, auto_pool_id_prefix: str=None, keep_alive: bool=None, pool=None, **kwargs) -> None: + super(AutoPoolSpecification, self).__init__(**kwargs) + self.auto_pool_id_prefix = auto_pool_id_prefix + self.pool_lifetime_option = pool_lifetime_option + self.keep_alive = keep_alive + self.pool = pool + + +class AutoScaleRun(Model): + """The results and errors from an execution of a Pool autoscale formula. + + All required parameters must be populated in order to send to Azure. + + :param timestamp: Required. The time at which the autoscale formula was + last evaluated. + :type timestamp: datetime + :param results: The final values of all variables used in the evaluation + of the autoscale formula. Each variable value is returned in the form + $variable=value, and variables are separated by semicolons. + :type results: str + :param error: Details of the error encountered evaluating the autoscale + formula on the Pool, if the evaluation was unsuccessful. + :type error: ~azure.batch.models.AutoScaleRunError + """ + + _validation = { + 'timestamp': {'required': True}, + } + + _attribute_map = { + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'results': {'key': 'results', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'AutoScaleRunError'}, + } + + def __init__(self, *, timestamp, results: str=None, error=None, **kwargs) -> None: + super(AutoScaleRun, self).__init__(**kwargs) + self.timestamp = timestamp + self.results = results + self.error = error + + +class AutoScaleRunError(Model): + """An error that occurred when executing or evaluating a Pool autoscale + formula. + + :param code: An identifier for the autoscale error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the autoscale error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the autoscale + error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, values=None, **kwargs) -> None: + super(AutoScaleRunError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values + + +class AutoUserSpecification(Model): + """Specifies the parameters for the auto user that runs a Task on the Batch + service. + + :param scope: The scope for the auto user. The default value is Task. + Possible values include: 'task', 'pool' + :type scope: str or ~azure.batch.models.AutoUserScope + :param elevation_level: The elevation level of the auto user. The default + value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + """ + + _attribute_map = { + 'scope': {'key': 'scope', 'type': 'AutoUserScope'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + } + + def __init__(self, *, scope=None, elevation_level=None, **kwargs) -> None: + super(AutoUserSpecification, self).__init__(**kwargs) + self.scope = scope + self.elevation_level = elevation_level + + +class BatchError(Model): + """An error response received from the Azure Batch service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: ~azure.batch.models.ErrorMessage + :param values: A collection of key-value pairs containing additional + details about the error. + :type values: list[~azure.batch.models.BatchErrorDetail] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'ErrorMessage'}, + 'values': {'key': 'values', 'type': '[BatchErrorDetail]'}, + } + + def __init__(self, *, code: str=None, message=None, values=None, **kwargs) -> None: + super(BatchError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values + + +class BatchErrorException(HttpOperationError): + """Server responsed with exception of type: 'BatchError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(BatchErrorException, self).__init__(deserialize, response, 'BatchError', *args) + + +class BatchErrorDetail(Model): + """An item of additional information included in an Azure Batch error + response. + + :param key: An identifier specifying the meaning of the Value property. + :type key: str + :param value: The additional information included with the error response. + :type value: str + """ + + _attribute_map = { + 'key': {'key': 'key', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, key: str=None, value: str=None, **kwargs) -> None: + super(BatchErrorDetail, self).__init__(**kwargs) + self.key = key + self.value = value + + +class Certificate(Model): + """A Certificate that can be installed on Compute Nodes and can be used to + authenticate operations on the machine. + + :param thumbprint: The X.509 thumbprint of the Certificate. This is a + sequence of up to 40 hex digits. + :type thumbprint: str + :param thumbprint_algorithm: The algorithm used to derive the thumbprint. + :type thumbprint_algorithm: str + :param url: The URL of the Certificate. + :type url: str + :param state: The current state of the Certificate. Possible values + include: 'active', 'deleting', 'deleteFailed' + :type state: str or ~azure.batch.models.CertificateState + :param state_transition_time: The time at which the Certificate entered + its current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Certificate. This + property is not set if the Certificate is in its initial active state. + Possible values include: 'active', 'deleting', 'deleteFailed' + :type previous_state: str or ~azure.batch.models.CertificateState + :param previous_state_transition_time: The time at which the Certificate + entered its previous state. This property is not set if the Certificate is + in its initial Active state. + :type previous_state_transition_time: datetime + :param public_data: The public part of the Certificate as a base-64 + encoded .cer file. + :type public_data: str + :param delete_certificate_error: The error that occurred on the last + attempt to delete this Certificate. This property is set only if the + Certificate is in the DeleteFailed state. + :type delete_certificate_error: ~azure.batch.models.DeleteCertificateError + """ + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'CertificateState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'CertificateState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'public_data': {'key': 'publicData', 'type': 'str'}, + 'delete_certificate_error': {'key': 'deleteCertificateError', 'type': 'DeleteCertificateError'}, + } + + def __init__(self, *, thumbprint: str=None, thumbprint_algorithm: str=None, url: str=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, public_data: str=None, delete_certificate_error=None, **kwargs) -> None: + super(Certificate, self).__init__(**kwargs) + self.thumbprint = thumbprint + self.thumbprint_algorithm = thumbprint_algorithm + self.url = url + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.public_data = public_data + self.delete_certificate_error = delete_certificate_error + + +class CertificateAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class CertificateAddParameter(Model): + """A Certificate that can be installed on Compute Nodes and can be used to + authenticate operations on the machine. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The X.509 thumbprint of the Certificate. This + is a sequence of up to 40 hex digits (it may include spaces but these are + removed). + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm used to derive the + thumbprint. This must be sha1. + :type thumbprint_algorithm: str + :param data: Required. The base64-encoded contents of the Certificate. The + maximum size is 10KB. + :type data: str + :param certificate_format: The format of the Certificate data. Possible + values include: 'pfx', 'cer' + :type certificate_format: str or ~azure.batch.models.CertificateFormat + :param password: The password to access the Certificate's private key. + This is required if the Certificate format is pfx. It should be omitted if + the Certificate format is cer. + :type password: str + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + 'data': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'data': {'key': 'data', 'type': 'str'}, + 'certificate_format': {'key': 'certificateFormat', 'type': 'CertificateFormat'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, *, thumbprint: str, thumbprint_algorithm: str, data: str, certificate_format=None, password: str=None, **kwargs) -> None: + super(CertificateAddParameter, self).__init__(**kwargs) + self.thumbprint = thumbprint + self.thumbprint_algorithm = thumbprint_algorithm + self.data = data + self.certificate_format = certificate_format + self.password = password + + +class CertificateCancelDeletionOptions(Model): + """Additional parameters for cancel_deletion operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateCancelDeletionOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class CertificateDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class CertificateGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateGetOptions, self).__init__(**kwargs) + self.select = select + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class CertificateListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Certificates can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(CertificateListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class CertificateReference(Model): + """A reference to a Certificate to be installed on Compute Nodes in a Pool. + + All required parameters must be populated in order to send to Azure. + + :param thumbprint: Required. The thumbprint of the Certificate. + :type thumbprint: str + :param thumbprint_algorithm: Required. The algorithm with which the + thumbprint is associated. This must be sha1. + :type thumbprint_algorithm: str + :param store_location: The location of the Certificate store on the + Compute Node into which to install the Certificate. The default value is + currentuser. This property is applicable only for Pools configured with + Windows Compute Nodes (that is, created with cloudServiceConfiguration, or + with virtualMachineConfiguration using a Windows Image reference). For + Linux Compute Nodes, the Certificates are stored in a directory inside the + Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + Possible values include: 'currentUser', 'localMachine' + :type store_location: str or ~azure.batch.models.CertificateStoreLocation + :param store_name: The name of the Certificate store on the Compute Node + into which to install the Certificate. This property is applicable only + for Pools configured with Windows Compute Nodes (that is, created with + cloudServiceConfiguration, or with virtualMachineConfiguration using a + Windows Image reference). Common store names include: My, Root, CA, Trust, + Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but + any custom store name can also be used. The default value is My. + :type store_name: str + :param visibility: Which user Accounts on the Compute Node should have + access to the private data of the Certificate. You can specify more than + one visibility in this collection. The default is all Accounts. + :type visibility: list[str or ~azure.batch.models.CertificateVisibility] + """ + + _validation = { + 'thumbprint': {'required': True}, + 'thumbprint_algorithm': {'required': True}, + } + + _attribute_map = { + 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, + 'thumbprint_algorithm': {'key': 'thumbprintAlgorithm', 'type': 'str'}, + 'store_location': {'key': 'storeLocation', 'type': 'CertificateStoreLocation'}, + 'store_name': {'key': 'storeName', 'type': 'str'}, + 'visibility': {'key': 'visibility', 'type': '[CertificateVisibility]'}, + } + + def __init__(self, *, thumbprint: str, thumbprint_algorithm: str, store_location=None, store_name: str=None, visibility=None, **kwargs) -> None: + super(CertificateReference, self).__init__(**kwargs) + self.thumbprint = thumbprint + self.thumbprint_algorithm = thumbprint_algorithm + self.store_location = store_location + self.store_name = store_name + self.visibility = visibility + + +class CloudError(Model): + """CloudError. + """ + + _attribute_map = { + } + + +class CloudJob(Model): + """An Azure Batch Job. + + :param id: A string that uniquely identifies the Job within the Account. + The ID is case-preserving and case-insensitive (that is, you may not have + two IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Job. + :type display_name: str + :param uses_task_dependencies: Whether Tasks in the Job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param url: The URL of the Job. + :type url: str + :param e_tag: The ETag of the Job. This is an opaque string. You can use + it to detect whether the Job has changed between requests. In particular, + you can be pass the ETag when updating a Job to specify that your changes + should take effect only if nobody else has modified the Job in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the Job. This is the last + time at which the Job level data, such as the Job state or priority, + changed. It does not factor in task-level changes such as adding new Tasks + or Tasks changing state. + :type last_modified: datetime + :param creation_time: The creation time of the Job. + :type creation_time: datetime + :param state: The current state of the Job. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type state: str or ~azure.batch.models.JobState + :param state_transition_time: The time at which the Job entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Job. This property is not + set if the Job is in its initial Active state. Possible values include: + 'active', 'disabling', 'disabled', 'enabling', 'terminating', 'completed', + 'deleting' + :type previous_state: str or ~azure.batch.models.JobState + :param previous_state_transition_time: The time at which the Job entered + its previous state. This property is not set if the Job is in its initial + Active state. + :type previous_state_transition_time: datetime + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the Job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager Task to be launched when + the Job is started. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation Task. The Job Preparation + Task is a special Task run on each Compute Node before any other Task of + the Job. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release Task. The Job Release Task is a + special Task run at the end of the Job on each Compute Node that has run + any other Task of the Job. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all Tasks in + the Job (including the Job Manager, Job Preparation and Job Release + Tasks). Individual Tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: The Pool settings associated with the Job. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. The default is + noaction. Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + Task in the Job fails. A Task is considered to have failed if has a + failureInfo. A failureInfo is set if the Task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the Task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param network_configuration: The network configuration for the Job. + :type network_configuration: ~azure.batch.models.JobNetworkConfiguration + :param metadata: A list of name-value pairs associated with the Job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param execution_info: The execution information for the Job. + :type execution_info: ~azure.batch.models.JobExecutionInformation + :param stats: Resource usage statistics for the entire lifetime of the + Job. This property is populated only if the CloudJob was retrieved with an + expand clause including the 'stats' attribute; otherwise it is null. The + statistics may not be immediately available. The Batch service performs + periodic roll-up of statistics. The typical delay is about 30 minutes. + :type stats: ~azure.batch.models.JobStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'JobNetworkConfiguration'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobExecutionInformation'}, + 'stats': {'key': 'stats', 'type': 'JobStatistics'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, uses_task_dependencies: bool=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, priority: int=None, constraints=None, job_manager_task=None, job_preparation_task=None, job_release_task=None, common_environment_settings=None, pool_info=None, on_all_tasks_complete=None, on_task_failure=None, network_configuration=None, metadata=None, execution_info=None, stats=None, **kwargs) -> None: + super(CloudJob, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.uses_task_dependencies = uses_task_dependencies + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.priority = priority + self.constraints = constraints + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.pool_info = pool_info + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.network_configuration = network_configuration + self.metadata = metadata + self.execution_info = execution_info + self.stats = stats + + +class CloudJobSchedule(Model): + """A Job Schedule that allows recurring Jobs by specifying when to run Jobs + and a specification used to create each Job. + + :param id: A string that uniquely identifies the schedule within the + Account. + :type id: str + :param display_name: The display name for the schedule. + :type display_name: str + :param url: The URL of the Job Schedule. + :type url: str + :param e_tag: The ETag of the Job Schedule. This is an opaque string. You + can use it to detect whether the Job Schedule has changed between + requests. In particular, you can be pass the ETag with an Update Job + Schedule request to specify that your changes should take effect only if + nobody else has modified the schedule in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the Job Schedule. This is + the last time at which the schedule level data, such as the Job + specification or recurrence information, changed. It does not factor in + job-level changes such as new Jobs being created or Jobs changing state. + :type last_modified: datetime + :param creation_time: The creation time of the Job Schedule. + :type creation_time: datetime + :param state: The current state of the Job Schedule. Possible values + include: 'active', 'completed', 'disabled', 'terminating', 'deleting' + :type state: str or ~azure.batch.models.JobScheduleState + :param state_transition_time: The time at which the Job Schedule entered + the current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Job Schedule. This + property is not present if the Job Schedule is in its initial active + state. Possible values include: 'active', 'completed', 'disabled', + 'terminating', 'deleting' + :type previous_state: str or ~azure.batch.models.JobScheduleState + :param previous_state_transition_time: The time at which the Job Schedule + entered its previous state. This property is not present if the Job + Schedule is in its initial active state. + :type previous_state_transition_time: datetime + :param schedule: The schedule according to which Jobs will be created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the Jobs to be created on this + schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param execution_info: Information about Jobs that have been and will be + run under this schedule. + :type execution_info: ~azure.batch.models.JobScheduleExecutionInformation + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: The lifetime resource usage statistics for the Job Schedule. + The statistics may not be immediately available. The Batch service + performs periodic roll-up of statistics. The typical delay is about 30 + minutes. + :type stats: ~azure.batch.models.JobScheduleStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobScheduleState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'JobScheduleState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'execution_info': {'key': 'executionInfo', 'type': 'JobScheduleExecutionInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'JobScheduleStatistics'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, schedule=None, job_specification=None, execution_info=None, metadata=None, stats=None, **kwargs) -> None: + super(CloudJobSchedule, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.schedule = schedule + self.job_specification = job_specification + self.execution_info = execution_info + self.metadata = metadata + self.stats = stats + + +class CloudPool(Model): + """A Pool in the Azure Batch service. + + :param id: A string that uniquely identifies the Pool within the Account. + The ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. The + ID is case-preserving and case-insensitive (that is, you may not have two + IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the Pool. + :type url: str + :param e_tag: The ETag of the Pool. This is an opaque string. You can use + it to detect whether the Pool has changed between requests. In particular, + you can be pass the ETag when updating a Pool to specify that your changes + should take effect only if nobody else has modified the Pool in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the Pool. This is the last + time at which the Pool level data, such as the targetDedicatedNodes or + enableAutoscale settings, changed. It does not factor in node-level + changes such as a Compute Node changing state. + :type last_modified: datetime + :param creation_time: The creation time of the Pool. + :type creation_time: datetime + :param state: The current state of the Pool. Possible values include: + 'active', 'deleting' + :type state: str or ~azure.batch.models.PoolState + :param state_transition_time: The time at which the Pool entered its + current state. + :type state_transition_time: datetime + :param allocation_state: Whether the Pool is resizing. Possible values + include: 'steady', 'resizing', 'stopping' + :type allocation_state: str or ~azure.batch.models.AllocationState + :param allocation_state_transition_time: The time at which the Pool + entered its current allocation state. + :type allocation_state_transition_time: datetime + :param vm_size: The size of virtual machines in the Pool. All virtual + machines in a Pool are the same size. For information about available + sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes + in an Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the Pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch Account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the Pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of Compute Nodes to the + Pool. This is the timeout for the most recent resize operation. (The + initial sizing when the Pool is created counts as a resize.) The default + value is 15 minutes. + :type resize_timeout: timedelta + :param resize_errors: A list of errors encountered while performing the + last resize on the Pool. This property is set only if one or more errors + occurred during the last Pool resize, and only when the Pool + allocationState is Steady. + :type resize_errors: list[~azure.batch.models.ResizeError] + :param current_dedicated_nodes: The number of dedicated Compute Nodes + currently in the Pool. + :type current_dedicated_nodes: int + :param current_low_priority_nodes: The number of low-priority Compute + Nodes currently in the Pool. Low-priority Compute Nodes which have been + preempted are included in this count. + :type current_low_priority_nodes: int + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the Pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the Pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of Compute + Nodes in the Pool. This property is set only if the Pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. + This property is set only if the Pool automatically scales, i.e. + enableAutoScale is true. + :type auto_scale_evaluation_interval: timedelta + :param auto_scale_run: The results and errors from the last execution of + the autoscale formula. This property is set only if the Pool automatically + scales, i.e. enableAutoScale is true. + :type auto_scale_run: ~azure.batch.models.AutoScaleRun + :param enable_inter_node_communication: Whether the Pool permits direct + communication between Compute Nodes. This imposes restrictions on which + Compute Nodes can be assigned to the Pool. Specifying this value can + reduce the chance of the requested number of Compute Nodes to be allocated + in the Pool. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the Pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A Task specified to run on each Compute Node as it + joins the Pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of Certificates to be installed on + each Compute Node in the Pool. For Windows Nodes, the Batch service + installs the Certificates to the specified Certificate store and location. + For Linux Compute Nodes, the Certificates are stored in a directory inside + the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of Packages to be + installed on each Compute Node in the Pool. Changes to Package references + affect all new Nodes joining the Pool, but do not affect Compute Nodes + that are already in the Pool until they are rebooted or reimaged. There is + a maximum of 10 Package references on any given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each Compute Node in the Pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + Pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of Tasks that can run + concurrently on a single Compute Node in the Pool. The default value is 1. + The maximum value is the smaller of 4 times the number of cores of the + vmSize of the Pool or 256. + :type max_tasks_per_node: int + :param task_scheduling_policy: How Tasks are distributed across Compute + Nodes in a Pool. If not specified, the default is spread. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user Accounts to be created on each + Compute Node in the Pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. + :type metadata: list[~azure.batch.models.MetadataItem] + :param stats: Utilization and resource usage statistics for the entire + lifetime of the Pool. This property is populated only if the CloudPool was + retrieved with an expand clause including the 'stats' attribute; otherwise + it is null. The statistics may not be immediately available. The Batch + service performs periodic roll-up of statistics. The typical delay is + about 30 minutes. + :type stats: ~azure.batch.models.PoolStatistics + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'PoolState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'allocation_state': {'key': 'allocationState', 'type': 'AllocationState'}, + 'allocation_state_transition_time': {'key': 'allocationStateTransitionTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'resize_errors': {'key': 'resizeErrors', 'type': '[ResizeError]'}, + 'current_dedicated_nodes': {'key': 'currentDedicatedNodes', 'type': 'int'}, + 'current_low_priority_nodes': {'key': 'currentLowPriorityNodes', 'type': 'int'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'auto_scale_run': {'key': 'autoScaleRun', 'type': 'AutoScaleRun'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'stats': {'key': 'stats', 'type': 'PoolStatistics'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, allocation_state=None, allocation_state_transition_time=None, vm_size: str=None, cloud_service_configuration=None, virtual_machine_configuration=None, resize_timeout=None, resize_errors=None, current_dedicated_nodes: int=None, current_low_priority_nodes: int=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, auto_scale_run=None, enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, certificate_references=None, application_package_references=None, application_licenses=None, max_tasks_per_node: int=None, task_scheduling_policy=None, user_accounts=None, metadata=None, stats=None, **kwargs) -> None: + super(CloudPool, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.state = state + self.state_transition_time = state_transition_time + self.allocation_state = allocation_state + self.allocation_state_transition_time = allocation_state_transition_time + self.vm_size = vm_size + self.cloud_service_configuration = cloud_service_configuration + self.virtual_machine_configuration = virtual_machine_configuration + self.resize_timeout = resize_timeout + self.resize_errors = resize_errors + self.current_dedicated_nodes = current_dedicated_nodes + self.current_low_priority_nodes = current_low_priority_nodes + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.enable_auto_scale = enable_auto_scale + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + self.auto_scale_run = auto_scale_run + self.enable_inter_node_communication = enable_inter_node_communication + self.network_configuration = network_configuration + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.application_licenses = application_licenses + self.max_tasks_per_node = max_tasks_per_node + self.task_scheduling_policy = task_scheduling_policy + self.user_accounts = user_accounts + self.metadata = metadata + self.stats = stats + + +class CloudServiceConfiguration(Model): + """The configuration for Compute Nodes in a Pool based on the Azure Cloud + Services platform. + + All required parameters must be populated in order to send to Azure. + + :param os_family: Required. The Azure Guest OS family to be installed on + the virtual machines in the Pool. Possible values are: + 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. + 3 - OS Family 3, equivalent to Windows Server 2012. + 4 - OS Family 4, equivalent to Windows Server 2012 R2. + 5 - OS Family 5, equivalent to Windows Server 2016. + 6 - OS Family 6, equivalent to Windows Server 2019. For more information, + see Azure Guest OS Releases + (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). + :type os_family: str + :param os_version: The Azure Guest OS version to be installed on the + virtual machines in the Pool. The default value is * which specifies the + latest operating system version for the specified OS family. + :type os_version: str + """ + + _validation = { + 'os_family': {'required': True}, + } + + _attribute_map = { + 'os_family': {'key': 'osFamily', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + } + + def __init__(self, *, os_family: str, os_version: str=None, **kwargs) -> None: + super(CloudServiceConfiguration, self).__init__(**kwargs) + self.os_family = os_family + self.os_version = os_version + + +class CloudTask(Model): + """An Azure Batch Task. + + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host + failure. Retries due to recovery operations are independent of and are not + counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, + an internal retry due to a recovery operation may occur. Because of this, + all Tasks should be idempotent. This means Tasks need to tolerate being + interrupted and restarted without causing any corruption or duplicate data. + The best practice for long running Tasks is to use some form of + checkpointing. + + :param id: A string that uniquely identifies the Task within the Job. The + ID can contain any combination of alphanumeric characters including + hyphens and underscores, and cannot contain more than 64 characters. + :type id: str + :param display_name: A display name for the Task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param url: The URL of the Task. + :type url: str + :param e_tag: The ETag of the Task. This is an opaque string. You can use + it to detect whether the Task has changed between requests. In particular, + you can be pass the ETag when updating a Task to specify that your changes + should take effect only if nobody else has modified the Task in the + meantime. + :type e_tag: str + :param last_modified: The last modified time of the Task. + :type last_modified: datetime + :param creation_time: The creation time of the Task. + :type creation_time: datetime + :param exit_conditions: How the Batch service should respond when the Task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param state: The current state of the Task. Possible values include: + 'active', 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.TaskState + :param state_transition_time: The time at which the Task entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the Task. This property is + not set if the Task is in its initial Active state. Possible values + include: 'active', 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.TaskState + :param previous_state_transition_time: The time at which the Task entered + its previous state. This property is not set if the Task is in its initial + Active state. + :type previous_state_transition_time: datetime + :param command_line: The command line of the Task. For multi-instance + Tasks, the command line is executed as the primary Task, after the primary + Task and all subtasks have finished executing the coordination command + line. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the Task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Task runs. If the Pool that will run this Task has containerConfiguration + set, this must be set as well. If the Pool that will run this Task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all Task environment variables are mapped into the container, + and the Task command line is executed in the container. Files produced in + the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to + the host disk, meaning that Batch file APIs will not be able to access + those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. For + multi-instance Tasks, the resource files will only be downloaded to the + Compute Node on which the primary Task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the Compute Node after running the command line. For multi-instance + Tasks, the files will only be uploaded from the Compute Node on which the + primary Task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a Compute Node on which to start the new Task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this Task. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the Task runs. If + omitted, the Task runs as a non-administrative user unique to the Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param execution_info: Information about the execution of the Task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + :param node_info: Information about the Compute Node on which the Task + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param multi_instance_settings: An object that indicates that the Task is + a multi-instance Task, and contains information about how to run the + multi-instance Task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param stats: Resource usage statistics for the Task. + :type stats: ~azure.batch.models.TaskStatistics + :param depends_on: The Tasks that this Task depends on. This Task will not + be scheduled until all Tasks that it depends on have completed + successfully. If any of those Tasks fail and exhaust their retry counts, + this Task will never be scheduled. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of Packages that the Batch + service will deploy to the Compute Node before running the command line. + Application packages are downloaded and deployed to a shared directory, + not the Task working directory. Therefore, if a referenced package is + already on the Node, and is up to date, then it is not re-downloaded; the + existing copy on the Compute Node is used. If a referenced Package cannot + be installed, for example because the package has been deleted or because + download failed, the Task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the Task can use to perform Batch service operations. If this + property is set, the Batch service provides the Task with an + authentication token which can be used to authenticate Batch service + operations without requiring an Account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the Task can carry out using the token depend on the settings. For + example, a Task can request Job permissions in order to add other Tasks to + the Job, or check the status of the Job or of other Tasks under the Job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'state': {'key': 'state', 'type': 'TaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'TaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'stats': {'key': 'stats', 'type': 'TaskStatistics'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, *, id: str=None, display_name: str=None, url: str=None, e_tag: str=None, last_modified=None, creation_time=None, exit_conditions=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, command_line: str=None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, affinity_info=None, constraints=None, user_identity=None, execution_info=None, node_info=None, multi_instance_settings=None, stats=None, depends_on=None, application_package_references=None, authentication_token_settings=None, **kwargs) -> None: + super(CloudTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.url = url + self.e_tag = e_tag + self.last_modified = last_modified + self.creation_time = creation_time + self.exit_conditions = exit_conditions + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.execution_info = execution_info + self.node_info = node_info + self.multi_instance_settings = multi_instance_settings + self.stats = stats + self.depends_on = depends_on + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + + +class CloudTaskListSubtasksResult(Model): + """The result of listing the subtasks of a Task. + + :param value: The list of subtasks. + :type value: list[~azure.batch.models.SubtaskInformation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SubtaskInformation]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(CloudTaskListSubtasksResult, self).__init__(**kwargs) + self.value = value + + +class ComputeNode(Model): + """A Compute Node in the Batch service. + + :param id: The ID of the Compute Node. Every Compute Node that is added to + a Pool is assigned a unique ID. Whenever a Compute Node is removed from a + Pool, all of its local files are deleted, and the ID is reclaimed and + could be reused for new Compute Nodes. + :type id: str + :param url: The URL of the Compute Node. + :type url: str + :param state: The current state of the Compute Node. The low-priority + Compute Node has been preempted. Tasks which were running on the Compute + Node when it was preempted will be rescheduled when another Compute Node + becomes available. Possible values include: 'idle', 'rebooting', + 'reimaging', 'running', 'unusable', 'creating', 'starting', + 'waitingForStartTask', 'startTaskFailed', 'unknown', 'leavingPool', + 'offline', 'preempted' + :type state: str or ~azure.batch.models.ComputeNodeState + :param scheduling_state: Whether the Compute Node is available for Task + scheduling. Possible values include: 'enabled', 'disabled' + :type scheduling_state: str or ~azure.batch.models.SchedulingState + :param state_transition_time: The time at which the Compute Node entered + its current state. + :type state_transition_time: datetime + :param last_boot_time: The last time at which the Compute Node was + started. This property may not be present if the Compute Node state is + unusable. + :type last_boot_time: datetime + :param allocation_time: The time at which this Compute Node was allocated + to the Pool. This is the time when the Compute Node was initially + allocated and doesn't change once set. It is not updated when the Compute + Node is service healed or preempted. + :type allocation_time: datetime + :param ip_address: The IP address that other Nodes can use to communicate + with this Compute Node. Every Compute Node that is added to a Pool is + assigned a unique IP address. Whenever a Compute Node is removed from a + Pool, all of its local files are deleted, and the IP address is reclaimed + and could be reused for new Compute Nodes. + :type ip_address: str + :param affinity_id: An identifier which can be passed when adding a Task + to request that the Task be scheduled on this Compute Node. Note that this + is just a soft affinity. If the target Compute Node is busy or unavailable + at the time the Task is scheduled, then the Task will be scheduled + elsewhere. + :type affinity_id: str + :param vm_size: The size of the virtual machine hosting the Compute Node. + For information about available sizes of virtual machines in Pools, see + Choose a VM size for Compute Nodes in an Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_tasks_run: The total number of Job Tasks completed on the + Compute Node. This includes Job Manager Tasks and normal Tasks, but not + Job Preparation, Job Release or Start Tasks. + :type total_tasks_run: int + :param running_tasks_count: The total number of currently running Job + Tasks on the Compute Node. This includes Job Manager Tasks and normal + Tasks, but not Job Preparation, Job Release or Start Tasks. + :type running_tasks_count: int + :param total_tasks_succeeded: The total number of Job Tasks which + completed successfully (with exitCode 0) on the Compute Node. This + includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job + Release or Start Tasks. + :type total_tasks_succeeded: int + :param recent_tasks: A list of Tasks whose state has recently changed. + This property is present only if at least one Task has run on this Compute + Node since it was assigned to the Pool. + :type recent_tasks: list[~azure.batch.models.TaskInformation] + :param start_task: The Task specified to run on the Compute Node as it + joins the Pool. + :type start_task: ~azure.batch.models.StartTask + :param start_task_info: Runtime information about the execution of the + start Task on the Compute Node. + :type start_task_info: ~azure.batch.models.StartTaskInformation + :param certificate_references: The list of Certificates installed on the + Compute Node. For Windows Nodes, the Batch service installs the + Certificates to the specified Certificate store and location. For Linux + Compute Nodes, the Certificates are stored in a directory inside the Task + working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is + supplied to the Task to query for this location. For Certificates with + visibility of 'remoteUser', a 'certs' directory is created in the user's + home directory (e.g., /home/{user-name}/certs) and Certificates are placed + in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param errors: The list of errors that are currently being encountered by + the Compute Node. + :type errors: list[~azure.batch.models.ComputeNodeError] + :param is_dedicated: Whether this Compute Node is a dedicated Compute + Node. If false, the Compute Node is a low-priority Compute Node. + :type is_dedicated: bool + :param endpoint_configuration: The endpoint configuration for the Compute + Node. + :type endpoint_configuration: + ~azure.batch.models.ComputeNodeEndpointConfiguration + :param node_agent_info: Information about the Compute Node agent version + and the time the Compute Node upgraded to a new version. + :type node_agent_info: ~azure.batch.models.NodeAgentInformation + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'ComputeNodeState'}, + 'scheduling_state': {'key': 'schedulingState', 'type': 'SchedulingState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'last_boot_time': {'key': 'lastBootTime', 'type': 'iso-8601'}, + 'allocation_time': {'key': 'allocationTime', 'type': 'iso-8601'}, + 'ip_address': {'key': 'ipAddress', 'type': 'str'}, + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_tasks_run': {'key': 'totalTasksRun', 'type': 'int'}, + 'running_tasks_count': {'key': 'runningTasksCount', 'type': 'int'}, + 'total_tasks_succeeded': {'key': 'totalTasksSucceeded', 'type': 'int'}, + 'recent_tasks': {'key': 'recentTasks', 'type': '[TaskInformation]'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'start_task_info': {'key': 'startTaskInfo', 'type': 'StartTaskInformation'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'errors': {'key': 'errors', 'type': '[ComputeNodeError]'}, + 'is_dedicated': {'key': 'isDedicated', 'type': 'bool'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'ComputeNodeEndpointConfiguration'}, + 'node_agent_info': {'key': 'nodeAgentInfo', 'type': 'NodeAgentInformation'}, + } + + def __init__(self, *, id: str=None, url: str=None, state=None, scheduling_state=None, state_transition_time=None, last_boot_time=None, allocation_time=None, ip_address: str=None, affinity_id: str=None, vm_size: str=None, total_tasks_run: int=None, running_tasks_count: int=None, total_tasks_succeeded: int=None, recent_tasks=None, start_task=None, start_task_info=None, certificate_references=None, errors=None, is_dedicated: bool=None, endpoint_configuration=None, node_agent_info=None, **kwargs) -> None: + super(ComputeNode, self).__init__(**kwargs) + self.id = id + self.url = url + self.state = state + self.scheduling_state = scheduling_state + self.state_transition_time = state_transition_time + self.last_boot_time = last_boot_time + self.allocation_time = allocation_time + self.ip_address = ip_address + self.affinity_id = affinity_id + self.vm_size = vm_size + self.total_tasks_run = total_tasks_run + self.running_tasks_count = running_tasks_count + self.total_tasks_succeeded = total_tasks_succeeded + self.recent_tasks = recent_tasks + self.start_task = start_task + self.start_task_info = start_task_info + self.certificate_references = certificate_references + self.errors = errors + self.is_dedicated = is_dedicated + self.endpoint_configuration = endpoint_configuration + self.node_agent_info = node_agent_info + + +class ComputeNodeAddUserOptions(Model): + """Additional parameters for add_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeAddUserOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeDeleteUserOptions(Model): + """Additional parameters for delete_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeDeleteUserOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeDisableSchedulingOptions(Model): + """Additional parameters for disable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeDisableSchedulingOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeEnableSchedulingOptions(Model): + """Additional parameters for enable_scheduling operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeEnableSchedulingOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeEndpointConfiguration(Model): + """The endpoint configuration for the Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param inbound_endpoints: Required. The list of inbound endpoints that are + accessible on the Compute Node. + :type inbound_endpoints: list[~azure.batch.models.InboundEndpoint] + """ + + _validation = { + 'inbound_endpoints': {'required': True}, + } + + _attribute_map = { + 'inbound_endpoints': {'key': 'inboundEndpoints', 'type': '[InboundEndpoint]'}, + } + + def __init__(self, *, inbound_endpoints, **kwargs) -> None: + super(ComputeNodeEndpointConfiguration, self).__init__(**kwargs) + self.inbound_endpoints = inbound_endpoints + + +class ComputeNodeError(Model): + """An error encountered by a Compute Node. + + :param code: An identifier for the Compute Node error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Compute Node error, intended to + be suitable for display in a user interface. + :type message: str + :param error_details: The list of additional error details related to the + Compute Node error. + :type error_details: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'error_details': {'key': 'errorDetails', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, error_details=None, **kwargs) -> None: + super(ComputeNodeError, self).__init__(**kwargs) + self.code = code + self.message = message + self.error_details = error_details + + +class ComputeNodeGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeGetOptions, self).__init__(**kwargs) + self.select = select + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeGetRemoteDesktopOptions(Model): + """Additional parameters for get_remote_desktop operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeGetRemoteDesktopOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeGetRemoteLoginSettingsOptions(Model): + """Additional parameters for get_remote_login_settings operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeGetRemoteLoginSettingsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeGetRemoteLoginSettingsResult(Model): + """The remote login settings for a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param remote_login_ip_address: Required. The IP address used for remote + login to the Compute Node. + :type remote_login_ip_address: str + :param remote_login_port: Required. The port used for remote login to the + Compute Node. + :type remote_login_port: int + """ + + _validation = { + 'remote_login_ip_address': {'required': True}, + 'remote_login_port': {'required': True}, + } + + _attribute_map = { + 'remote_login_ip_address': {'key': 'remoteLoginIPAddress', 'type': 'str'}, + 'remote_login_port': {'key': 'remoteLoginPort', 'type': 'int'}, + } + + def __init__(self, *, remote_login_ip_address: str, remote_login_port: int, **kwargs) -> None: + super(ComputeNodeGetRemoteLoginSettingsResult, self).__init__(**kwargs) + self.remote_login_ip_address = remote_login_ip_address + self.remote_login_port = remote_login_port + + +class ComputeNodeInformation(Model): + """Information about the Compute Node on which a Task ran. + + :param affinity_id: An identifier for the Node on which the Task ran, + which can be passed when adding a Task to request that the Task be + scheduled on this Compute Node. + :type affinity_id: str + :param node_url: The URL of the Compute Node on which the Task ran. . + :type node_url: str + :param pool_id: The ID of the Pool on which the Task ran. + :type pool_id: str + :param node_id: The ID of the Compute Node on which the Task ran. + :type node_id: str + :param task_root_directory: The root directory of the Task on the Compute + Node. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Task + on the Compute Node. + :type task_root_directory_url: str + """ + + _attribute_map = { + 'affinity_id': {'key': 'affinityId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + } + + def __init__(self, *, affinity_id: str=None, node_url: str=None, pool_id: str=None, node_id: str=None, task_root_directory: str=None, task_root_directory_url: str=None, **kwargs) -> None: + super(ComputeNodeInformation, self).__init__(**kwargs) + self.affinity_id = affinity_id + self.node_url = node_url + self.pool_id = pool_id + self.node_id = node_id + self.task_root_directory = task_root_directory + self.task_root_directory_url = task_root_directory_url + + +class ComputeNodeListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Compute Nodes can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeRebootOptions(Model): + """Additional parameters for reboot operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeRebootOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeReimageOptions(Model): + """Additional parameters for reimage operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeReimageOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeUpdateUserOptions(Model): + """Additional parameters for update_user operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeUpdateUserOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeUploadBatchServiceLogsOptions(Model): + """Additional parameters for upload_batch_service_logs operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(ComputeNodeUploadBatchServiceLogsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class ComputeNodeUser(Model): + """A user Account for RDP or SSH access on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The user name of the Account. + :type name: str + :param is_admin: Whether the Account should be an administrator on the + Compute Node. The default value is false. + :type is_admin: bool + :param expiry_time: The time at which the Account should expire. If + omitted, the default is 1 day from the current time. For Linux Compute + Nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param password: The password of the Account. The password is required for + Windows Compute Nodes (those created with 'cloudServiceConfiguration', or + created with 'virtualMachineConfiguration' using a Windows Image + reference). For Linux Compute Nodes, the password can optionally be + specified along with the sshPublicKey property. + :type password: str + :param ssh_public_key: The SSH public key that can be used for remote + login to the Compute Node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux Compute Nodes. If this is specified for a Windows + Compute Node, then the Batch service rejects the request; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type ssh_public_key: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'is_admin': {'key': 'isAdmin', 'type': 'bool'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'password': {'key': 'password', 'type': 'str'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, *, name: str, is_admin: bool=None, expiry_time=None, password: str=None, ssh_public_key: str=None, **kwargs) -> None: + super(ComputeNodeUser, self).__init__(**kwargs) + self.name = name + self.is_admin = is_admin + self.expiry_time = expiry_time + self.password = password + self.ssh_public_key = ssh_public_key + + +class ContainerConfiguration(Model): + """The configuration for container-enabled Pools. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar type: Required. The container technology to be used. Default value: + "dockerCompatible" . + :vartype type: str + :param container_image_names: The collection of container Image names. + This is the full Image reference, as would be specified to "docker pull". + An Image will be sourced from the default Docker registry unless the Image + is fully qualified with an alternative registry. + :type container_image_names: list[str] + :param container_registries: Additional private registries from which + containers can be pulled. If any Images must be downloaded from a private + registry which requires credentials, then those credentials must be + provided here. + :type container_registries: list[~azure.batch.models.ContainerRegistry] + """ + + _validation = { + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'container_image_names': {'key': 'containerImageNames', 'type': '[str]'}, + 'container_registries': {'key': 'containerRegistries', 'type': '[ContainerRegistry]'}, + } + + type = "dockerCompatible" + + def __init__(self, *, container_image_names=None, container_registries=None, **kwargs) -> None: + super(ContainerConfiguration, self).__init__(**kwargs) + self.container_image_names = container_image_names + self.container_registries = container_registries + + +class ContainerRegistry(Model): + """A private container registry. + + All required parameters must be populated in order to send to Azure. + + :param registry_server: The registry URL. If omitted, the default is + "docker.io". + :type registry_server: str + :param user_name: Required. The user name to log into the registry server. + :type user_name: str + :param password: Required. The password to log into the registry server. + :type password: str + """ + + _validation = { + 'user_name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'registry_server': {'key': 'registryServer', 'type': 'str'}, + 'user_name': {'key': 'username', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + } + + def __init__(self, *, user_name: str, password: str, registry_server: str=None, **kwargs) -> None: + super(ContainerRegistry, self).__init__(**kwargs) + self.registry_server = registry_server + self.user_name = user_name + self.password = password + + +class DataDisk(Model): + """Settings which will be used by the data disks associated to Compute Nodes + in the Pool. + + All required parameters must be populated in order to send to Azure. + + :param lun: Required. The logical unit number. The lun is used to uniquely + identify each data disk. If attaching multiple disks, each should have a + distinct lun. + :type lun: int + :param caching: The type of caching to be enabled for the data disks. The + default value for caching is readwrite. For information about the caching + options see: + https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + Possible values include: 'none', 'readOnly', 'readWrite' + :type caching: str or ~azure.batch.models.CachingType + :param disk_size_gb: Required. The initial disk size in gigabytes. + :type disk_size_gb: int + :param storage_account_type: The storage Account type to be used for the + data disk. If omitted, the default is "standard_lrs". Possible values + include: 'StandardLRS', 'PremiumLRS' + :type storage_account_type: str or ~azure.batch.models.StorageAccountType + """ + + _validation = { + 'lun': {'required': True}, + 'disk_size_gb': {'required': True}, + } + + _attribute_map = { + 'lun': {'key': 'lun', 'type': 'int'}, + 'caching': {'key': 'caching', 'type': 'CachingType'}, + 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, + 'storage_account_type': {'key': 'storageAccountType', 'type': 'StorageAccountType'}, + } + + def __init__(self, *, lun: int, disk_size_gb: int, caching=None, storage_account_type=None, **kwargs) -> None: + super(DataDisk, self).__init__(**kwargs) + self.lun = lun + self.caching = caching + self.disk_size_gb = disk_size_gb + self.storage_account_type = storage_account_type + + +class DeleteCertificateError(Model): + """An error encountered by the Batch service when deleting a Certificate. + + :param code: An identifier for the Certificate deletion error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Certificate deletion error, + intended to be suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the + Certificate deletion error. This list includes details such as the active + Pools and Compute Nodes referencing this Certificate. However, if a large + number of resources reference the Certificate, the list contains only + about the first hundred. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, values=None, **kwargs) -> None: + super(DeleteCertificateError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values + + +class EnvironmentSetting(Model): + """An environment variable to be set on a Task process. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the environment variable. + :type name: str + :param value: The value of the environment variable. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, name: str, value: str=None, **kwargs) -> None: + super(EnvironmentSetting, self).__init__(**kwargs) + self.name = name + self.value = value + + +class ErrorMessage(Model): + """An error message received in an Azure Batch error response. + + :param lang: The language code of the error message. + :type lang: str + :param value: The text of the message. + :type value: str + """ + + _attribute_map = { + 'lang': {'key': 'lang', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, lang: str=None, value: str=None, **kwargs) -> None: + super(ErrorMessage, self).__init__(**kwargs) + self.lang = lang + self.value = value + + +class ExitCodeMapping(Model): + """How the Batch service should respond if a Task exits with a particular exit + code. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. A process exit code. + :type code: int + :param exit_options: Required. How the Batch service should respond if the + Task exits with this exit code. + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'code': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, *, code: int, exit_options, **kwargs) -> None: + super(ExitCodeMapping, self).__init__(**kwargs) + self.code = code + self.exit_options = exit_options + + +class ExitCodeRangeMapping(Model): + """A range of exit codes and how the Batch service should respond to exit + codes within that range. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first exit code in the range. + :type start: int + :param end: Required. The last exit code in the range. + :type end: int + :param exit_options: Required. How the Batch service should respond if the + Task exits with an exit code in the range start to end (inclusive). + :type exit_options: ~azure.batch.models.ExitOptions + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + 'exit_options': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + 'exit_options': {'key': 'exitOptions', 'type': 'ExitOptions'}, + } + + def __init__(self, *, start: int, end: int, exit_options, **kwargs) -> None: + super(ExitCodeRangeMapping, self).__init__(**kwargs) + self.start = start + self.end = end + self.exit_options = exit_options + + +class ExitConditions(Model): + """Specifies how the Batch service should respond when the Task completes. + + :param exit_codes: A list of individual Task exit codes and how the Batch + service should respond to them. + :type exit_codes: list[~azure.batch.models.ExitCodeMapping] + :param exit_code_ranges: A list of Task exit code ranges and how the Batch + service should respond to them. + :type exit_code_ranges: list[~azure.batch.models.ExitCodeRangeMapping] + :param pre_processing_error: How the Batch service should respond if the + Task fails to start due to an error. + :type pre_processing_error: ~azure.batch.models.ExitOptions + :param file_upload_error: How the Batch service should respond if a file + upload error occurs. If the Task exited with an exit code that was + specified via exitCodes or exitCodeRanges, and then encountered a file + upload error, then the action specified by the exit code takes precedence. + :type file_upload_error: ~azure.batch.models.ExitOptions + :param default: How the Batch service should respond if the Task fails + with an exit condition not covered by any of the other properties. This + value is used if the Task exits with any nonzero exit code not listed in + the exitCodes or exitCodeRanges collection, with a pre-processing error if + the preProcessingError property is not present, or with a file upload + error if the fileUploadError property is not present. If you want + non-default behavior on exit code 0, you must list it explicitly using the + exitCodes or exitCodeRanges collection. + :type default: ~azure.batch.models.ExitOptions + """ + + _attribute_map = { + 'exit_codes': {'key': 'exitCodes', 'type': '[ExitCodeMapping]'}, + 'exit_code_ranges': {'key': 'exitCodeRanges', 'type': '[ExitCodeRangeMapping]'}, + 'pre_processing_error': {'key': 'preProcessingError', 'type': 'ExitOptions'}, + 'file_upload_error': {'key': 'fileUploadError', 'type': 'ExitOptions'}, + 'default': {'key': 'default', 'type': 'ExitOptions'}, + } + + def __init__(self, *, exit_codes=None, exit_code_ranges=None, pre_processing_error=None, file_upload_error=None, default=None, **kwargs) -> None: + super(ExitConditions, self).__init__(**kwargs) + self.exit_codes = exit_codes + self.exit_code_ranges = exit_code_ranges + self.pre_processing_error = pre_processing_error + self.file_upload_error = file_upload_error + self.default = default + + +class ExitOptions(Model): + """Specifies how the Batch service responds to a particular exit condition. + + :param job_action: An action to take on the Job containing the Task, if + the Task completes with the given exit condition and the Job's + onTaskFailed property is 'performExitOptionsJobAction'. The default is + none for exit code 0 and terminate for all other exit conditions. If the + Job's onTaskFailed property is noaction, then specifying this property + returns an error and the add Task request fails with an invalid property + value error; if you are calling the REST API directly, the HTTP status + code is 400 (Bad Request). Possible values include: 'none', 'disable', + 'terminate' + :type job_action: str or ~azure.batch.models.JobAction + :param dependency_action: An action that the Batch service performs on + Tasks that depend on this Task. The default is 'satisfy' for exit code 0, + and 'block' for all other exit conditions. If the Job's + usesTaskDependencies property is set to false, then specifying the + dependencyAction property returns an error and the add Task request fails + with an invalid property value error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). Possible values + include: 'satisfy', 'block' + :type dependency_action: str or ~azure.batch.models.DependencyAction + """ + + _attribute_map = { + 'job_action': {'key': 'jobAction', 'type': 'JobAction'}, + 'dependency_action': {'key': 'dependencyAction', 'type': 'DependencyAction'}, + } + + def __init__(self, *, job_action=None, dependency_action=None, **kwargs) -> None: + super(ExitOptions, self).__init__(**kwargs) + self.job_action = job_action + self.dependency_action = dependency_action + + +class FileDeleteFromComputeNodeOptions(Model): + """Additional parameters for delete_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileDeleteFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class FileDeleteFromTaskOptions(Model): + """Additional parameters for delete_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileDeleteFromTaskOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class FileGetFromComputeNodeOptions(Model): + """Additional parameters for get_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, ocp_range: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.ocp_range = ocp_range + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class FileGetFromTaskOptions(Model): + """Additional parameters for get_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param ocp_range: The byte range to be retrieved. The default is to + retrieve the entire file. The format is bytes=startRange-endRange. + :type ocp_range: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'ocp_range': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, ocp_range: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetFromTaskOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.ocp_range = ocp_range + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class FileGetPropertiesFromComputeNodeOptions(Model): + """Additional parameters for get_properties_from_compute_node operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetPropertiesFromComputeNodeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class FileGetPropertiesFromTaskOptions(Model): + """Additional parameters for get_properties_from_task operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(FileGetPropertiesFromTaskOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class FileListFromComputeNodeOptions(Model): + """Additional parameters for list_from_compute_node operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileListFromComputeNodeOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class FileListFromTaskOptions(Model): + """Additional parameters for list_from_task operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 files can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(FileListFromTaskOptions, self).__init__(**kwargs) + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class FileProperties(Model): + """The properties of a file on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: The file creation time. The creation time is not + returned for files on Linux Compute Nodes. + :type creation_time: datetime + :param last_modified: Required. The time at which the file was last + modified. + :type last_modified: datetime + :param content_length: Required. The length of the file. + :type content_length: long + :param content_type: The content type of the file. + :type content_type: str + :param file_mode: The file mode attribute in octal format. The file mode + is returned only for files on Linux Compute Nodes. + :type file_mode: str + """ + + _validation = { + 'last_modified': {'required': True}, + 'content_length': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'creationTime', 'type': 'iso-8601'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'content_length': {'key': 'contentLength', 'type': 'long'}, + 'content_type': {'key': 'contentType', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, *, last_modified, content_length: int, creation_time=None, content_type: str=None, file_mode: str=None, **kwargs) -> None: + super(FileProperties, self).__init__(**kwargs) + self.creation_time = creation_time + self.last_modified = last_modified + self.content_length = content_length + self.content_type = content_type + self.file_mode = file_mode + + +class ImageInformation(Model): + """A reference to the Azure Virtual Machines Marketplace Image and additional + information about the Image. + + All required parameters must be populated in order to send to Azure. + + :param node_agent_sku_id: Required. The ID of the Compute Node agent SKU + which the Image supports. + :type node_agent_sku_id: str + :param image_reference: Required. The reference to the Azure Virtual + Machine's Marketplace Image. + :type image_reference: ~azure.batch.models.ImageReference + :param os_type: Required. The type of operating system (e.g. Windows or + Linux) of the Image. Possible values include: 'linux', 'windows' + :type os_type: str or ~azure.batch.models.OSType + :param capabilities: The capabilities or features which the Image + supports. Not every capability of the Image is listed. Capabilities in + this list are considered of special interest and are generally related to + integration with other features in the Azure Batch service. + :type capabilities: list[str] + :param batch_support_end_of_life: The time when the Azure Batch service + will stop accepting create Pool requests for the Image. + :type batch_support_end_of_life: datetime + :param verification_type: Required. Whether the Azure Batch service + actively verifies that the Image is compatible with the associated Compute + Node agent SKU. Possible values include: 'verified', 'unverified' + :type verification_type: str or ~azure.batch.models.VerificationType + """ + + _validation = { + 'node_agent_sku_id': {'required': True}, + 'image_reference': {'required': True}, + 'os_type': {'required': True}, + 'verification_type': {'required': True}, + } + + _attribute_map = { + 'node_agent_sku_id': {'key': 'nodeAgentSKUId', 'type': 'str'}, + 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, + 'os_type': {'key': 'osType', 'type': 'OSType'}, + 'capabilities': {'key': 'capabilities', 'type': '[str]'}, + 'batch_support_end_of_life': {'key': 'batchSupportEndOfLife', 'type': 'iso-8601'}, + 'verification_type': {'key': 'verificationType', 'type': 'VerificationType'}, + } + + def __init__(self, *, node_agent_sku_id: str, image_reference, os_type, verification_type, capabilities=None, batch_support_end_of_life=None, **kwargs) -> None: + super(ImageInformation, self).__init__(**kwargs) + self.node_agent_sku_id = node_agent_sku_id + self.image_reference = image_reference + self.os_type = os_type + self.capabilities = capabilities + self.batch_support_end_of_life = batch_support_end_of_life + self.verification_type = verification_type + + +class ImageReference(Model): + """A reference to an Azure Virtual Machines Marketplace Image or a custom + Azure Virtual Machine Image. To get the list of all Azure Marketplace Image + references verified by Azure Batch, see the 'List supported Images' + operation. + + :param publisher: The publisher of the Azure Virtual Machines Marketplace + Image. For example, Canonical or MicrosoftWindowsServer. + :type publisher: str + :param offer: The offer type of the Azure Virtual Machines Marketplace + Image. For example, UbuntuServer or WindowsServer. + :type offer: str + :param sku: The SKU of the Azure Virtual Machines Marketplace Image. For + example, 14.04.0-LTS or 2012-R2-Datacenter. + :type sku: str + :param version: The version of the Azure Virtual Machines Marketplace + Image. A value of 'latest' can be specified to select the latest version + of an Image. If omitted, the default is 'latest'. + :type version: str + :param virtual_machine_image_id: The ARM resource identifier of the + Virtual Machine Image. Computes Compute Nodes of the Pool will be created + using this custom Image. This is of the form + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}. + This property is mutually exclusive with other ImageReference properties. + The Virtual Machine Image must be in the same region and subscription as + the Azure Batch Account. For information about the firewall settings for + the Batch Compute Node agent to communicate with the Batch service see + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + :type virtual_machine_image_id: str + """ + + _attribute_map = { + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'offer': {'key': 'offer', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + 'virtual_machine_image_id': {'key': 'virtualMachineImageId', 'type': 'str'}, + } + + def __init__(self, *, publisher: str=None, offer: str=None, sku: str=None, version: str=None, virtual_machine_image_id: str=None, **kwargs) -> None: + super(ImageReference, self).__init__(**kwargs) + self.publisher = publisher + self.offer = offer + self.sku = sku + self.version = version + self.virtual_machine_image_id = virtual_machine_image_id + + +class InboundEndpoint(Model): + """An inbound endpoint on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param public_ip_address: Required. The public IP address of the Compute + Node. + :type public_ip_address: str + :param public_fqdn: Required. The public fully qualified domain name for + the Compute Node. + :type public_fqdn: str + :param frontend_port: Required. The public port number of the endpoint. + :type frontend_port: int + :param backend_port: Required. The backend port number of the endpoint. + :type backend_port: int + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'public_ip_address': {'required': True}, + 'public_fqdn': {'required': True}, + 'frontend_port': {'required': True}, + 'backend_port': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'public_ip_address': {'key': 'publicIPAddress', 'type': 'str'}, + 'public_fqdn': {'key': 'publicFQDN', 'type': 'str'}, + 'frontend_port': {'key': 'frontendPort', 'type': 'int'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + } + + def __init__(self, *, name: str, protocol, public_ip_address: str, public_fqdn: str, frontend_port: int, backend_port: int, **kwargs) -> None: + super(InboundEndpoint, self).__init__(**kwargs) + self.name = name + self.protocol = protocol + self.public_ip_address = public_ip_address + self.public_fqdn = public_fqdn + self.frontend_port = frontend_port + self.backend_port = backend_port + + +class InboundNATPool(Model): + """A inbound NAT Pool that can be used to address specific ports on Compute + Nodes in a Batch Pool externally. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the endpoint. The name must be unique + within a Batch Pool, can contain letters, numbers, underscores, periods, + and hyphens. Names must start with a letter or number, must end with a + letter, number, or underscore, and cannot exceed 77 characters. If any + invalid values are provided the request fails with HTTP status code 400. + :type name: str + :param protocol: Required. The protocol of the endpoint. Possible values + include: 'tcp', 'udp' + :type protocol: str or ~azure.batch.models.InboundEndpointProtocol + :param backend_port: Required. The port number on the Compute Node. This + must be unique within a Batch Pool. Acceptable values are between 1 and + 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any + reserved values are provided the request fails with HTTP status code 400. + :type backend_port: int + :param frontend_port_range_start: Required. The first port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual Compute Nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved. All ranges + within a Pool must be distinct and cannot overlap. Each range must contain + at least 40 ports. If any reserved or overlapping values are provided the + request fails with HTTP status code 400. + :type frontend_port_range_start: int + :param frontend_port_range_end: Required. The last port number in the + range of external ports that will be used to provide inbound access to the + backendPort on individual Compute Nodes. Acceptable values range between 1 + and 65534 except ports from 50000 to 55000 which are reserved by the Batch + service. All ranges within a Pool must be distinct and cannot overlap. + Each range must contain at least 40 ports. If any reserved or overlapping + values are provided the request fails with HTTP status code 400. + :type frontend_port_range_end: int + :param network_security_group_rules: A list of network security group + rules that will be applied to the endpoint. The maximum number of rules + that can be specified across all the endpoints on a Batch Pool is 25. If + no network security group rules are specified, a default rule will be + created to allow inbound access to the specified backendPort. If the + maximum number of network security group rules is exceeded the request + fails with HTTP status code 400. + :type network_security_group_rules: + list[~azure.batch.models.NetworkSecurityGroupRule] + """ + + _validation = { + 'name': {'required': True}, + 'protocol': {'required': True}, + 'backend_port': {'required': True}, + 'frontend_port_range_start': {'required': True}, + 'frontend_port_range_end': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'protocol': {'key': 'protocol', 'type': 'InboundEndpointProtocol'}, + 'backend_port': {'key': 'backendPort', 'type': 'int'}, + 'frontend_port_range_start': {'key': 'frontendPortRangeStart', 'type': 'int'}, + 'frontend_port_range_end': {'key': 'frontendPortRangeEnd', 'type': 'int'}, + 'network_security_group_rules': {'key': 'networkSecurityGroupRules', 'type': '[NetworkSecurityGroupRule]'}, + } + + def __init__(self, *, name: str, protocol, backend_port: int, frontend_port_range_start: int, frontend_port_range_end: int, network_security_group_rules=None, **kwargs) -> None: + super(InboundNATPool, self).__init__(**kwargs) + self.name = name + self.protocol = protocol + self.backend_port = backend_port + self.frontend_port_range_start = frontend_port_range_start + self.frontend_port_range_end = frontend_port_range_end + self.network_security_group_rules = network_security_group_rules + + +class JobAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobAddParameter(Model): + """An Azure Batch Job to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Job within the + Account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Job. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. The default value is 0. + :type priority: int + :param constraints: The execution constraints for the Job. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: Details of a Job Manager Task to be launched when + the Job is started. If the Job does not specify a Job Manager Task, the + user must explicitly add Tasks to the Job. If the Job does specify a Job + Manager Task, the Batch service creates the Job Manager Task when the Job + is created, and will try to schedule the Job Manager Task before + scheduling other Tasks in the Job. The Job Manager Task's typical purpose + is to control and/or monitor Job execution, for example by deciding what + additional Tasks to run, determining when the work is complete, etc. + (However, a Job Manager Task is not restricted to these activities - it is + a fully-fledged Task in the system and perform whatever actions are + required for the Job.) For example, a Job Manager Task might download a + file specified as a parameter, analyze the contents of that file and + submit additional Tasks based on those contents. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation Task. If a Job has a Job + Preparation Task, the Batch service will run the Job Preparation Task on a + Node before starting any Tasks of that Job on that Compute Node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release Task. A Job Release Task cannot + be specified without also specifying a Job Preparation Task for the Job. + The Batch service runs the Job Release Task on the Nodes that have run the + Job Preparation Task. The primary purpose of the Job Release Task is to + undo changes to Compute Nodes made by the Job Preparation Task. Example + activities include deleting local files, or shutting down services that + were started as part of Job preparation. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: The list of common environment + variable settings. These environment variables are set for all Tasks in + the Job (including the Job Manager, Job Preparation and Job Release + Tasks). Individual Tasks can override an environment setting specified + here by specifying the same setting name with a different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The Pool on which the Batch service runs the + Job's Tasks. + :type pool_info: ~azure.batch.models.PoolInformation + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. Note that if a Job + contains no Tasks, then all Tasks are considered complete. This option is + therefore most commonly used with a Job Manager task; if you want to use + automatic Job termination without a Job Manager, you should initially set + onAllTasksComplete to noaction and update the Job properties to set + onAllTasksComplete to terminatejob once you have finished adding Tasks. + The default is noaction. Possible values include: 'noAction', + 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + Task in the Job fails. A Task is considered to have failed if has a + failureInfo. A failureInfo is set if the Task completes with a non-zero + exit code after exhausting its retry count, or if there was an error + starting the Task, for example due to a resource file download error. The + default is noaction. Possible values include: 'noAction', + 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param metadata: A list of name-value pairs associated with the Job as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + :param uses_task_dependencies: Whether Tasks in the Job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param network_configuration: The network configuration for the Job. + :type network_configuration: ~azure.batch.models.JobNetworkConfiguration + """ + + _validation = { + 'id': {'required': True}, + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'JobNetworkConfiguration'}, + } + + def __init__(self, *, id: str, pool_info, display_name: str=None, priority: int=None, constraints=None, job_manager_task=None, job_preparation_task=None, job_release_task=None, common_environment_settings=None, on_all_tasks_complete=None, on_task_failure=None, metadata=None, uses_task_dependencies: bool=None, network_configuration=None, **kwargs) -> None: + super(JobAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.priority = priority + self.constraints = constraints + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.pool_info = pool_info + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.metadata = metadata + self.uses_task_dependencies = uses_task_dependencies + self.network_configuration = network_configuration + + +class JobConstraints(Model): + """The execution constraints for a Job. + + :param max_wall_clock_time: The maximum elapsed time that the Job may run, + measured from the time the Job is created. If the Job does not complete + within the time limit, the Batch service terminates it and any Tasks that + are still running. In this case, the termination reason will be + MaxWallClockTimeExpiry. If this property is not specified, there is no + time limit on how long the Job may run. + :type max_wall_clock_time: timedelta + :param max_task_retry_count: The maximum number of times each Task may be + retried. The Batch service retries a Task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try each Task once, and may then retry up to this + limit. For example, if the maximum retry count is 3, Batch tries a Task up + to 4 times (one initial try and 3 retries). If the maximum retry count is + 0, the Batch service does not retry Tasks. If the maximum retry count is + -1, the Batch service retries Tasks without limit. The default value is 0 + (no retries). + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, *, max_wall_clock_time=None, max_task_retry_count: int=None, **kwargs) -> None: + super(JobConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = max_wall_clock_time + self.max_task_retry_count = max_task_retry_count + + +class JobDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobDisableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobDisableParameter(Model): + """Options when disabling a Job. + + All required parameters must be populated in order to send to Azure. + + :param disable_tasks: Required. What to do with active Tasks associated + with the Job. Possible values include: 'requeue', 'terminate', 'wait' + :type disable_tasks: str or ~azure.batch.models.DisableJobOption + """ + + _validation = { + 'disable_tasks': {'required': True}, + } + + _attribute_map = { + 'disable_tasks': {'key': 'disableTasks', 'type': 'DisableJobOption'}, + } + + def __init__(self, *, disable_tasks, **kwargs) -> None: + super(JobDisableParameter, self).__init__(**kwargs) + self.disable_tasks = disable_tasks + + +class JobEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobEnableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobExecutionInformation(Model): + """Contains information about the execution of a Job in the Azure Batch + service. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the Job. This is the time + at which the Job was created. + :type start_time: datetime + :param end_time: The completion time of the Job. This property is set only + if the Job is in the completed state. + :type end_time: datetime + :param pool_id: The ID of the Pool to which this Job is assigned. This + element contains the actual Pool where the Job is assigned. When you get + Job details from the service, they also contain a poolInfo element, which + contains the Pool configuration data from when the Job was added or + updated. That poolInfo element may also contain a poolId element. If it + does, the two IDs are the same. If it does not, it means the Job ran on an + auto Pool, and this property contains the ID of that auto Pool. + :type pool_id: str + :param scheduling_error: Details of any error encountered by the service + in starting the Job. This property is not set if there was no error + starting the Job. + :type scheduling_error: ~azure.batch.models.JobSchedulingError + :param terminate_reason: A string describing the reason the Job ended. + This property is set only if the Job is in the completed state. If the + Batch service terminates the Job, it sets the reason as follows: + JMComplete - the Job Manager Task completed, and killJobOnCompletion was + set to true. MaxWallClockTimeExpiry - the Job reached its maxWallClockTime + constraint. TerminateJobSchedule - the Job ran as part of a schedule, and + the schedule terminated. AllTasksComplete - the Job's onAllTasksComplete + attribute is set to terminatejob, and all Tasks in the Job are complete. + TaskFailed - the Job's onTaskFailure attribute is set to + performExitOptionsJobAction, and a Task in the Job failed with an exit + condition that specified a jobAction of terminatejob. Any other string is + a user-defined reason specified in a call to the 'Terminate a Job' + operation. + :type terminate_reason: str + """ + + _validation = { + 'start_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'scheduling_error': {'key': 'schedulingError', 'type': 'JobSchedulingError'}, + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, *, start_time, end_time=None, pool_id: str=None, scheduling_error=None, terminate_reason: str=None, **kwargs) -> None: + super(JobExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.pool_id = pool_id + self.scheduling_error = scheduling_error + self.terminate_reason = terminate_reason + + +class JobGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobGetTaskCountsOptions(Model): + """Additional parameters for get_task_counts operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobGetTaskCountsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobListFromJobScheduleOptions(Model): + """Additional parameters for list_from_job_schedule operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobListFromJobScheduleOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Jobs can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobListPreparationAndReleaseTaskStatusOptions(Model): + """Additional parameters for list_preparation_and_release_task_status + operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobListPreparationAndReleaseTaskStatusOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobManagerTask(Model): + """Specifies details of a Job Manager Task. + + The Job Manager Task is automatically started when the Job is created. The + Batch service tries to schedule the Job Manager Task before any other Tasks + in the Job. When shrinking a Pool, the Batch service tries to preserve + Nodes where Job Manager Tasks are running for as long as possible (that is, + Compute Nodes running 'normal' Tasks are removed before Compute Nodes + running Job Manager Tasks). When a Job Manager Task fails and needs to be + restarted, the system tries to schedule it at the highest priority. If + there are no idle Compute Nodes available, the system may terminate one of + the running Tasks in the Pool and return it to the queue in order to make + room for the Job Manager Task to restart. Note that a Job Manager Task in + one Job does not have priority over Tasks in other Jobs. Across Jobs, only + Job level priorities are observed. For example, if a Job Manager in a + priority 0 Job needs to be restarted, it will not displace Tasks of a + priority 1 Job. Batch will retry Tasks when a recovery operation is + triggered on a Node. Examples of recovery operations include (but are not + limited to) when an unhealthy Node is rebooted or a Compute Node + disappeared due to host failure. Retries due to recovery operations are + independent of and are not counted against the maxTaskRetryCount. Even if + the maxTaskRetryCount is 0, an internal retry due to a recovery operation + may occur. Because of this, all Tasks should be idempotent. This means + Tasks need to tolerate being interrupted and restarted without causing any + corruption or duplicate data. The best practice for long running Tasks is + to use some form of checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Job Manager + Task within the Job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. + :type id: str + :param display_name: The display name of the Job Manager Task. It need not + be unique and can contain any Unicode characters up to a maximum length of + 1024. + :type display_name: str + :param command_line: Required. The command line of the Job Manager Task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the Task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Manager Task runs. If the Pool that will run this Task has + containerConfiguration set, this must be set as well. If the Pool that + will run this Task doesn't have containerConfiguration set, this must not + be set. When this is specified, all directories recursively below the + AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) + are mapped into the container, all Task environment variables are mapped + into the container, and the Task command line is executed in the + container. Files produced in the container outside of + AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. Files listed + under this element are located in the Task's working directory. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the Compute Node after running the command line. For multi-instance + Tasks, the files will only be uploaded from the Compute Node on which the + primary Task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Job Manager Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Manager Task. + :type constraints: ~azure.batch.models.TaskConstraints + :param kill_job_on_completion: Whether completion of the Job Manager Task + signifies completion of the entire Job. If true, when the Job Manager Task + completes, the Batch service marks the Job as complete. If any Tasks are + still running at this time (other than Job Release), those Tasks are + terminated. If false, the completion of the Job Manager Task does not + affect the Job status. In this case, you should either use the + onAllTasksComplete attribute to terminate the Job, or have a client or + user terminate the Job explicitly. An example of this is if the Job + Manager creates a set of Tasks but then takes no further role in their + execution. The default value is true. If you are using the + onAllTasksComplete and onTaskFailure attributes to control Job lifetime, + and using the Job Manager Task only to create the Tasks for the Job (not + to monitor progress), then it is important to set killJobOnCompletion to + false. + :type kill_job_on_completion: bool + :param user_identity: The user identity under which the Job Manager Task + runs. If omitted, the Task runs as a non-administrative user unique to the + Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param run_exclusive: Whether the Job Manager Task requires exclusive use + of the Compute Node where it runs. If true, no other Tasks will run on the + same Node for as long as the Job Manager is running. If false, other Tasks + can run simultaneously with the Job Manager on a Compute Node. The Job + Manager Task counts normally against the Compute Node's concurrent Task + limit, so this is only relevant if the Compute Node allows multiple + concurrent Tasks. The default value is true. + :type run_exclusive: bool + :param application_package_references: A list of Application Packages that + the Batch service will deploy to the Compute Compute Node before running + the command line. Application Packages are downloaded and deployed to a + shared directory, not the Task working directory. Therefore, if a + referenced Application Package is already on the Compute Node, and is up + to date, then it is not re-downloaded; the existing copy on the Compute + Compute Node is used. If a referenced Application Package cannot be + installed, for example because the package has been deleted or because + download failed, the Task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the Task can use to perform Batch service operations. If this + property is set, the Batch service provides the Task with an + authentication token which can be used to authenticate Batch service + operations without requiring an Account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the Task can carry out using the token depend on the settings. For + example, a Task can request Job permissions in order to add other Tasks to + the Job, or check the status of the Job or of other Tasks under the Job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + :param allow_low_priority_node: Whether the Job Manager Task may run on a + low-priority Compute Node. The default value is true. + :type allow_low_priority_node: bool + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'kill_job_on_completion': {'key': 'killJobOnCompletion', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'run_exclusive': {'key': 'runExclusive', 'type': 'bool'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + 'allow_low_priority_node': {'key': 'allowLowPriorityNode', 'type': 'bool'}, + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, kill_job_on_completion: bool=None, user_identity=None, run_exclusive: bool=None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool=None, **kwargs) -> None: + super(JobManagerTask, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.constraints = constraints + self.kill_job_on_completion = kill_job_on_completion + self.user_identity = user_identity + self.run_exclusive = run_exclusive + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + self.allow_low_priority_node = allow_low_priority_node + + +class JobNetworkConfiguration(Model): + """The network configuration for the Job. + + All required parameters must be populated in order to send to Azure. + + :param subnet_id: Required. The ARM resource identifier of the virtual + network subnet which Compute Nodes running Tasks from the Job will join + for the duration of the Task. This will only work with a + VirtualMachineConfiguration Pool. The virtual network must be in the same + region and subscription as the Azure Batch Account. The specified subnet + should have enough free IP addresses to accommodate the number of Compute + Nodes which will run Tasks from the Job. This can be up to the number of + Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service principal + must have the 'Classic Virtual Machine Contributor' Role-Based Access + Control (RBAC) role for the specified VNet so that Azure Batch service can + schedule Tasks on the Nodes. This can be verified by checking if the + specified VNet has any associated Network Security Groups (NSG). If + communication to the Nodes in the specified subnet is denied by an NSG, + then the Batch service will set the state of the Compute Nodes to + unusable. This is of the form + /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. + If the specified VNet has any associated Network Security Groups (NSG), + then a few reserved system ports must be enabled for inbound communication + from the Azure Batch service. For Pools created with a Virtual Machine + configuration, enable ports 29876 and 29877, as well as port 22 for Linux + and port 3389 for Windows. Port 443 is also required to be open for + outbound connections for communications to Azure Storage. For more details + see: + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + :type subnet_id: str + """ + + _validation = { + 'subnet_id': {'required': True}, + } + + _attribute_map = { + 'subnet_id': {'key': 'subnetId', 'type': 'str'}, + } + + def __init__(self, *, subnet_id: str, **kwargs) -> None: + super(JobNetworkConfiguration, self).__init__(**kwargs) + self.subnet_id = subnet_id + + +class JobPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobPatchOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobPatchParameter(Model): + """The set of changes to be made to a Job. + + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, the priority of the Job is left unchanged. + :type priority: int + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. If omitted, the + completion behavior is left unchanged. You may not change the value from + terminatejob to noaction - that is, once you have engaged automatic Job + termination, you cannot turn it off again. If you try to do this, the + request fails with an 'invalid property value' error response; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + Possible values include: 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param constraints: The execution constraints for the Job. If omitted, the + existing execution constraints are left unchanged. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: The Pool on which the Batch service runs the Job's + Tasks. You may change the Pool for a Job only when the Job is disabled. + The Patch Job call will fail if you include the poolInfo element and the + Job is not disabled. If you specify an autoPoolSpecification specification + in the poolInfo, only the keepAlive property can be updated, and then only + if the auto Pool has a poolLifetimeOption of Job. If omitted, the Job + continues to run on its current Pool. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the Job as + metadata. If omitted, the existing Job metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, priority: int=None, on_all_tasks_complete=None, constraints=None, pool_info=None, metadata=None, **kwargs) -> None: + super(JobPatchParameter, self).__init__(**kwargs) + self.priority = priority + self.on_all_tasks_complete = on_all_tasks_complete + self.constraints = constraints + self.pool_info = pool_info + self.metadata = metadata + + +class JobPreparationAndReleaseTaskExecutionInformation(Model): + """The status of the Job Preparation and Job Release Tasks on a Compute Node. + + :param pool_id: The ID of the Pool containing the Compute Node to which + this entry refers. + :type pool_id: str + :param node_id: The ID of the Compute Node to which this entry refers. + :type node_id: str + :param node_url: The URL of the Compute Node to which this entry refers. + :type node_url: str + :param job_preparation_task_execution_info: Information about the + execution status of the Job Preparation Task on this Compute Node. + :type job_preparation_task_execution_info: + ~azure.batch.models.JobPreparationTaskExecutionInformation + :param job_release_task_execution_info: Information about the execution + status of the Job Release Task on this Compute Node. This property is set + only if the Job Release Task has run on the Compute Node. + :type job_release_task_execution_info: + ~azure.batch.models.JobReleaseTaskExecutionInformation + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'node_id': {'key': 'nodeId', 'type': 'str'}, + 'node_url': {'key': 'nodeUrl', 'type': 'str'}, + 'job_preparation_task_execution_info': {'key': 'jobPreparationTaskExecutionInfo', 'type': 'JobPreparationTaskExecutionInformation'}, + 'job_release_task_execution_info': {'key': 'jobReleaseTaskExecutionInfo', 'type': 'JobReleaseTaskExecutionInformation'}, + } + + def __init__(self, *, pool_id: str=None, node_id: str=None, node_url: str=None, job_preparation_task_execution_info=None, job_release_task_execution_info=None, **kwargs) -> None: + super(JobPreparationAndReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.pool_id = pool_id + self.node_id = node_id + self.node_url = node_url + self.job_preparation_task_execution_info = job_preparation_task_execution_info + self.job_release_task_execution_info = job_release_task_execution_info + + +class JobPreparationTask(Model): + """A Job Preparation Task to run before any Tasks of the Job on any given + Compute Node. + + You can use Job Preparation to prepare a Node to run Tasks for the Job. + Activities commonly performed in Job Preparation include: Downloading + common resource files used by all the Tasks in the Job. The Job Preparation + Task can download these common resource files to the shared location on the + Node. (AZ_BATCH_NODE_ROOT_DIR\shared), or starting a local service on the + Node so that all Tasks of that Job can communicate with it. If the Job + Preparation Task fails (that is, exhausts its retry count before exiting + with exit code 0), Batch will not run Tasks of this Job on the Node. The + Compute Node remains ineligible to run Tasks of this Job until it is + reimaged. The Compute Node remains active and can be used for other Jobs. + The Job Preparation Task can run multiple times on the same Node. + Therefore, you should write the Job Preparation Task to handle + re-execution. If the Node is rebooted, the Job Preparation Task is run + again on the Compute Node before scheduling any other Task of the Job, if + rerunOnNodeRebootAfterSuccess is true or if the Job Preparation Task did + not previously complete. If the Node is reimaged, the Job Preparation Task + is run again before scheduling any Task of the Job. Batch will retry Tasks + when a recovery operation is triggered on a Node. Examples of recovery + operations include (but are not limited to) when an unhealthy Node is + rebooted or a Compute Node disappeared due to host failure. Retries due to + recovery operations are independent of and are not counted against the + maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry + due to a recovery operation may occur. Because of this, all Tasks should be + idempotent. This means Tasks need to tolerate being interrupted and + restarted without causing any corruption or duplicate data. The best + practice for long running Tasks is to use some form of checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Preparation Task + within the Job. The ID can contain any combination of alphanumeric + characters including hyphens and underscores and cannot contain more than + 64 characters. If you do not specify this property, the Batch service + assigns a default value of 'jobpreparation'. No other Task in the Job can + have the same ID as the Job Preparation Task. If you try to submit a Task + with the same id, the Batch service rejects the request with error code + TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, + the HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Preparation + Task. The command line does not run under a shell, and therefore cannot + take advantage of shell features such as environment variable expansion. + If you want to take advantage of such features, you should invoke the + shell in the command line, for example using "cmd /c MyCommand" in Windows + or "/bin/sh -c MyCommand" in Linux. If the command line refers to file + paths, it should use a relative path (relative to the Task working + directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Preparation Task runs. When this is specified, all directories + recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch + directories on the node) are mapped into the container, all Task + environment variables are mapped into the container, and the Task command + line is executed in the container. Files produced in the container outside + of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. Files listed + under this element are located in the Task's working directory. There is + a maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Preparation Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param constraints: Constraints that apply to the Job Preparation Task. + :type constraints: ~azure.batch.models.TaskConstraints + :param wait_for_success: Whether the Batch service should wait for the Job + Preparation Task to complete successfully before scheduling any other + Tasks of the Job on the Compute Node. A Job Preparation Task has completed + successfully if it exits with exit code 0. If true and the Job Preparation + Task fails on a Node, the Batch service retries the Job Preparation Task + up to its maximum retry count (as specified in the constraints element). + If the Task has still not completed successfully after all retries, then + the Batch service will not schedule Tasks of the Job to the Node. The Node + remains active and eligible to run Tasks of other Jobs. If false, the + Batch service will not wait for the Job Preparation Task to complete. In + this case, other Tasks of the Job can start executing on the Compute Node + while the Job Preparation Task is still running; and even if the Job + Preparation Task fails, new Tasks will continue to be scheduled on the + Compute Node. The default value is true. + :type wait_for_success: bool + :param user_identity: The user identity under which the Job Preparation + Task runs. If omitted, the Task runs as a non-administrative user unique + to the Task on Windows Compute Nodes, or a non-administrative user unique + to the Pool on Linux Compute Nodes. + :type user_identity: ~azure.batch.models.UserIdentity + :param rerun_on_node_reboot_after_success: Whether the Batch service + should rerun the Job Preparation Task after a Compute Node reboots. The + Job Preparation Task is always rerun if a Compute Node is reimaged, or if + the Job Preparation Task did not complete (e.g. because the reboot + occurred while the Task was running). Therefore, you should always write a + Job Preparation Task to be idempotent and to behave correctly if run + multiple times. The default value is true. + :type rerun_on_node_reboot_after_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'rerun_on_node_reboot_after_success': {'key': 'rerunOnNodeRebootAfterSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool=None, user_identity=None, rerun_on_node_reboot_after_success: bool=None, **kwargs) -> None: + super(JobPreparationTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.constraints = constraints + self.wait_for_success = wait_for_success + self.user_identity = user_identity + self.rerun_on_node_reboot_after_success = rerun_on_node_reboot_after_success + + +class JobPreparationTaskExecutionInformation(Model): + """Contains information about the execution of a Job Preparation Task on a + Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the Task started running. + If the Task has been restarted or retried, this is the most recent time at + which the Task started running. + :type start_time: datetime + :param end_time: The time at which the Job Preparation Task completed. + This property is set only if the Task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Preparation Task on + the Compute Node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobPreparationTaskState + :param task_root_directory: The root directory of the Job Preparation Task + on the Compute Node. You can use this path to retrieve files created by + the Task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Preparation Task on the Compute Node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the Task + command line. This parameter is returned only if the Task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the Compute Node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the Task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the Task could not be run) and + file upload errors are not retried. The Batch service will retry the Task + up to the limit specified by the constraints. Task application failures + (non-zero exit code) are retried, pre-processing errors (the Task could + not be run) and file upload errors are not retried. The Batch service will + retry the Task up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Job + Preparation Task started running. This property is set only if the Task + was retried (i.e. retryCount is nonzero). If present, this is typically + the same as startTime, but may be different if the Task has been restarted + for reasons other than retry; for example, if the Compute Node was + rebooted during a retry, then the startTime is updated but the + lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobPreparationTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, start_time, state, retry_count: int, end_time=None, task_root_directory: str=None, task_root_directory_url: str=None, exit_code: int=None, container_info=None, failure_info=None, last_retry_time=None, result=None, **kwargs) -> None: + super(JobPreparationTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.state = state + self.task_root_directory = task_root_directory + self.task_root_directory_url = task_root_directory_url + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.retry_count = retry_count + self.last_retry_time = last_retry_time + self.result = result + + +class JobReleaseTask(Model): + """A Job Release Task to run on Job completion on any Compute Node where the + Job has run. + + The Job Release Task runs when the Job ends, because of one of the + following: The user calls the Terminate Job API, or the Delete Job API + while the Job is still active, the Job's maximum wall clock time constraint + is reached, and the Job is still active, or the Job's Job Manager Task + completed, and the Job is configured to terminate when the Job Manager + completes. The Job Release Task runs on each Node where Tasks of the Job + have run and the Job Preparation Task ran and completed. If you reimage a + Node after it has run the Job Preparation Task, and the Job ends without + any further Tasks of the Job running on that Node (and hence the Job + Preparation Task does not re-run), then the Job Release Task does not run + on that Compute Node. If a Node reboots while the Job Release Task is still + running, the Job Release Task runs again when the Compute Node starts up. + The Job is not marked as complete until all Job Release Tasks have + completed. The Job Release Task runs in the background. It does not occupy + a scheduling slot; that is, it does not count towards the maxTasksPerNode + limit specified on the Pool. + + All required parameters must be populated in order to send to Azure. + + :param id: A string that uniquely identifies the Job Release Task within + the Job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores and cannot contain more than 64 + characters. If you do not specify this property, the Batch service assigns + a default value of 'jobrelease'. No other Task in the Job can have the + same ID as the Job Release Task. If you try to submit a Task with the same + id, the Batch service rejects the request with error code + TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the + HTTP status code is 409 (Conflict). + :type id: str + :param command_line: Required. The command line of the Job Release Task. + The command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the Task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Job Release Task runs. When this is specified, all directories recursively + below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on + the node) are mapped into the container, all Task environment variables + are mapped into the container, and the Task command line is executed in + the container. Files produced in the container outside of + AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the Task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the Job Release Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param max_wall_clock_time: The maximum elapsed time that the Job Release + Task may run on a given Compute Node, measured from the time the Task + starts. If the Task does not complete within the time limit, the Batch + service terminates it. The default value is 15 minutes. You may not + specify a timeout longer than 15 minutes. If you do, the Batch service + rejects it with an error; if you are calling the REST API directly, the + HTTP status code is 400 (Bad Request). + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the Task directory for + the Job Release Task on the Compute Node. After this time, the Batch + service may delete the Task directory and all its contents. The default is + 7 days, i.e. the Task directory will be retained for 7 days unless the + Compute Node is removed or the Job is deleted. + :type retention_time: timedelta + :param user_identity: The user identity under which the Job Release Task + runs. If omitted, the Task runs as a non-administrative user unique to the + Task. + :type user_identity: ~azure.batch.models.UserIdentity + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + } + + def __init__(self, *, command_line: str, id: str=None, container_settings=None, resource_files=None, environment_settings=None, max_wall_clock_time=None, retention_time=None, user_identity=None, **kwargs) -> None: + super(JobReleaseTask, self).__init__(**kwargs) + self.id = id + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.max_wall_clock_time = max_wall_clock_time + self.retention_time = retention_time + self.user_identity = user_identity + + +class JobReleaseTaskExecutionInformation(Model): + """Contains information about the execution of a Job Release Task on a Compute + Node. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The time at which the Task started running. + If the Task has been restarted or retried, this is the most recent time at + which the Task started running. + :type start_time: datetime + :param end_time: The time at which the Job Release Task completed. This + property is set only if the Task is in the Completed state. + :type end_time: datetime + :param state: Required. The current state of the Job Release Task on the + Compute Node. Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.JobReleaseTaskState + :param task_root_directory: The root directory of the Job Release Task on + the Compute Node. You can use this path to retrieve files created by the + Task, such as log files. + :type task_root_directory: str + :param task_root_directory_url: The URL to the root directory of the Job + Release Task on the Compute Node. + :type task_root_directory_url: str + :param exit_code: The exit code of the program specified on the Task + command line. This parameter is returned only if the Task is in the + completed state. The exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. Note + that the exit code may also be generated by the Compute Node operating + system, such as when a process is forcibly terminated. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'start_time': {'required': True}, + 'state': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'state': {'key': 'state', 'type': 'JobReleaseTaskState'}, + 'task_root_directory': {'key': 'taskRootDirectory', 'type': 'str'}, + 'task_root_directory_url': {'key': 'taskRootDirectoryUrl', 'type': 'str'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, start_time, state, end_time=None, task_root_directory: str=None, task_root_directory_url: str=None, exit_code: int=None, container_info=None, failure_info=None, result=None, **kwargs) -> None: + super(JobReleaseTaskExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.state = state + self.task_root_directory = task_root_directory + self.task_root_directory_url = task_root_directory_url + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.result = result + + +class JobScheduleAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobScheduleAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobScheduleAddParameter(Model): + """A Job Schedule that allows recurring Jobs by specifying when to run Jobs + and a specification used to create each Job. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the schedule within + the Account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the schedule. The display name + need not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param schedule: Required. The schedule according to which Jobs will be + created. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. The details of the Jobs to be created + on this schedule. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the schedule + as metadata. The Batch service does not assign any meaning to metadata; it + is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, id: str, schedule, job_specification, display_name: str=None, metadata=None, **kwargs) -> None: + super(JobScheduleAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.schedule = schedule + self.job_specification = job_specification + self.metadata = metadata + + +class JobScheduleDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleDisableOptions(Model): + """Additional parameters for disable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleDisableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleEnableOptions(Model): + """Additional parameters for enable operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleEnableOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleExecutionInformation(Model): + """Contains information about Jobs that have been and will be run under a Job + Schedule. + + :param next_run_time: The next time at which a Job will be created under + this schedule. This property is meaningful only if the schedule is in the + active state when the time comes around. For example, if the schedule is + disabled, no Job will be created at nextRunTime unless the Job is enabled + before then. + :type next_run_time: datetime + :param recent_job: Information about the most recent Job under the Job + Schedule. This property is present only if the at least one Job has run + under the schedule. + :type recent_job: ~azure.batch.models.RecentJob + :param end_time: The time at which the schedule ended. This property is + set only if the Job Schedule is in the completed state. + :type end_time: datetime + """ + + _attribute_map = { + 'next_run_time': {'key': 'nextRunTime', 'type': 'iso-8601'}, + 'recent_job': {'key': 'recentJob', 'type': 'RecentJob'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, *, next_run_time=None, recent_job=None, end_time=None, **kwargs) -> None: + super(JobScheduleExecutionInformation, self).__init__(**kwargs) + self.next_run_time = next_run_time + self.recent_job = recent_job + self.end_time = end_time + + +class JobScheduleExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleExistsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Job Schedules can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(JobScheduleListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class JobSchedulePatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobSchedulePatchOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobSchedulePatchParameter(Model): + """The set of changes to be made to a Job Schedule. + + :param schedule: The schedule according to which Jobs will be created. If + you do not specify this element, the existing schedule is left unchanged. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: The details of the Jobs to be created on this + schedule. Updates affect only Jobs that are started after the update has + taken place. Any currently active Job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the Job + Schedule as metadata. If you do not specify this element, existing + metadata is left unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, schedule=None, job_specification=None, metadata=None, **kwargs) -> None: + super(JobSchedulePatchParameter, self).__init__(**kwargs) + self.schedule = schedule + self.job_specification = job_specification + self.metadata = metadata + + +class JobScheduleStatistics(Model): + """Resource usage statistics for a Job Schedule. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in all Jobs + created under the schedule. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in all Jobs + created under the schedule. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all the + Tasks in all the Jobs created under the schedule. The wall clock time is + the elapsed time from when the Task started running on a Compute Node to + when it finished (or to the last time the statistics were updated, if the + Task had not finished by then). If a Task was retried, this includes the + wall clock time of all the Task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all Tasks in all Jobs created under the schedule. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all Tasks in all Jobs created under the schedule. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by all + Tasks in all Jobs created under the schedule. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by all + Tasks in all Jobs created under the schedule. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of Tasks + successfully completed during the given time range in Jobs created under + the schedule. A Task completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of Tasks that failed + during the given time range in Jobs created under the schedule. A Task + fails if it exhausts its maximum retry count without returning exit code + 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries during the + given time range on all Tasks in all Jobs created under the schedule. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all Tasks in all Jobs + created under the schedule. The wait time for a Task is defined as the + elapsed time between the creation of the Task and the start of Task + execution. (If the Task is retried due to failures, the wait time is the + time to the most recent Task execution.). This value is only reported in + the Account lifetime statistics; it is not included in the Job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, user_cpu_time, kernel_cpu_time, wall_clock_time, read_iops: int, write_iops: int, read_io_gi_b: float, write_io_gi_b: float, num_succeeded_tasks: int, num_failed_tasks: int, num_task_retries: int, wait_time, **kwargs) -> None: + super(JobScheduleStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.user_cpu_time = user_cpu_time + self.kernel_cpu_time = kernel_cpu_time + self.wall_clock_time = wall_clock_time + self.read_iops = read_iops + self.write_iops = write_iops + self.read_io_gi_b = read_io_gi_b + self.write_io_gi_b = write_io_gi_b + self.num_succeeded_tasks = num_succeeded_tasks + self.num_failed_tasks = num_failed_tasks + self.num_task_retries = num_task_retries + self.wait_time = wait_time + + +class JobScheduleTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleTerminateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobScheduleUpdateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobScheduleUpdateParameter(Model): + """The set of changes to be made to a Job Schedule. + + All required parameters must be populated in order to send to Azure. + + :param schedule: Required. The schedule according to which Jobs will be + created. If you do not specify this element, it is equivalent to passing + the default schedule: that is, a single Job scheduled to run immediately. + :type schedule: ~azure.batch.models.Schedule + :param job_specification: Required. Details of the Jobs to be created on + this schedule. Updates affect only Jobs that are started after the update + has taken place. Any currently active Job continues with the older + specification. + :type job_specification: ~azure.batch.models.JobSpecification + :param metadata: A list of name-value pairs associated with the Job + Schedule as metadata. If you do not specify this element, it takes the + default value of an empty list; in effect, any existing metadata is + deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'schedule': {'required': True}, + 'job_specification': {'required': True}, + } + + _attribute_map = { + 'schedule': {'key': 'schedule', 'type': 'Schedule'}, + 'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, schedule, job_specification, metadata=None, **kwargs) -> None: + super(JobScheduleUpdateParameter, self).__init__(**kwargs) + self.schedule = schedule + self.job_specification = job_specification + self.metadata = metadata + + +class JobSchedulingError(Model): + """An error encountered by the Batch service when scheduling a Job. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the Job scheduling error. + Possible values include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the Job scheduling error. Codes are + invariant and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Job scheduling error, intended to + be suitable for display in a user interface. + :type message: str + :param details: A list of additional error details related to the + scheduling error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, category, code: str=None, message: str=None, details=None, **kwargs) -> None: + super(JobSchedulingError, self).__init__(**kwargs) + self.category = category + self.code = code + self.message = message + self.details = details + + +class JobSpecification(Model): + """Specifies details of the Jobs to be created on a schedule. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of Jobs created under this schedule. + Priority values can range from -1000 to 1000, with -1000 being the lowest + priority and 1000 being the highest priority. The default value is 0. This + priority is used as the default for all Jobs under the Job Schedule. You + can update a Job's priority after it has been created using by using the + update Job API. + :type priority: int + :param display_name: The display name for Jobs created under this + schedule. The name need not be unique and can contain any Unicode + characters up to a maximum length of 1024. + :type display_name: str + :param uses_task_dependencies: Whether Tasks in the Job can define + dependencies on each other. The default is false. + :type uses_task_dependencies: bool + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in a Job created under this schedule are in the completed + state. Note that if a Job contains no Tasks, then all Tasks are considered + complete. This option is therefore most commonly used with a Job Manager + task; if you want to use automatic Job termination without a Job Manager, + you should initially set onAllTasksComplete to noaction and update the Job + properties to set onAllTasksComplete to terminatejob once you have + finished adding Tasks. The default is noaction. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + :param on_task_failure: The action the Batch service should take when any + Task fails in a Job created under this schedule. A Task is considered to + have failed if it have failed if has a failureInfo. A failureInfo is set + if the Task completes with a non-zero exit code after exhausting its retry + count, or if there was an error starting the Task, for example due to a + resource file download error. The default is noaction. Possible values + include: 'noAction', 'performExitOptionsJobAction' + :type on_task_failure: str or ~azure.batch.models.OnTaskFailure + :param network_configuration: The network configuration for the Job. + :type network_configuration: ~azure.batch.models.JobNetworkConfiguration + :param constraints: The execution constraints for Jobs created under this + schedule. + :type constraints: ~azure.batch.models.JobConstraints + :param job_manager_task: The details of a Job Manager Task to be launched + when a Job is started under this schedule. If the Job does not specify a + Job Manager Task, the user must explicitly add Tasks to the Job using the + Task API. If the Job does specify a Job Manager Task, the Batch service + creates the Job Manager Task when the Job is created, and will try to + schedule the Job Manager Task before scheduling other Tasks in the Job. + :type job_manager_task: ~azure.batch.models.JobManagerTask + :param job_preparation_task: The Job Preparation Task for Jobs created + under this schedule. If a Job has a Job Preparation Task, the Batch + service will run the Job Preparation Task on a Node before starting any + Tasks of that Job on that Compute Node. + :type job_preparation_task: ~azure.batch.models.JobPreparationTask + :param job_release_task: The Job Release Task for Jobs created under this + schedule. The primary purpose of the Job Release Task is to undo changes + to Nodes made by the Job Preparation Task. Example activities include + deleting local files, or shutting down services that were started as part + of Job preparation. A Job Release Task cannot be specified without also + specifying a Job Preparation Task for the Job. The Batch service runs the + Job Release Task on the Compute Nodes that have run the Job Preparation + Task. + :type job_release_task: ~azure.batch.models.JobReleaseTask + :param common_environment_settings: A list of common environment variable + settings. These environment variables are set for all Tasks in Jobs + created under this schedule (including the Job Manager, Job Preparation + and Job Release Tasks). Individual Tasks can override an environment + setting specified here by specifying the same setting name with a + different value. + :type common_environment_settings: + list[~azure.batch.models.EnvironmentSetting] + :param pool_info: Required. The Pool on which the Batch service runs the + Tasks of Jobs created under this schedule. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with each Job + created under this schedule as metadata. The Batch service does not assign + any meaning to metadata; it is solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'uses_task_dependencies': {'key': 'usesTaskDependencies', 'type': 'bool'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + 'on_task_failure': {'key': 'onTaskFailure', 'type': 'OnTaskFailure'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'JobNetworkConfiguration'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'job_manager_task': {'key': 'jobManagerTask', 'type': 'JobManagerTask'}, + 'job_preparation_task': {'key': 'jobPreparationTask', 'type': 'JobPreparationTask'}, + 'job_release_task': {'key': 'jobReleaseTask', 'type': 'JobReleaseTask'}, + 'common_environment_settings': {'key': 'commonEnvironmentSettings', 'type': '[EnvironmentSetting]'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, pool_info, priority: int=None, display_name: str=None, uses_task_dependencies: bool=None, on_all_tasks_complete=None, on_task_failure=None, network_configuration=None, constraints=None, job_manager_task=None, job_preparation_task=None, job_release_task=None, common_environment_settings=None, metadata=None, **kwargs) -> None: + super(JobSpecification, self).__init__(**kwargs) + self.priority = priority + self.display_name = display_name + self.uses_task_dependencies = uses_task_dependencies + self.on_all_tasks_complete = on_all_tasks_complete + self.on_task_failure = on_task_failure + self.network_configuration = network_configuration + self.constraints = constraints + self.job_manager_task = job_manager_task + self.job_preparation_task = job_preparation_task + self.job_release_task = job_release_task + self.common_environment_settings = common_environment_settings + self.pool_info = pool_info + self.metadata = metadata + + +class JobStatistics(Model): + """Resource usage statistics for a Job. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in the Job. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all Compute Nodes) consumed by all Tasks in the Job. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of all Tasks + in the Job. The wall clock time is the elapsed time from when the Task + started running on a Compute Node to when it finished (or to the last time + the statistics were updated, if the Task had not finished by then). If a + Task was retried, this includes the wall clock time of all the Task + retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by all Tasks in the Job. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by all Tasks in the Job. + :type write_iops: long + :param read_io_gi_b: Required. The total amount of data in GiB read from + disk by all Tasks in the Job. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total amount of data in GiB written to + disk by all Tasks in the Job. + :type write_io_gi_b: float + :param num_succeeded_tasks: Required. The total number of Tasks + successfully completed in the Job during the given time range. A Task + completes successfully if it returns exit code 0. + :type num_succeeded_tasks: long + :param num_failed_tasks: Required. The total number of Tasks in the Job + that failed during the given time range. A Task fails if it exhausts its + maximum retry count without returning exit code 0. + :type num_failed_tasks: long + :param num_task_retries: Required. The total number of retries on all the + Tasks in the Job during the given time range. + :type num_task_retries: long + :param wait_time: Required. The total wait time of all Tasks in the Job. + The wait time for a Task is defined as the elapsed time between the + creation of the Task and the start of Task execution. (If the Task is + retried due to failures, the wait time is the time to the most recent Task + execution.) This value is only reported in the Account lifetime + statistics; it is not included in the Job statistics. + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'num_succeeded_tasks': {'required': True}, + 'num_failed_tasks': {'required': True}, + 'num_task_retries': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'num_succeeded_tasks': {'key': 'numSucceededTasks', 'type': 'long'}, + 'num_failed_tasks': {'key': 'numFailedTasks', 'type': 'long'}, + 'num_task_retries': {'key': 'numTaskRetries', 'type': 'long'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, user_cpu_time, kernel_cpu_time, wall_clock_time, read_iops: int, write_iops: int, read_io_gi_b: float, write_io_gi_b: float, num_succeeded_tasks: int, num_failed_tasks: int, num_task_retries: int, wait_time, **kwargs) -> None: + super(JobStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.user_cpu_time = user_cpu_time + self.kernel_cpu_time = kernel_cpu_time + self.wall_clock_time = wall_clock_time + self.read_iops = read_iops + self.write_iops = write_iops + self.read_io_gi_b = read_io_gi_b + self.write_io_gi_b = write_io_gi_b + self.num_succeeded_tasks = num_succeeded_tasks + self.num_failed_tasks = num_failed_tasks + self.num_task_retries = num_task_retries + self.wait_time = wait_time + + +class JobTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobTerminateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobTerminateParameter(Model): + """Options when terminating a Job. + + :param terminate_reason: The text you want to appear as the Job's + TerminateReason. The default is 'UserTerminate'. + :type terminate_reason: str + """ + + _attribute_map = { + 'terminate_reason': {'key': 'terminateReason', 'type': 'str'}, + } + + def __init__(self, *, terminate_reason: str=None, **kwargs) -> None: + super(JobTerminateParameter, self).__init__(**kwargs) + self.terminate_reason = terminate_reason + + +class JobUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(JobUpdateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class JobUpdateParameter(Model): + """The set of changes to be made to a Job. + + All required parameters must be populated in order to send to Azure. + + :param priority: The priority of the Job. Priority values can range from + -1000 to 1000, with -1000 being the lowest priority and 1000 being the + highest priority. If omitted, it is set to the default value 0. + :type priority: int + :param constraints: The execution constraints for the Job. If omitted, the + constraints are cleared. + :type constraints: ~azure.batch.models.JobConstraints + :param pool_info: Required. The Pool on which the Batch service runs the + Job's Tasks. You may change the Pool for a Job only when the Job is + disabled. The Update Job call will fail if you include the poolInfo + element and the Job is not disabled. If you specify an + autoPoolSpecification specification in the poolInfo, only the keepAlive + property can be updated, and then only if the auto Pool has a + poolLifetimeOption of Job. + :type pool_info: ~azure.batch.models.PoolInformation + :param metadata: A list of name-value pairs associated with the Job as + metadata. If omitted, it takes the default value of an empty list; in + effect, any existing metadata is deleted. + :type metadata: list[~azure.batch.models.MetadataItem] + :param on_all_tasks_complete: The action the Batch service should take + when all Tasks in the Job are in the completed state. If omitted, the + completion behavior is set to noaction. If the current value is + terminatejob, this is an error because a Job's completion behavior may not + be changed from terminatejob to noaction. You may not change the value + from terminatejob to noaction - that is, once you have engaged automatic + Job termination, you cannot turn it off again. If you try to do this, the + request fails and Batch returns status code 400 (Bad Request) and an + 'invalid property value' error response. If you do not specify this + element in a PUT request, it is equivalent to passing noaction. This is an + error if the current value is terminatejob. Possible values include: + 'noAction', 'terminateJob' + :type on_all_tasks_complete: str or ~azure.batch.models.OnAllTasksComplete + """ + + _validation = { + 'pool_info': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'constraints': {'key': 'constraints', 'type': 'JobConstraints'}, + 'pool_info': {'key': 'poolInfo', 'type': 'PoolInformation'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + 'on_all_tasks_complete': {'key': 'onAllTasksComplete', 'type': 'OnAllTasksComplete'}, + } + + def __init__(self, *, pool_info, priority: int=None, constraints=None, metadata=None, on_all_tasks_complete=None, **kwargs) -> None: + super(JobUpdateParameter, self).__init__(**kwargs) + self.priority = priority + self.constraints = constraints + self.pool_info = pool_info + self.metadata = metadata + self.on_all_tasks_complete = on_all_tasks_complete + + +class LinuxUserConfiguration(Model): + """Properties used to create a user Account on a Linux Compute Node. + + :param uid: The user ID of the user Account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the uid. + :type uid: int + :param gid: The group ID for the user Account. The uid and gid properties + must be specified together or not at all. If not specified the underlying + operating system picks the gid. + :type gid: int + :param ssh_private_key: The SSH private key for the user Account. The + private key must not be password protected. The private key is used to + automatically configure asymmetric-key based authentication for SSH + between Compute Nodes in a Linux Pool when the Pool's + enableInterNodeCommunication property is true (it is ignored if + enableInterNodeCommunication is false). It does this by placing the key + pair into the user's .ssh directory. If not specified, password-less SSH + is not configured between Compute Nodes (no modification of the user's + .ssh directory is done). + :type ssh_private_key: str + """ + + _attribute_map = { + 'uid': {'key': 'uid', 'type': 'int'}, + 'gid': {'key': 'gid', 'type': 'int'}, + 'ssh_private_key': {'key': 'sshPrivateKey', 'type': 'str'}, + } + + def __init__(self, *, uid: int=None, gid: int=None, ssh_private_key: str=None, **kwargs) -> None: + super(LinuxUserConfiguration, self).__init__(**kwargs) + self.uid = uid + self.gid = gid + self.ssh_private_key = ssh_private_key + + +class MetadataItem(Model): + """A name-value pair associated with a Batch service resource. + + The Batch service does not assign any meaning to this metadata; it is + solely for the use of user code. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the metadata item. + :type name: str + :param value: Required. The value of the metadata item. + :type value: str + """ + + _validation = { + 'name': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, name: str, value: str, **kwargs) -> None: + super(MetadataItem, self).__init__(**kwargs) + self.name = name + self.value = value + + +class MultiInstanceSettings(Model): + """Settings which specify how to run a multi-instance Task. + + Multi-instance Tasks are commonly used to support MPI Tasks. In the MPI + case, if any of the subtasks fail (for example due to exiting with a + non-zero exit code) the entire multi-instance Task fails. The + multi-instance Task is then terminated and retried, up to its retry limit. + + All required parameters must be populated in order to send to Azure. + + :param number_of_instances: The number of Compute Nodes required by the + Task. If omitted, the default is 1. + :type number_of_instances: int + :param coordination_command_line: Required. The command line to run on all + the Compute Nodes to enable them to coordinate when the primary runs the + main Task command. A typical coordination command line launches a + background service and verifies that the service is ready to process + inter-node messages. + :type coordination_command_line: str + :param common_resource_files: A list of files that the Batch service will + download before running the coordination command line. The difference + between common resource files and Task resource files is that common + resource files are downloaded for all subtasks including the primary, + whereas Task resource files are downloaded only for the primary. Also note + that these resource files are not downloaded to the Task working + directory, but instead are downloaded to the Task root directory (one + directory above the working directory). There is a maximum size for the + list of resource files. When the max size is exceeded, the request will + fail and the response error code will be RequestEntityTooLarge. If this + occurs, the collection of ResourceFiles must be reduced in size. This can + be achieved using .zip files, Application Packages, or Docker Containers. + :type common_resource_files: list[~azure.batch.models.ResourceFile] + """ + + _validation = { + 'coordination_command_line': {'required': True}, + } + + _attribute_map = { + 'number_of_instances': {'key': 'numberOfInstances', 'type': 'int'}, + 'coordination_command_line': {'key': 'coordinationCommandLine', 'type': 'str'}, + 'common_resource_files': {'key': 'commonResourceFiles', 'type': '[ResourceFile]'}, + } + + def __init__(self, *, coordination_command_line: str, number_of_instances: int=None, common_resource_files=None, **kwargs) -> None: + super(MultiInstanceSettings, self).__init__(**kwargs) + self.number_of_instances = number_of_instances + self.coordination_command_line = coordination_command_line + self.common_resource_files = common_resource_files + + +class NameValuePair(Model): + """Represents a name-value pair. + + :param name: The name in the name-value pair. + :type name: str + :param value: The value in the name-value pair. + :type value: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, value: str=None, **kwargs) -> None: + super(NameValuePair, self).__init__(**kwargs) + self.name = name + self.value = value + + +class NetworkConfiguration(Model): + """The network configuration for a Pool. + + :param subnet_id: The ARM resource identifier of the virtual network + subnet which the Compute Nodes of the Pool will join. This is of the form + /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. + The virtual network must be in the same region and subscription as the + Azure Batch Account. The specified subnet should have enough free IP + addresses to accommodate the number of Compute Nodes in the Pool. If the + subnet doesn't have enough free IP addresses, the Pool will partially + allocate Nodes, and a resize error will occur. The 'MicrosoftAzureBatch' + service principal must have the 'Classic Virtual Machine Contributor' + Role-Based Access Control (RBAC) role for the specified VNet. The + specified subnet must allow communication from the Azure Batch service to + be able to schedule Tasks on the Nodes. This can be verified by checking + if the specified VNet has any associated Network Security Groups (NSG). If + communication to the Nodes in the specified subnet is denied by an NSG, + then the Batch service will set the state of the Compute Nodes to + unusable. For Pools created with virtualMachineConfiguration only ARM + virtual networks ('Microsoft.Network/virtualNetworks') are supported, but + for Pools created with cloudServiceConfiguration both ARM and classic + virtual networks are supported. If the specified VNet has any associated + Network Security Groups (NSG), then a few reserved system ports must be + enabled for inbound communication. For Pools created with a virtual + machine configuration, enable ports 29876 and 29877, as well as port 22 + for Linux and port 3389 for Windows. For Pools created with a cloud + service configuration, enable ports 10100, 20100, and 30100. Also enable + outbound connections to Azure Storage on port 443. For more details see: + https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + :type subnet_id: str + :param dynamic_vnet_assignment_scope: The scope of dynamic vnet + assignment. Possible values include: 'none', 'job' + :type dynamic_vnet_assignment_scope: str or + ~azure.batch.models.DynamicVNetAssignmentScope + :param endpoint_configuration: The configuration for endpoints on Compute + Nodes in the Batch Pool. Pool endpoint configuration is only supported on + Pools with the virtualMachineConfiguration property. + :type endpoint_configuration: + ~azure.batch.models.PoolEndpointConfiguration + """ + + _attribute_map = { + 'subnet_id': {'key': 'subnetId', 'type': 'str'}, + 'dynamic_vnet_assignment_scope': {'key': 'dynamicVNetAssignmentScope', 'type': 'DynamicVNetAssignmentScope'}, + 'endpoint_configuration': {'key': 'endpointConfiguration', 'type': 'PoolEndpointConfiguration'}, + } + + def __init__(self, *, subnet_id: str=None, dynamic_vnet_assignment_scope=None, endpoint_configuration=None, **kwargs) -> None: + super(NetworkConfiguration, self).__init__(**kwargs) + self.subnet_id = subnet_id + self.dynamic_vnet_assignment_scope = dynamic_vnet_assignment_scope + self.endpoint_configuration = endpoint_configuration + + +class NetworkSecurityGroupRule(Model): + """A network security group rule to apply to an inbound endpoint. + + All required parameters must be populated in order to send to Azure. + + :param priority: Required. The priority for this rule. Priorities within a + Pool must be unique and are evaluated in order of priority. The lower the + number the higher the priority. For example, rules could be specified with + order numbers of 150, 250, and 350. The rule with the order number of 150 + takes precedence over the rule that has an order of 250. Allowed + priorities are 150 to 3500. If any reserved or duplicate values are + provided the request fails with HTTP status code 400. + :type priority: int + :param access: Required. The action that should be taken for a specified + IP address, subnet range or tag. Possible values include: 'allow', 'deny' + :type access: str or ~azure.batch.models.NetworkSecurityGroupRuleAccess + :param source_address_prefix: Required. The source address prefix or tag + to match for the rule. Valid values are a single IP address (i.e. + 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all + addresses). If any other values are provided the request fails with HTTP + status code 400. + :type source_address_prefix: str + :param source_port_ranges: The source port ranges to match for the rule. + Valid values are '*' (for all ports 0 - 65535), a specific port (i.e. 22), + or a port range (i.e. 100-200). The ports must be in the range of 0 to + 65535. Each entry in this collection must not overlap any other entry + (either a range or an individual port). If any other values are provided + the request fails with HTTP status code 400. The default value is '*'. + :type source_port_ranges: list[str] + """ + + _validation = { + 'priority': {'required': True}, + 'access': {'required': True}, + 'source_address_prefix': {'required': True}, + } + + _attribute_map = { + 'priority': {'key': 'priority', 'type': 'int'}, + 'access': {'key': 'access', 'type': 'NetworkSecurityGroupRuleAccess'}, + 'source_address_prefix': {'key': 'sourceAddressPrefix', 'type': 'str'}, + 'source_port_ranges': {'key': 'sourcePortRanges', 'type': '[str]'}, + } + + def __init__(self, *, priority: int, access, source_address_prefix: str, source_port_ranges=None, **kwargs) -> None: + super(NetworkSecurityGroupRule, self).__init__(**kwargs) + self.priority = priority + self.access = access + self.source_address_prefix = source_address_prefix + self.source_port_ranges = source_port_ranges + + +class NodeAgentInformation(Model): + """Information about the Compute Node agent. + + The Batch Compute Node agent is a program that runs on each Compute Node in + the Pool and provides Batch capability on the Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of the Batch Compute Node agent + running on the Compute Node. This version number can be checked against + the Compute Node agent release notes located at + https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md. + :type version: str + :param last_update_time: Required. The time when the Compute Node agent + was updated on the Compute Node. This is the most recent time that the + Compute Node agent was updated to a new version. + :type last_update_time: datetime + """ + + _validation = { + 'version': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'version', 'type': 'str'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + } + + def __init__(self, *, version: str, last_update_time, **kwargs) -> None: + super(NodeAgentInformation, self).__init__(**kwargs) + self.version = version + self.last_update_time = last_update_time + + +class NodeCounts(Model): + """The number of Compute Nodes in each Compute Node state. + + All required parameters must be populated in order to send to Azure. + + :param creating: Required. The number of Compute Nodes in the creating + state. + :type creating: int + :param idle: Required. The number of Compute Nodes in the idle state. + :type idle: int + :param offline: Required. The number of Compute Nodes in the offline + state. + :type offline: int + :param preempted: Required. The number of Compute Nodes in the preempted + state. + :type preempted: int + :param rebooting: Required. The count of Compute Nodes in the rebooting + state. + :type rebooting: int + :param reimaging: Required. The number of Compute Nodes in the reimaging + state. + :type reimaging: int + :param running: Required. The number of Compute Nodes in the running + state. + :type running: int + :param starting: Required. The number of Compute Nodes in the starting + state. + :type starting: int + :param start_task_failed: Required. The number of Compute Nodes in the + startTaskFailed state. + :type start_task_failed: int + :param leaving_pool: Required. The number of Compute Nodes in the + leavingPool state. + :type leaving_pool: int + :param unknown: Required. The number of Compute Nodes in the unknown + state. + :type unknown: int + :param unusable: Required. The number of Compute Nodes in the unusable + state. + :type unusable: int + :param waiting_for_start_task: Required. The number of Compute Nodes in + the waitingForStartTask state. + :type waiting_for_start_task: int + :param total: Required. The total number of Compute Nodes. + :type total: int + """ + + _validation = { + 'creating': {'required': True}, + 'idle': {'required': True}, + 'offline': {'required': True}, + 'preempted': {'required': True}, + 'rebooting': {'required': True}, + 'reimaging': {'required': True}, + 'running': {'required': True}, + 'starting': {'required': True}, + 'start_task_failed': {'required': True}, + 'leaving_pool': {'required': True}, + 'unknown': {'required': True}, + 'unusable': {'required': True}, + 'waiting_for_start_task': {'required': True}, + 'total': {'required': True}, + } + + _attribute_map = { + 'creating': {'key': 'creating', 'type': 'int'}, + 'idle': {'key': 'idle', 'type': 'int'}, + 'offline': {'key': 'offline', 'type': 'int'}, + 'preempted': {'key': 'preempted', 'type': 'int'}, + 'rebooting': {'key': 'rebooting', 'type': 'int'}, + 'reimaging': {'key': 'reimaging', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'starting': {'key': 'starting', 'type': 'int'}, + 'start_task_failed': {'key': 'startTaskFailed', 'type': 'int'}, + 'leaving_pool': {'key': 'leavingPool', 'type': 'int'}, + 'unknown': {'key': 'unknown', 'type': 'int'}, + 'unusable': {'key': 'unusable', 'type': 'int'}, + 'waiting_for_start_task': {'key': 'waitingForStartTask', 'type': 'int'}, + 'total': {'key': 'total', 'type': 'int'}, + } + + def __init__(self, *, creating: int, idle: int, offline: int, preempted: int, rebooting: int, reimaging: int, running: int, starting: int, start_task_failed: int, leaving_pool: int, unknown: int, unusable: int, waiting_for_start_task: int, total: int, **kwargs) -> None: + super(NodeCounts, self).__init__(**kwargs) + self.creating = creating + self.idle = idle + self.offline = offline + self.preempted = preempted + self.rebooting = rebooting + self.reimaging = reimaging + self.running = running + self.starting = starting + self.start_task_failed = start_task_failed + self.leaving_pool = leaving_pool + self.unknown = unknown + self.unusable = unusable + self.waiting_for_start_task = waiting_for_start_task + self.total = total + + +class NodeDisableSchedulingParameter(Model): + """Options for disabling scheduling on a Compute Node. + + :param node_disable_scheduling_option: What to do with currently running + Tasks when disabling Task scheduling on the Compute Node. The default + value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion' + :type node_disable_scheduling_option: str or + ~azure.batch.models.DisableComputeNodeSchedulingOption + """ + + _attribute_map = { + 'node_disable_scheduling_option': {'key': 'nodeDisableSchedulingOption', 'type': 'DisableComputeNodeSchedulingOption'}, + } + + def __init__(self, *, node_disable_scheduling_option=None, **kwargs) -> None: + super(NodeDisableSchedulingParameter, self).__init__(**kwargs) + self.node_disable_scheduling_option = node_disable_scheduling_option + + +class NodeFile(Model): + """Information about a file or directory on a Compute Node. + + :param name: The file path. + :type name: str + :param url: The URL of the file. + :type url: str + :param is_directory: Whether the object represents a directory. + :type is_directory: bool + :param properties: The file properties. + :type properties: ~azure.batch.models.FileProperties + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + 'is_directory': {'key': 'isDirectory', 'type': 'bool'}, + 'properties': {'key': 'properties', 'type': 'FileProperties'}, + } + + def __init__(self, *, name: str=None, url: str=None, is_directory: bool=None, properties=None, **kwargs) -> None: + super(NodeFile, self).__init__(**kwargs) + self.name = name + self.url = url + self.is_directory = is_directory + self.properties = properties + + +class NodeRebootParameter(Model): + """Options for rebooting a Compute Node. + + :param node_reboot_option: When to reboot the Compute Node and what to do + with currently running Tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reboot_option: str or + ~azure.batch.models.ComputeNodeRebootOption + """ + + _attribute_map = { + 'node_reboot_option': {'key': 'nodeRebootOption', 'type': 'ComputeNodeRebootOption'}, + } + + def __init__(self, *, node_reboot_option=None, **kwargs) -> None: + super(NodeRebootParameter, self).__init__(**kwargs) + self.node_reboot_option = node_reboot_option + + +class NodeReimageParameter(Model): + """Options for reimaging a Compute Node. + + :param node_reimage_option: When to reimage the Compute Node and what to + do with currently running Tasks. The default value is requeue. Possible + values include: 'requeue', 'terminate', 'taskCompletion', 'retainedData' + :type node_reimage_option: str or + ~azure.batch.models.ComputeNodeReimageOption + """ + + _attribute_map = { + 'node_reimage_option': {'key': 'nodeReimageOption', 'type': 'ComputeNodeReimageOption'}, + } + + def __init__(self, *, node_reimage_option=None, **kwargs) -> None: + super(NodeReimageParameter, self).__init__(**kwargs) + self.node_reimage_option = node_reimage_option + + +class NodeRemoveParameter(Model): + """Options for removing Compute Nodes from a Pool. + + All required parameters must be populated in order to send to Azure. + + :param node_list: Required. A list containing the IDs of the Compute Nodes + to be removed from the specified Pool. + :type node_list: list[str] + :param resize_timeout: The timeout for removal of Compute Nodes to the + Pool. The default value is 15 minutes. The minimum value is 5 minutes. If + you specify a value less than 5 minutes, the Batch service returns an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a Compute Node + and its running task(s) after it has been selected for deallocation. The + default value is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _validation = { + 'node_list': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'node_list': {'key': 'nodeList', 'type': '[str]'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, *, node_list, resize_timeout=None, node_deallocation_option=None, **kwargs) -> None: + super(NodeRemoveParameter, self).__init__(**kwargs) + self.node_list = node_list + self.resize_timeout = resize_timeout + self.node_deallocation_option = node_deallocation_option + + +class NodeUpdateUserParameter(Model): + """The set of changes to be made to a user Account on a Compute Node. + + :param password: The password of the Account. The password is required for + Windows Compute Nodes (those created with 'cloudServiceConfiguration', or + created with 'virtualMachineConfiguration' using a Windows Image + reference). For Linux Compute Nodes, the password can optionally be + specified along with the sshPublicKey property. If omitted, any existing + password is removed. + :type password: str + :param expiry_time: The time at which the Account should expire. If + omitted, the default is 1 day from the current time. For Linux Compute + Nodes, the expiryTime has a precision up to a day. + :type expiry_time: datetime + :param ssh_public_key: The SSH public key that can be used for remote + login to the Compute Node. The public key should be compatible with + OpenSSH encoding and should be base 64 encoded. This property can be + specified only for Linux Compute Nodes. If this is specified for a Windows + Compute Node, then the Batch service rejects the request; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + If omitted, any existing SSH public key is removed. + :type ssh_public_key: str + """ + + _attribute_map = { + 'password': {'key': 'password', 'type': 'str'}, + 'expiry_time': {'key': 'expiryTime', 'type': 'iso-8601'}, + 'ssh_public_key': {'key': 'sshPublicKey', 'type': 'str'}, + } + + def __init__(self, *, password: str=None, expiry_time=None, ssh_public_key: str=None, **kwargs) -> None: + super(NodeUpdateUserParameter, self).__init__(**kwargs) + self.password = password + self.expiry_time = expiry_time + self.ssh_public_key = ssh_public_key + + +class OutputFile(Model): + """A specification for uploading files from an Azure Batch Compute Node to + another location after the Batch service has finished executing the Task + process. + + All required parameters must be populated in order to send to Azure. + + :param file_pattern: Required. A pattern indicating which file(s) to + upload. Both relative and absolute paths are supported. Relative paths are + relative to the Task working directory. The following wildcards are + supported: * matches 0 or more characters (for example pattern abc* would + match abc or abcdef), ** matches any directory, ? matches any single + character, [abc] matches one character in the brackets, and [a-c] matches + one character in the range. Brackets can include a negation to match any + character not specified (for example [!abc] matches any character but a, + b, or c). If a file name starts with "." it is ignored by default but may + be matched by specifying it explicitly (for example *.gif will not match + .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file + that does not start in '.' and ends with .txt in the Task working + directory or any subdirectory. If the filename contains a wildcard + character it can be escaped using brackets (for example abc[*] would match + a file named abc*). Note that both \\ and / are treated as directory + separators on Windows, but only / is on Linux. Environment variables + (%var% on Windows or $var on Linux) are expanded prior to the pattern + being applied. + :type file_pattern: str + :param destination: Required. The destination for the output file(s). + :type destination: ~azure.batch.models.OutputFileDestination + :param upload_options: Required. Additional options for the upload + operation, including under what conditions to perform the upload. + :type upload_options: ~azure.batch.models.OutputFileUploadOptions + """ + + _validation = { + 'file_pattern': {'required': True}, + 'destination': {'required': True}, + 'upload_options': {'required': True}, + } + + _attribute_map = { + 'file_pattern': {'key': 'filePattern', 'type': 'str'}, + 'destination': {'key': 'destination', 'type': 'OutputFileDestination'}, + 'upload_options': {'key': 'uploadOptions', 'type': 'OutputFileUploadOptions'}, + } + + def __init__(self, *, file_pattern: str, destination, upload_options, **kwargs) -> None: + super(OutputFile, self).__init__(**kwargs) + self.file_pattern = file_pattern + self.destination = destination + self.upload_options = upload_options + + +class OutputFileBlobContainerDestination(Model): + """Specifies a file upload destination within an Azure blob storage container. + + All required parameters must be populated in order to send to Azure. + + :param path: The destination blob or virtual directory within the Azure + Storage container. If filePattern refers to a specific file (i.e. contains + no wildcards), then path is the name of the blob to which to upload that + file. If filePattern contains one or more wildcards (and therefore may + match multiple files), then path is the name of the blob virtual directory + (which is prepended to each blob name) to which to upload the file(s). If + omitted, file(s) are uploaded to the root of the container with a blob + name matching their file name. + :type path: str + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the file(s). The URL must include a Shared + Access Signature (SAS) granting write permissions to the container. + :type container_url: str + """ + + _validation = { + 'container_url': {'required': True}, + } + + _attribute_map = { + 'path': {'key': 'path', 'type': 'str'}, + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + } + + def __init__(self, *, container_url: str, path: str=None, **kwargs) -> None: + super(OutputFileBlobContainerDestination, self).__init__(**kwargs) + self.path = path + self.container_url = container_url + + +class OutputFileDestination(Model): + """The destination to which a file should be uploaded. + + :param container: A location in Azure blob storage to which files are + uploaded. + :type container: ~azure.batch.models.OutputFileBlobContainerDestination + """ + + _attribute_map = { + 'container': {'key': 'container', 'type': 'OutputFileBlobContainerDestination'}, + } + + def __init__(self, *, container=None, **kwargs) -> None: + super(OutputFileDestination, self).__init__(**kwargs) + self.container = container + + +class OutputFileUploadOptions(Model): + """Details about an output file upload operation, including under what + conditions to perform the upload. + + All required parameters must be populated in order to send to Azure. + + :param upload_condition: Required. The conditions under which the Task + output file or set of files should be uploaded. The default is + taskcompletion. Possible values include: 'taskSuccess', 'taskFailure', + 'taskCompletion' + :type upload_condition: str or + ~azure.batch.models.OutputFileUploadCondition + """ + + _validation = { + 'upload_condition': {'required': True}, + } + + _attribute_map = { + 'upload_condition': {'key': 'uploadCondition', 'type': 'OutputFileUploadCondition'}, + } + + def __init__(self, *, upload_condition, **kwargs) -> None: + super(OutputFileUploadOptions, self).__init__(**kwargs) + self.upload_condition = upload_condition + + +class PoolAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolAddParameter(Model): + """A Pool in the Azure Batch service to add. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Pool within the + Account. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two Pool IDs within an Account that differ only by case). + :type id: str + :param display_name: The display name for the Pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of virtual machines in the Pool. All + virtual machines in a Pool are the same size. For information about + available sizes of virtual machines for Cloud Services Pools (pools + created with cloudServiceConfiguration), see Sizes for Cloud Services + (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and + A2V2. For information about available VM sizes for Pools using Images from + the Virtual Machines Marketplace (pools created with + virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + or Sizes for Virtual Machines (Windows) + (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + Batch supports all Azure VM sizes except STANDARD_A0 and those with + premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the Pool. This property and virtualMachineConfiguration are mutually + exclusive and one of the properties must be specified. This property + cannot be specified if the Batch Account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the Pool. This property and cloudServiceConfiguration are mutually + exclusive and one of the properties must be specified. + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param resize_timeout: The timeout for allocation of Compute Nodes to the + Pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service returns an error; if you are calling the REST API + directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the Pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + property is required and the Pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: A formula for the desired number of Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the Pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. For more information about specifying this formula, see + 'Automatically scale Compute Nodes in an Azure Batch Pool' + (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the Pool permits direct + communication between Compute Nodes. Enabling inter-node communication + limits the maximum size of the Pool due to deployment restrictions on the + Compute Nodes of the Pool. This may result in the Pool not reaching its + desired size. The default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the Pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A Task specified to run on each Compute Node as it + joins the Pool. The Task runs when the Compute Node is added to the Pool + or when the Compute Node is restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: The list of Certificates to be installed on + each Compute Node in the Pool. For Windows Nodes, the Batch service + installs the Certificates to the specified Certificate store and location. + For Linux Compute Nodes, the Certificates are stored in a directory inside + the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of Packages to be + installed on each Compute Node in the Pool. Changes to Package references + affect all new Nodes joining the Pool, but do not affect Compute Nodes + that are already in the Pool until they are rebooted or reimaged. There is + a maximum of 10 Package references on any given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each Compute Node in the Pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + Pool creation will fail. + :type application_licenses: list[str] + :param max_tasks_per_node: The maximum number of Tasks that can run + concurrently on a single Compute Node in the Pool. The default value is 1. + The maximum value is the smaller of 4 times the number of cores of the + vmSize of the Pool or 256. + :type max_tasks_per_node: int + :param task_scheduling_policy: How Tasks are distributed across Compute + Nodes in a Pool. If not specified, the default is spread. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param user_accounts: The list of user Accounts to be created on each + Compute Node in the Pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'id': {'required': True}, + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, id: str, vm_size: str, display_name: str=None, cloud_service_configuration=None, virtual_machine_configuration=None, resize_timeout=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, certificate_references=None, application_package_references=None, application_licenses=None, max_tasks_per_node: int=None, task_scheduling_policy=None, user_accounts=None, metadata=None, **kwargs) -> None: + super(PoolAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.vm_size = vm_size + self.cloud_service_configuration = cloud_service_configuration + self.virtual_machine_configuration = virtual_machine_configuration + self.resize_timeout = resize_timeout + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.enable_auto_scale = enable_auto_scale + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + self.enable_inter_node_communication = enable_inter_node_communication + self.network_configuration = network_configuration + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.application_licenses = application_licenses + self.max_tasks_per_node = max_tasks_per_node + self.task_scheduling_policy = task_scheduling_policy + self.user_accounts = user_accounts + self.metadata = metadata + + +class PoolDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolDisableAutoScaleOptions(Model): + """Additional parameters for disable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolDisableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolEnableAutoScaleOptions(Model): + """Additional parameters for enable_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolEnableAutoScaleOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolEnableAutoScaleParameter(Model): + """Options for enabling automatic scaling on a Pool. + + :param auto_scale_formula: The formula for the desired number of Compute + Nodes in the Pool. The formula is checked for validity before it is + applied to the Pool. If the formula is not valid, the Batch service + rejects the request with detailed error information. For more information + about specifying this formula, see Automatically scale Compute Nodes in an + Azure Batch Pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). If you specify a new interval, + then the existing autoscale evaluation schedule will be stopped and a new + autoscale evaluation schedule will be started, with its starting time + being the time when this request was issued. + :type auto_scale_evaluation_interval: timedelta + """ + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + } + + def __init__(self, *, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, **kwargs) -> None: + super(PoolEnableAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + + +class PoolEndpointConfiguration(Model): + """The endpoint configuration for a Pool. + + All required parameters must be populated in order to send to Azure. + + :param inbound_nat_pools: Required. A list of inbound NAT Pools that can + be used to address specific ports on an individual Compute Node + externally. The maximum number of inbound NAT Pools per Batch Pool is 5. + If the maximum number of inbound NAT Pools is exceeded the request fails + with HTTP status code 400. + :type inbound_nat_pools: list[~azure.batch.models.InboundNATPool] + """ + + _validation = { + 'inbound_nat_pools': {'required': True}, + } + + _attribute_map = { + 'inbound_nat_pools': {'key': 'inboundNATPools', 'type': '[InboundNATPool]'}, + } + + def __init__(self, *, inbound_nat_pools, **kwargs) -> None: + super(PoolEndpointConfiguration, self).__init__(**kwargs) + self.inbound_nat_pools = inbound_nat_pools + + +class PoolEvaluateAutoScaleOptions(Model): + """Additional parameters for evaluate_auto_scale operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolEvaluateAutoScaleOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolEvaluateAutoScaleParameter(Model): + """Options for evaluating an automatic scaling formula on a Pool. + + All required parameters must be populated in order to send to Azure. + + :param auto_scale_formula: Required. The formula for the desired number of + Compute Nodes in the Pool. The formula is validated and its results + calculated, but it is not applied to the Pool. To apply the formula to the + Pool, 'Enable automatic scaling on a Pool'. For more information about + specifying this formula, see Automatically scale Compute Nodes in an Azure + Batch Pool + (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). + :type auto_scale_formula: str + """ + + _validation = { + 'auto_scale_formula': {'required': True}, + } + + _attribute_map = { + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + } + + def __init__(self, *, auto_scale_formula: str, **kwargs) -> None: + super(PoolEvaluateAutoScaleParameter, self).__init__(**kwargs) + self.auto_scale_formula = auto_scale_formula + + +class PoolExistsOptions(Model): + """Additional parameters for exists operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolExistsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolGetAllLifetimeStatisticsOptions(Model): + """Additional parameters for get_all_lifetime_statistics operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolGetAllLifetimeStatisticsOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolInformation(Model): + """Specifies how a Job should be assigned to a Pool. + + :param pool_id: The ID of an existing Pool. All the Tasks of the Job will + run on the specified Pool. You must ensure that the Pool referenced by + this property exists. If the Pool does not exist at the time the Batch + service tries to schedule a Job, no Tasks for the Job will run until you + create a Pool with that id. Note that the Batch service will not reject + the Job request; it will simply not run Tasks until the Pool exists. You + must specify either the Pool ID or the auto Pool specification, but not + both. + :type pool_id: str + :param auto_pool_specification: Characteristics for a temporary 'auto + pool'. The Batch service will create this auto Pool when the Job is + submitted. If auto Pool creation fails, the Batch service moves the Job to + a completed state, and the Pool creation error is set in the Job's + scheduling error property. The Batch service manages the lifetime (both + creation and, unless keepAlive is specified, deletion) of the auto Pool. + Any user actions that affect the lifetime of the auto Pool while the Job + is active will result in unexpected behavior. You must specify either the + Pool ID or the auto Pool specification, but not both. + :type auto_pool_specification: ~azure.batch.models.AutoPoolSpecification + """ + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'auto_pool_specification': {'key': 'autoPoolSpecification', 'type': 'AutoPoolSpecification'}, + } + + def __init__(self, *, pool_id: str=None, auto_pool_specification=None, **kwargs) -> None: + super(PoolInformation, self).__init__(**kwargs) + self.pool_id = pool_id + self.auto_pool_specification = auto_pool_specification + + +class PoolListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Pools can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolListUsageMetricsOptions(Model): + """Additional parameters for list_usage_metrics operation. + + :param start_time: The earliest time from which to include metrics. This + must be at least two and a half hours before the current time. If not + specified this defaults to the start time of the last aggregation interval + currently available. + :type start_time: datetime + :param end_time: The latest time from which to include metrics. This must + be at least two hours before the current time. If not specified this + defaults to the end time of the last aggregation interval currently + available. + :type end_time: datetime + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. + :type filter: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 results will be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'start_time': {'key': '', 'type': 'iso-8601'}, + 'end_time': {'key': '', 'type': 'iso-8601'}, + 'filter': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, start_time=None, end_time=None, filter: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolListUsageMetricsOptions, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.filter = filter + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolNodeCounts(Model): + """The number of Compute Nodes in each state for a Pool. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the Pool. + :type pool_id: str + :param dedicated: The number of dedicated Compute Nodes in each state. + :type dedicated: ~azure.batch.models.NodeCounts + :param low_priority: The number of low priority Compute Nodes in each + state. + :type low_priority: ~azure.batch.models.NodeCounts + """ + + _validation = { + 'pool_id': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'dedicated': {'key': 'dedicated', 'type': 'NodeCounts'}, + 'low_priority': {'key': 'lowPriority', 'type': 'NodeCounts'}, + } + + def __init__(self, *, pool_id: str, dedicated=None, low_priority=None, **kwargs) -> None: + super(PoolNodeCounts, self).__init__(**kwargs) + self.pool_id = pool_id + self.dedicated = dedicated + self.low_priority = low_priority + + +class PoolPatchOptions(Model): + """Additional parameters for patch operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolPatchOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolPatchParameter(Model): + """The set of changes to be made to a Pool. + + :param start_task: A Task to run on each Compute Node as it joins the + Pool. The Task runs when the Compute Node is added to the Pool or when the + Compute Node is restarted. If this element is present, it overwrites any + existing start Task. If omitted, any existing start Task is left + unchanged. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of Certificates to be installed on + each Compute Node in the Pool. If this element is present, it replaces any + existing Certificate references configured on the Pool. If omitted, any + existing Certificate references are left unchanged. For Windows Nodes, the + Batch service installs the Certificates to the specified Certificate store + and location. For Linux Compute Nodes, the Certificates are stored in a + directory inside the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: A list of Packages to be installed + on each Compute Node in the Pool. Changes to Package references affect all + new Nodes joining the Pool, but do not affect Compute Nodes that are + already in the Pool until they are rebooted or reimaged. If this element + is present, it replaces any existing Package references. If you specify an + empty collection, then all Package references are removed from the Pool. + If omitted, any existing Package references are left unchanged. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. If this element is present, it replaces any existing metadata + configured on the Pool. If you specify an empty collection, any metadata + is removed from the Pool. If omitted, any existing metadata is left + unchanged. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, start_task=None, certificate_references=None, application_package_references=None, metadata=None, **kwargs) -> None: + super(PoolPatchParameter, self).__init__(**kwargs) + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.metadata = metadata + + +class PoolRemoveNodesOptions(Model): + """Additional parameters for remove_nodes operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolRemoveNodesOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolResizeOptions(Model): + """Additional parameters for resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolResizeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolResizeParameter(Model): + """Options for changing the size of a Pool. + + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. + :type target_low_priority_nodes: int + :param resize_timeout: The timeout for allocation of Nodes to the Pool or + removal of Compute Nodes from the Pool. The default value is 15 minutes. + The minimum value is 5 minutes. If you specify a value less than 5 + minutes, the Batch service returns an error; if you are calling the REST + API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param node_deallocation_option: Determines what to do with a Compute Node + and its running task(s) if the Pool size is decreasing. The default value + is requeue. Possible values include: 'requeue', 'terminate', + 'taskCompletion', 'retainedData' + :type node_deallocation_option: str or + ~azure.batch.models.ComputeNodeDeallocationOption + """ + + _attribute_map = { + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'node_deallocation_option': {'key': 'nodeDeallocationOption', 'type': 'ComputeNodeDeallocationOption'}, + } + + def __init__(self, *, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, resize_timeout=None, node_deallocation_option=None, **kwargs) -> None: + super(PoolResizeParameter, self).__init__(**kwargs) + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.resize_timeout = resize_timeout + self.node_deallocation_option = node_deallocation_option + + +class PoolSpecification(Model): + """Specification for creating a new Pool. + + All required parameters must be populated in order to send to Azure. + + :param display_name: The display name for the Pool. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param vm_size: Required. The size of the virtual machines in the Pool. + All virtual machines in a Pool are the same size. For information about + available sizes of virtual machines in Pools, see Choose a VM size for + Compute Nodes in an Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param cloud_service_configuration: The cloud service configuration for + the Pool. This property must be specified if the Pool needs to be created + with Azure PaaS VMs. This property and virtualMachineConfiguration are + mutually exclusive and one of the properties must be specified. If neither + is specified then the Batch service returns an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). This + property cannot be specified if the Batch Account was created with its + poolAllocationMode property set to 'UserSubscription'. + :type cloud_service_configuration: + ~azure.batch.models.CloudServiceConfiguration + :param virtual_machine_configuration: The virtual machine configuration + for the Pool. This property must be specified if the Pool needs to be + created with Azure IaaS VMs. This property and cloudServiceConfiguration + are mutually exclusive and one of the properties must be specified. If + neither is specified then the Batch service returns an error; if you are + calling the REST API directly, the HTTP status code is 400 (Bad Request). + :type virtual_machine_configuration: + ~azure.batch.models.VirtualMachineConfiguration + :param max_tasks_per_node: The maximum number of Tasks that can run + concurrently on a single Compute Node in the Pool. The default value is 1. + The maximum value is the smaller of 4 times the number of cores of the + vmSize of the Pool or 256. + :type max_tasks_per_node: int + :param task_scheduling_policy: How Tasks are distributed across Compute + Compute Nodes in a Pool. If not specified, the default is spread. + :type task_scheduling_policy: ~azure.batch.models.TaskSchedulingPolicy + :param resize_timeout: The timeout for allocation of Compute Nodes to the + Pool. This timeout applies only to manual scaling; it has no effect when + enableAutoScale is set to true. The default value is 15 minutes. The + minimum value is 5 minutes. If you specify a value less than 5 minutes, + the Batch service rejects the request with an error; if you are calling + the REST API directly, the HTTP status code is 400 (Bad Request). + :type resize_timeout: timedelta + :param target_dedicated_nodes: The desired number of dedicated Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to true. If enableAutoScale is set to false, then you must set + either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_dedicated_nodes: int + :param target_low_priority_nodes: The desired number of low-priority + Compute Nodes in the Pool. This property must not be specified if + enableAutoScale is set to true. If enableAutoScale is set to false, then + you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. + :type target_low_priority_nodes: int + :param enable_auto_scale: Whether the Pool size should automatically + adjust over time. If false, at least one of targetDedicateNodes and + targetLowPriorityNodes must be specified. If true, the autoScaleFormula + element is required. The Pool automatically resizes according to the + formula. The default value is false. + :type enable_auto_scale: bool + :param auto_scale_formula: The formula for the desired number of Compute + Nodes in the Pool. This property must not be specified if enableAutoScale + is set to false. It is required if enableAutoScale is set to true. The + formula is checked for validity before the Pool is created. If the formula + is not valid, the Batch service rejects the request with detailed error + information. + :type auto_scale_formula: str + :param auto_scale_evaluation_interval: The time interval at which to + automatically adjust the Pool size according to the autoscale formula. The + default value is 15 minutes. The minimum and maximum value are 5 minutes + and 168 hours respectively. If you specify a value less than 5 minutes or + greater than 168 hours, the Batch service rejects the request with an + invalid property value error; if you are calling the REST API directly, + the HTTP status code is 400 (Bad Request). + :type auto_scale_evaluation_interval: timedelta + :param enable_inter_node_communication: Whether the Pool permits direct + communication between Compute Nodes. Enabling inter-node communication + limits the maximum size of the Pool due to deployment restrictions on the + Compute Nodes of the Pool. This may result in the Pool not reaching its + desired size. The default value is false. + :type enable_inter_node_communication: bool + :param network_configuration: The network configuration for the Pool. + :type network_configuration: ~azure.batch.models.NetworkConfiguration + :param start_task: A Task to run on each Compute Node as it joins the + Pool. The Task runs when the Compute Node is added to the Pool or when the + Compute Node is restarted. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: A list of Certificates to be installed on + each Compute Node in the Pool. For Windows Nodes, the Batch service + installs the Certificates to the specified Certificate store and location. + For Linux Compute Nodes, the Certificates are stored in a directory inside + the Task working directory and an environment variable + AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this + location. For Certificates with visibility of 'remoteUser', a 'certs' + directory is created in the user's home directory (e.g., + /home/{user-name}/certs) and Certificates are placed in that directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: The list of Packages to be + installed on each Compute Node in the Pool. Changes to Package references + affect all new Nodes joining the Pool, but do not affect Compute Nodes + that are already in the Pool until they are rebooted or reimaged. There is + a maximum of 10 Package references on any given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param application_licenses: The list of application licenses the Batch + service will make available on each Compute Node in the Pool. The list of + application licenses must be a subset of available Batch service + application licenses. If a license is requested which is not supported, + Pool creation will fail. The permitted licenses available on the Pool are + 'maya', 'vray', '3dsmax', 'arnold'. An additional charge applies for each + application license added to the Pool. + :type application_licenses: list[str] + :param user_accounts: The list of user Accounts to be created on each + Compute Node in the Pool. + :type user_accounts: list[~azure.batch.models.UserAccount] + :param metadata: A list of name-value pairs associated with the Pool as + metadata. The Batch service does not assign any meaning to metadata; it is + solely for the use of user code. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'vm_size': {'required': True}, + } + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'cloud_service_configuration': {'key': 'cloudServiceConfiguration', 'type': 'CloudServiceConfiguration'}, + 'virtual_machine_configuration': {'key': 'virtualMachineConfiguration', 'type': 'VirtualMachineConfiguration'}, + 'max_tasks_per_node': {'key': 'maxTasksPerNode', 'type': 'int'}, + 'task_scheduling_policy': {'key': 'taskSchedulingPolicy', 'type': 'TaskSchedulingPolicy'}, + 'resize_timeout': {'key': 'resizeTimeout', 'type': 'duration'}, + 'target_dedicated_nodes': {'key': 'targetDedicatedNodes', 'type': 'int'}, + 'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}, + 'enable_auto_scale': {'key': 'enableAutoScale', 'type': 'bool'}, + 'auto_scale_formula': {'key': 'autoScaleFormula', 'type': 'str'}, + 'auto_scale_evaluation_interval': {'key': 'autoScaleEvaluationInterval', 'type': 'duration'}, + 'enable_inter_node_communication': {'key': 'enableInterNodeCommunication', 'type': 'bool'}, + 'network_configuration': {'key': 'networkConfiguration', 'type': 'NetworkConfiguration'}, + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'application_licenses': {'key': 'applicationLicenses', 'type': '[str]'}, + 'user_accounts': {'key': 'userAccounts', 'type': '[UserAccount]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, vm_size: str, display_name: str=None, cloud_service_configuration=None, virtual_machine_configuration=None, max_tasks_per_node: int=None, task_scheduling_policy=None, resize_timeout=None, target_dedicated_nodes: int=None, target_low_priority_nodes: int=None, enable_auto_scale: bool=None, auto_scale_formula: str=None, auto_scale_evaluation_interval=None, enable_inter_node_communication: bool=None, network_configuration=None, start_task=None, certificate_references=None, application_package_references=None, application_licenses=None, user_accounts=None, metadata=None, **kwargs) -> None: + super(PoolSpecification, self).__init__(**kwargs) + self.display_name = display_name + self.vm_size = vm_size + self.cloud_service_configuration = cloud_service_configuration + self.virtual_machine_configuration = virtual_machine_configuration + self.max_tasks_per_node = max_tasks_per_node + self.task_scheduling_policy = task_scheduling_policy + self.resize_timeout = resize_timeout + self.target_dedicated_nodes = target_dedicated_nodes + self.target_low_priority_nodes = target_low_priority_nodes + self.enable_auto_scale = enable_auto_scale + self.auto_scale_formula = auto_scale_formula + self.auto_scale_evaluation_interval = auto_scale_evaluation_interval + self.enable_inter_node_communication = enable_inter_node_communication + self.network_configuration = network_configuration + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.application_licenses = application_licenses + self.user_accounts = user_accounts + self.metadata = metadata + + +class PoolStatistics(Model): + """Contains utilization and resource usage statistics for the lifetime of a + Pool. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL for the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param usage_stats: Statistics related to Pool usage, such as the amount + of core-time used. + :type usage_stats: ~azure.batch.models.UsageStatistics + :param resource_stats: Statistics related to resource consumption by + Compute Nodes in the Pool. + :type resource_stats: ~azure.batch.models.ResourceStatistics + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'usage_stats': {'key': 'usageStats', 'type': 'UsageStatistics'}, + 'resource_stats': {'key': 'resourceStats', 'type': 'ResourceStatistics'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, usage_stats=None, resource_stats=None, **kwargs) -> None: + super(PoolStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.usage_stats = usage_stats + self.resource_stats = resource_stats + + +class PoolStopResizeOptions(Model): + """Additional parameters for stop_resize operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(PoolStopResizeOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class PoolUpdatePropertiesOptions(Model): + """Additional parameters for update_properties operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(PoolUpdatePropertiesOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class PoolUpdatePropertiesParameter(Model): + """The set of changes to be made to a Pool. + + All required parameters must be populated in order to send to Azure. + + :param start_task: A Task to run on each Compute Node as it joins the + Pool. The Task runs when the Compute Node is added to the Pool or when the + Compute Node is restarted. If this element is present, it overwrites any + existing start Task. If omitted, any existing start Task is removed from + the Pool. + :type start_task: ~azure.batch.models.StartTask + :param certificate_references: Required. A list of Certificates to be + installed on each Compute Node in the Pool. This list replaces any + existing Certificate references configured on the Pool. If you specify an + empty collection, any existing Certificate references are removed from the + Pool. For Windows Nodes, the Batch service installs the Certificates to + the specified Certificate store and location. For Linux Compute Nodes, the + Certificates are stored in a directory inside the Task working directory + and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the + Task to query for this location. For Certificates with visibility of + 'remoteUser', a 'certs' directory is created in the user's home directory + (e.g., /home/{user-name}/certs) and Certificates are placed in that + directory. + :type certificate_references: + list[~azure.batch.models.CertificateReference] + :param application_package_references: Required. The list of Application + Packages to be installed on each Compute Compute Node in the Pool. The + list replaces any existing Application Package references on the Pool. + Changes to Application Package references affect all new Compute Nodes + joining the Pool, but do not affect Compute Compute Nodes that are already + in the Pool until they are rebooted or reimaged. There is a maximum of 10 + Application Package references on any given Pool. If omitted, or if you + specify an empty collection, any existing Application Packages references + are removed from the Pool. A maximum of 10 references may be specified on + a given Pool. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param metadata: Required. A list of name-value pairs associated with the + Pool as metadata. This list replaces any existing metadata configured on + the Pool. If omitted, or if you specify an empty collection, any existing + metadata is removed from the Pool. + :type metadata: list[~azure.batch.models.MetadataItem] + """ + + _validation = { + 'certificate_references': {'required': True}, + 'application_package_references': {'required': True}, + 'metadata': {'required': True}, + } + + _attribute_map = { + 'start_task': {'key': 'startTask', 'type': 'StartTask'}, + 'certificate_references': {'key': 'certificateReferences', 'type': '[CertificateReference]'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'metadata': {'key': 'metadata', 'type': '[MetadataItem]'}, + } + + def __init__(self, *, certificate_references, application_package_references, metadata, start_task=None, **kwargs) -> None: + super(PoolUpdatePropertiesParameter, self).__init__(**kwargs) + self.start_task = start_task + self.certificate_references = certificate_references + self.application_package_references = application_package_references + self.metadata = metadata + + +class PoolUsageMetrics(Model): + """Usage metrics for a Pool across an aggregation interval. + + All required parameters must be populated in order to send to Azure. + + :param pool_id: Required. The ID of the Pool whose metrics are aggregated + in this entry. + :type pool_id: str + :param start_time: Required. The start time of the aggregation interval + covered by this entry. + :type start_time: datetime + :param end_time: Required. The end time of the aggregation interval + covered by this entry. + :type end_time: datetime + :param vm_size: Required. The size of virtual machines in the Pool. All + VMs in a Pool are the same size. For information about available sizes of + virtual machines in Pools, see Choose a VM size for Compute Nodes in an + Azure Batch Pool + (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). + :type vm_size: str + :param total_core_hours: Required. The total core hours used in the Pool + during this aggregation interval. + :type total_core_hours: float + """ + + _validation = { + 'pool_id': {'required': True}, + 'start_time': {'required': True}, + 'end_time': {'required': True}, + 'vm_size': {'required': True}, + 'total_core_hours': {'required': True}, + } + + _attribute_map = { + 'pool_id': {'key': 'poolId', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'total_core_hours': {'key': 'totalCoreHours', 'type': 'float'}, + } + + def __init__(self, *, pool_id: str, start_time, end_time, vm_size: str, total_core_hours: float, **kwargs) -> None: + super(PoolUsageMetrics, self).__init__(**kwargs) + self.pool_id = pool_id + self.start_time = start_time + self.end_time = end_time + self.vm_size = vm_size + self.total_core_hours = total_core_hours + + +class RecentJob(Model): + """Information about the most recent Job to run under the Job Schedule. + + :param id: The ID of the Job. + :type id: str + :param url: The URL of the Job. + :type url: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'url': {'key': 'url', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, url: str=None, **kwargs) -> None: + super(RecentJob, self).__init__(**kwargs) + self.id = id + self.url = url + + +class ResizeError(Model): + """An error that occurred when resizing a Pool. + + :param code: An identifier for the Pool resize error. Codes are invariant + and are intended to be consumed programmatically. + :type code: str + :param message: A message describing the Pool resize error, intended to be + suitable for display in a user interface. + :type message: str + :param values: A list of additional error details related to the Pool + resize error. + :type values: list[~azure.batch.models.NameValuePair] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, code: str=None, message: str=None, values=None, **kwargs) -> None: + super(ResizeError, self).__init__(**kwargs) + self.code = code + self.message = message + self.values = values + + +class ResourceFile(Model): + """A single file or multiple files to be downloaded to a Compute Node. + + :param auto_storage_container_name: The storage container name in the auto + storage Account. The autoStorageContainerName, storageContainerUrl and + httpUrl properties are mutually exclusive and one of them must be + specified. + :type auto_storage_container_name: str + :param storage_container_url: The URL of the blob container within Azure + Blob Storage. The autoStorageContainerName, storageContainerUrl and + httpUrl properties are mutually exclusive and one of them must be + specified. This URL must be readable and listable using anonymous access; + that is, the Batch service does not present any credentials when + downloading blobs from the container. There are two ways to get such a URL + for a container in Azure storage: include a Shared Access Signature (SAS) + granting read and list permissions on the container, or set the ACL for + the container to allow public access. + :type storage_container_url: str + :param http_url: The URL of the file to download. The + autoStorageContainerName, storageContainerUrl and httpUrl properties are + mutually exclusive and one of them must be specified. If the URL points to + Azure Blob Storage, it must be readable using anonymous access; that is, + the Batch service does not present any credentials when downloading the + blob. There are two ways to get such a URL for a blob in Azure storage: + include a Shared Access Signature (SAS) granting read permissions on the + blob, or set the ACL for the blob or its container to allow public access. + :type http_url: str + :param blob_prefix: The blob prefix to use when downloading blobs from an + Azure Storage container. Only the blobs whose names begin with the + specified prefix will be downloaded. The property is valid only when + autoStorageContainerName or storageContainerUrl is used. This prefix can + be a partial filename or a subdirectory. If a prefix is not specified, all + the files in the container will be downloaded. + :type blob_prefix: str + :param file_path: The location on the Compute Node to which to download + the file(s), relative to the Task's working directory. If the httpUrl + property is specified, the filePath is required and describes the path + which the file will be downloaded to, including the filename. Otherwise, + if the autoStorageContainerName or storageContainerUrl property is + specified, filePath is optional and is the directory to download the files + to. In the case where filePath is used as a directory, any directory + structure already associated with the input data will be retained in full + and appended to the specified filePath directory. The specified relative + path cannot break out of the Task's working directory (for example by + using '..'). + :type file_path: str + :param file_mode: The file permission mode attribute in octal format. This + property applies only to files being downloaded to Linux Compute Nodes. It + will be ignored if it is specified for a resourceFile which will be + downloaded to a Windows Compute Node. If this property is not specified + for a Linux Compute Node, then a default value of 0770 is applied to the + file. + :type file_mode: str + """ + + _attribute_map = { + 'auto_storage_container_name': {'key': 'autoStorageContainerName', 'type': 'str'}, + 'storage_container_url': {'key': 'storageContainerUrl', 'type': 'str'}, + 'http_url': {'key': 'httpUrl', 'type': 'str'}, + 'blob_prefix': {'key': 'blobPrefix', 'type': 'str'}, + 'file_path': {'key': 'filePath', 'type': 'str'}, + 'file_mode': {'key': 'fileMode', 'type': 'str'}, + } + + def __init__(self, *, auto_storage_container_name: str=None, storage_container_url: str=None, http_url: str=None, blob_prefix: str=None, file_path: str=None, file_mode: str=None, **kwargs) -> None: + super(ResourceFile, self).__init__(**kwargs) + self.auto_storage_container_name = auto_storage_container_name + self.storage_container_url = storage_container_url + self.http_url = http_url + self.blob_prefix = blob_prefix + self.file_path = file_path + self.file_mode = file_mode + + +class ResourceStatistics(Model): + """Statistics related to resource consumption by Compute Nodes in a Pool. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param avg_cpu_percentage: Required. The average CPU usage across all + Compute Nodes in the Pool (percentage per node). + :type avg_cpu_percentage: float + :param avg_memory_gi_b: Required. The average memory usage in GiB across + all Compute Nodes in the Pool. + :type avg_memory_gi_b: float + :param peak_memory_gi_b: Required. The peak memory usage in GiB across all + Compute Nodes in the Pool. + :type peak_memory_gi_b: float + :param avg_disk_gi_b: Required. The average used disk space in GiB across + all Compute Nodes in the Pool. + :type avg_disk_gi_b: float + :param peak_disk_gi_b: Required. The peak used disk space in GiB across + all Compute Nodes in the Pool. + :type peak_disk_gi_b: float + :param disk_read_iops: Required. The total number of disk read operations + across all Compute Nodes in the Pool. + :type disk_read_iops: long + :param disk_write_iops: Required. The total number of disk write + operations across all Compute Nodes in the Pool. + :type disk_write_iops: long + :param disk_read_gi_b: Required. The total amount of data in GiB of disk + reads across all Compute Nodes in the Pool. + :type disk_read_gi_b: float + :param disk_write_gi_b: Required. The total amount of data in GiB of disk + writes across all Compute Nodes in the Pool. + :type disk_write_gi_b: float + :param network_read_gi_b: Required. The total amount of data in GiB of + network reads across all Compute Nodes in the Pool. + :type network_read_gi_b: float + :param network_write_gi_b: Required. The total amount of data in GiB of + network writes across all Compute Nodes in the Pool. + :type network_write_gi_b: float + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'avg_cpu_percentage': {'required': True}, + 'avg_memory_gi_b': {'required': True}, + 'peak_memory_gi_b': {'required': True}, + 'avg_disk_gi_b': {'required': True}, + 'peak_disk_gi_b': {'required': True}, + 'disk_read_iops': {'required': True}, + 'disk_write_iops': {'required': True}, + 'disk_read_gi_b': {'required': True}, + 'disk_write_gi_b': {'required': True}, + 'network_read_gi_b': {'required': True}, + 'network_write_gi_b': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'avg_cpu_percentage': {'key': 'avgCPUPercentage', 'type': 'float'}, + 'avg_memory_gi_b': {'key': 'avgMemoryGiB', 'type': 'float'}, + 'peak_memory_gi_b': {'key': 'peakMemoryGiB', 'type': 'float'}, + 'avg_disk_gi_b': {'key': 'avgDiskGiB', 'type': 'float'}, + 'peak_disk_gi_b': {'key': 'peakDiskGiB', 'type': 'float'}, + 'disk_read_iops': {'key': 'diskReadIOps', 'type': 'long'}, + 'disk_write_iops': {'key': 'diskWriteIOps', 'type': 'long'}, + 'disk_read_gi_b': {'key': 'diskReadGiB', 'type': 'float'}, + 'disk_write_gi_b': {'key': 'diskWriteGiB', 'type': 'float'}, + 'network_read_gi_b': {'key': 'networkReadGiB', 'type': 'float'}, + 'network_write_gi_b': {'key': 'networkWriteGiB', 'type': 'float'}, + } + + def __init__(self, *, start_time, last_update_time, avg_cpu_percentage: float, avg_memory_gi_b: float, peak_memory_gi_b: float, avg_disk_gi_b: float, peak_disk_gi_b: float, disk_read_iops: int, disk_write_iops: int, disk_read_gi_b: float, disk_write_gi_b: float, network_read_gi_b: float, network_write_gi_b: float, **kwargs) -> None: + super(ResourceStatistics, self).__init__(**kwargs) + self.start_time = start_time + self.last_update_time = last_update_time + self.avg_cpu_percentage = avg_cpu_percentage + self.avg_memory_gi_b = avg_memory_gi_b + self.peak_memory_gi_b = peak_memory_gi_b + self.avg_disk_gi_b = avg_disk_gi_b + self.peak_disk_gi_b = peak_disk_gi_b + self.disk_read_iops = disk_read_iops + self.disk_write_iops = disk_write_iops + self.disk_read_gi_b = disk_read_gi_b + self.disk_write_gi_b = disk_write_gi_b + self.network_read_gi_b = network_read_gi_b + self.network_write_gi_b = network_write_gi_b + + +class Schedule(Model): + """The schedule according to which Jobs will be created. + + :param do_not_run_until: The earliest time at which any Job may be created + under this Job Schedule. If you do not specify a doNotRunUntil time, the + schedule becomes ready to create Jobs immediately. + :type do_not_run_until: datetime + :param do_not_run_after: A time after which no Job will be created under + this Job Schedule. The schedule will move to the completed state as soon + as this deadline is past and there is no active Job under this Job + Schedule. If you do not specify a doNotRunAfter time, and you are creating + a recurring Job Schedule, the Job Schedule will remain active until you + explicitly terminate it. + :type do_not_run_after: datetime + :param start_window: The time interval, starting from the time at which + the schedule indicates a Job should be created, within which a Job must be + created. If a Job is not created within the startWindow interval, then the + 'opportunity' is lost; no Job will be created until the next recurrence of + the schedule. If the schedule is recurring, and the startWindow is longer + than the recurrence interval, then this is equivalent to an infinite + startWindow, because the Job that is 'due' in one recurrenceInterval is + not carried forward into the next recurrence interval. The default is + infinite. The minimum value is 1 minute. If you specify a lower value, the + Batch service rejects the schedule with an error; if you are calling the + REST API directly, the HTTP status code is 400 (Bad Request). + :type start_window: timedelta + :param recurrence_interval: The time interval between the start times of + two successive Jobs under the Job Schedule. A Job Schedule can have at + most one active Job under it at any given time. Because a Job Schedule can + have at most one active Job under it at any given time, if it is time to + create a new Job under a Job Schedule, but the previous Job is still + running, the Batch service will not create the new Job until the previous + Job finishes. If the previous Job does not finish within the startWindow + period of the new recurrenceInterval, then no new Job will be scheduled + for that interval. For recurring Jobs, you should normally specify a + jobManagerTask in the jobSpecification. If you do not use jobManagerTask, + you will need an external process to monitor when Jobs are created, add + Tasks to the Jobs and terminate the Jobs ready for the next recurrence. + The default is that the schedule does not recur: one Job is created, + within the startWindow after the doNotRunUntil time, and the schedule is + complete as soon as that Job finishes. The minimum value is 1 minute. If + you specify a lower value, the Batch service rejects the schedule with an + error; if you are calling the REST API directly, the HTTP status code is + 400 (Bad Request). + :type recurrence_interval: timedelta + """ + + _attribute_map = { + 'do_not_run_until': {'key': 'doNotRunUntil', 'type': 'iso-8601'}, + 'do_not_run_after': {'key': 'doNotRunAfter', 'type': 'iso-8601'}, + 'start_window': {'key': 'startWindow', 'type': 'duration'}, + 'recurrence_interval': {'key': 'recurrenceInterval', 'type': 'duration'}, + } + + def __init__(self, *, do_not_run_until=None, do_not_run_after=None, start_window=None, recurrence_interval=None, **kwargs) -> None: + super(Schedule, self).__init__(**kwargs) + self.do_not_run_until = do_not_run_until + self.do_not_run_after = do_not_run_after + self.start_window = start_window + self.recurrence_interval = recurrence_interval + + +class StartTask(Model): + """A Task which is run when a Node joins a Pool in the Azure Batch service, or + when the Compute Node is rebooted or reimaged. + + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host + failure. Retries due to recovery operations are independent of and are not + counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, + an internal retry due to a recovery operation may occur. Because of this, + all Tasks should be idempotent. This means Tasks need to tolerate being + interrupted and restarted without causing any corruption or duplicate data. + The best practice for long running Tasks is to use some form of + checkpointing. In some cases the start Task may be re-run even though the + Compute Node was not rebooted. Special care should be taken to avoid start + Tasks which create breakaway process or install/launch services from the + start Task working directory, as this will block Batch from being able to + re-run the start Task. + + All required parameters must be populated in order to send to Azure. + + :param command_line: Required. The command line of the start Task. The + command line does not run under a shell, and therefore cannot take + advantage of shell features such as environment variable expansion. If you + want to take advantage of such features, you should invoke the shell in + the command line, for example using "cmd /c MyCommand" in Windows or + "/bin/sh -c MyCommand" in Linux. If the command line refers to file paths, + it should use a relative path (relative to the Task working directory), or + use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + start Task runs. When this is specified, all directories recursively below + the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the + node) are mapped into the container, all Task environment variables are + mapped into the container, and the Task command line is executed in the + container. Files produced in the container outside of + AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning + that Batch file APIs will not be able to access those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. There is a + maximum size for the list of resource files. When the max size is + exceeded, the request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. Files listed under this + element are located in the Task's working directory. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param environment_settings: A list of environment variable settings for + the start Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param user_identity: The user identity under which the start Task runs. + If omitted, the Task runs as a non-administrative user unique to the Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param max_task_retry_count: The maximum number of times the Task may be + retried. The Batch service retries a Task if its exit code is nonzero. + Note that this value specifically controls the number of retries. The + Batch service will try the Task once, and may then retry up to this limit. + For example, if the maximum retry count is 3, Batch tries the Task up to 4 + times (one initial try and 3 retries). If the maximum retry count is 0, + the Batch service does not retry the Task. If the maximum retry count is + -1, the Batch service retries the Task without limit. + :type max_task_retry_count: int + :param wait_for_success: Whether the Batch service should wait for the + start Task to complete successfully (that is, to exit with exit code 0) + before scheduling any Tasks on the Compute Node. If true and the start + Task fails on a Node, the Batch service retries the start Task up to its + maximum retry count (maxTaskRetryCount). If the Task has still not + completed successfully after all retries, then the Batch service marks the + Node unusable, and will not schedule Tasks to it. This condition can be + detected via the Compute Node state and failure info details. If false, + the Batch service will not wait for the start Task to complete. In this + case, other Tasks can start executing on the Compute Node while the start + Task is still running; and even if the start Task fails, new Tasks will + continue to be scheduled on the Compute Node. The default is false. + :type wait_for_success: bool + """ + + _validation = { + 'command_line': {'required': True}, + } + + _attribute_map = { + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + 'wait_for_success': {'key': 'waitForSuccess', 'type': 'bool'}, + } + + def __init__(self, *, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int=None, wait_for_success: bool=None, **kwargs) -> None: + super(StartTask, self).__init__(**kwargs) + self.command_line = command_line + self.container_settings = container_settings + self.resource_files = resource_files + self.environment_settings = environment_settings + self.user_identity = user_identity + self.max_task_retry_count = max_task_retry_count + self.wait_for_success = wait_for_success + + +class StartTaskInformation(Model): + """Information about a start Task running on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param state: Required. The state of the start Task on the Compute Node. + Possible values include: 'running', 'completed' + :type state: str or ~azure.batch.models.StartTaskState + :param start_time: Required. The time at which the start Task started + running. This value is reset every time the Task is restarted or retried + (that is, this is the most recent time at which the start Task started + running). + :type start_time: datetime + :param end_time: The time at which the start Task stopped running. This is + the end time of the most recent run of the start Task, if that run has + completed (even if that run failed and a retry is pending). This element + is not present if the start Task is currently running. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the start Task + command line. This property is set only if the start Task is in the + completed state. In general, the exit code for a process reflects the + specific convention implemented by the application developer for that + process. If you use the exit code value to make decisions in your code, be + sure that you know the exit code convention used by the application + process. However, if the Batch service terminates the start Task (due to + timeout, or user termination via the API) you may see an operating + system-defined exit code. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the Task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the Task could not be run) and + file upload errors are not retried. The Batch service will retry the Task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Task + started running. This element is present only if the Task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the Task has been restarted for reasons + other than retry; for example, if the Compute Node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'state': {'required': True}, + 'start_time': {'required': True}, + 'retry_count': {'required': True}, + } + + _attribute_map = { + 'state': {'key': 'state', 'type': 'StartTaskState'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, state, start_time, retry_count: int, end_time=None, exit_code: int=None, container_info=None, failure_info=None, last_retry_time=None, result=None, **kwargs) -> None: + super(StartTaskInformation, self).__init__(**kwargs) + self.state = state + self.start_time = start_time + self.end_time = end_time + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.retry_count = retry_count + self.last_retry_time = last_retry_time + self.result = result + + +class SubtaskInformation(Model): + """Information about an Azure Batch subtask. + + :param id: The ID of the subtask. + :type id: int + :param node_info: Information about the Compute Node on which the subtask + ran. + :type node_info: ~azure.batch.models.ComputeNodeInformation + :param start_time: The time at which the subtask started running. If the + subtask has been restarted or retried, this is the most recent time at + which the subtask started running. + :type start_time: datetime + :param end_time: The time at which the subtask completed. This property is + set only if the subtask is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the subtask + command line. This property is set only if the subtask is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the subtask (due to timeout, or + user termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param state: The current state of the subtask. Possible values include: + 'preparing', 'running', 'completed' + :type state: str or ~azure.batch.models.SubtaskState + :param state_transition_time: The time at which the subtask entered its + current state. + :type state_transition_time: datetime + :param previous_state: The previous state of the subtask. This property is + not set if the subtask is in its initial running state. Possible values + include: 'preparing', 'running', 'completed' + :type previous_state: str or ~azure.batch.models.SubtaskState + :param previous_state_transition_time: The time at which the subtask + entered its previous state. This property is not set if the subtask is in + its initial running state. + :type previous_state_transition_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'int'}, + 'node_info': {'key': 'nodeInfo', 'type': 'ComputeNodeInformation'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'state': {'key': 'state', 'type': 'SubtaskState'}, + 'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'}, + 'previous_state': {'key': 'previousState', 'type': 'SubtaskState'}, + 'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, id: int=None, node_info=None, start_time=None, end_time=None, exit_code: int=None, container_info=None, failure_info=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, result=None, **kwargs) -> None: + super(SubtaskInformation, self).__init__(**kwargs) + self.id = id + self.node_info = node_info + self.start_time = start_time + self.end_time = end_time + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.state = state + self.state_transition_time = state_transition_time + self.previous_state = previous_state + self.previous_state_transition_time = previous_state_transition_time + self.result = result + + +class TaskAddCollectionOptions(Model): + """Additional parameters for add_collection operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskAddCollectionOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class TaskAddCollectionParameter(Model): + """A collection of Azure Batch Tasks to add. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. The collection of Tasks to add. The maximum count + of Tasks is 100. The total serialized size of this collection must be less + than 1MB. If it is greater than 1MB (for example if each Task has 100's of + resource files or environment variables), the request will fail with code + 'RequestBodyTooLarge' and should be retried again with fewer Tasks. + :type value: list[~azure.batch.models.TaskAddParameter] + """ + + _validation = { + 'value': {'required': True, 'max_items': 100}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddParameter]'}, + } + + def __init__(self, *, value, **kwargs) -> None: + super(TaskAddCollectionParameter, self).__init__(**kwargs) + self.value = value + + +class TaskAddCollectionResult(Model): + """The result of adding a collection of Tasks to a Job. + + :param value: The results of the add Task collection operation. + :type value: list[~azure.batch.models.TaskAddResult] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TaskAddResult]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(TaskAddCollectionResult, self).__init__(**kwargs) + self.value = value + + +class TaskAddOptions(Model): + """Additional parameters for add operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskAddOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class TaskAddParameter(Model): + """An Azure Batch Task to add. + + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host + failure. Retries due to recovery operations are independent of and are not + counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, + an internal retry due to a recovery operation may occur. Because of this, + all Tasks should be idempotent. This means Tasks need to tolerate being + interrupted and restarted without causing any corruption or duplicate data. + The best practice for long running Tasks is to use some form of + checkpointing. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. A string that uniquely identifies the Task within the + Job. The ID can contain any combination of alphanumeric characters + including hyphens and underscores, and cannot contain more than 64 + characters. The ID is case-preserving and case-insensitive (that is, you + may not have two IDs within a Job that differ only by case). + :type id: str + :param display_name: A display name for the Task. The display name need + not be unique and can contain any Unicode characters up to a maximum + length of 1024. + :type display_name: str + :param command_line: Required. The command line of the Task. For + multi-instance Tasks, the command line is executed as the primary Task, + after the primary Task and all subtasks have finished executing the + coordination command line. The command line does not run under a shell, + and therefore cannot take advantage of shell features such as environment + variable expansion. If you want to take advantage of such features, you + should invoke the shell in the command line, for example using "cmd /c + MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. If the command + line refers to file paths, it should use a relative path (relative to the + Task working directory), or use the Batch provided environment variable + (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). + :type command_line: str + :param container_settings: The settings for the container under which the + Task runs. If the Pool that will run this Task has containerConfiguration + set, this must be set as well. If the Pool that will run this Task doesn't + have containerConfiguration set, this must not be set. When this is + specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR + (the root of Azure Batch directories on the node) are mapped into the + container, all Task environment variables are mapped into the container, + and the Task command line is executed in the container. Files produced in + the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to + the host disk, meaning that Batch file APIs will not be able to access + those files. + :type container_settings: ~azure.batch.models.TaskContainerSettings + :param exit_conditions: How the Batch service should respond when the Task + completes. + :type exit_conditions: ~azure.batch.models.ExitConditions + :param resource_files: A list of files that the Batch service will + download to the Compute Node before running the command line. For + multi-instance Tasks, the resource files will only be downloaded to the + Compute Node on which the primary Task is executed. There is a maximum + size for the list of resource files. When the max size is exceeded, the + request will fail and the response error code will be + RequestEntityTooLarge. If this occurs, the collection of ResourceFiles + must be reduced in size. This can be achieved using .zip files, + Application Packages, or Docker Containers. + :type resource_files: list[~azure.batch.models.ResourceFile] + :param output_files: A list of files that the Batch service will upload + from the Compute Node after running the command line. For multi-instance + Tasks, the files will only be uploaded from the Compute Node on which the + primary Task is executed. + :type output_files: list[~azure.batch.models.OutputFile] + :param environment_settings: A list of environment variable settings for + the Task. + :type environment_settings: list[~azure.batch.models.EnvironmentSetting] + :param affinity_info: A locality hint that can be used by the Batch + service to select a Compute Node on which to start the new Task. + :type affinity_info: ~azure.batch.models.AffinityInformation + :param constraints: The execution constraints that apply to this Task. If + you do not specify constraints, the maxTaskRetryCount is the + maxTaskRetryCount specified for the Job, the maxWallClockTime is infinite, + and the retentionTime is 7 days. + :type constraints: ~azure.batch.models.TaskConstraints + :param user_identity: The user identity under which the Task runs. If + omitted, the Task runs as a non-administrative user unique to the Task. + :type user_identity: ~azure.batch.models.UserIdentity + :param multi_instance_settings: An object that indicates that the Task is + a multi-instance Task, and contains information about how to run the + multi-instance Task. + :type multi_instance_settings: ~azure.batch.models.MultiInstanceSettings + :param depends_on: The Tasks that this Task depends on. This Task will not + be scheduled until all Tasks that it depends on have completed + successfully. If any of those Tasks fail and exhaust their retry counts, + this Task will never be scheduled. If the Job does not have + usesTaskDependencies set to true, and this element is present, the request + fails with error code TaskDependenciesNotSpecifiedOnJob. + :type depends_on: ~azure.batch.models.TaskDependencies + :param application_package_references: A list of Packages that the Batch + service will deploy to the Compute Node before running the command line. + Application packages are downloaded and deployed to a shared directory, + not the Task working directory. Therefore, if a referenced package is + already on the Node, and is up to date, then it is not re-downloaded; the + existing copy on the Compute Node is used. If a referenced Package cannot + be installed, for example because the package has been deleted or because + download failed, the Task fails. + :type application_package_references: + list[~azure.batch.models.ApplicationPackageReference] + :param authentication_token_settings: The settings for an authentication + token that the Task can use to perform Batch service operations. If this + property is set, the Batch service provides the Task with an + authentication token which can be used to authenticate Batch service + operations without requiring an Account access key. The token is provided + via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations + that the Task can carry out using the token depend on the settings. For + example, a Task can request Job permissions in order to add other Tasks to + the Job, or check the status of the Job or of other Tasks under the Job. + :type authentication_token_settings: + ~azure.batch.models.AuthenticationTokenSettings + """ + + _validation = { + 'id': {'required': True}, + 'command_line': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'command_line': {'key': 'commandLine', 'type': 'str'}, + 'container_settings': {'key': 'containerSettings', 'type': 'TaskContainerSettings'}, + 'exit_conditions': {'key': 'exitConditions', 'type': 'ExitConditions'}, + 'resource_files': {'key': 'resourceFiles', 'type': '[ResourceFile]'}, + 'output_files': {'key': 'outputFiles', 'type': '[OutputFile]'}, + 'environment_settings': {'key': 'environmentSettings', 'type': '[EnvironmentSetting]'}, + 'affinity_info': {'key': 'affinityInfo', 'type': 'AffinityInformation'}, + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + 'user_identity': {'key': 'userIdentity', 'type': 'UserIdentity'}, + 'multi_instance_settings': {'key': 'multiInstanceSettings', 'type': 'MultiInstanceSettings'}, + 'depends_on': {'key': 'dependsOn', 'type': 'TaskDependencies'}, + 'application_package_references': {'key': 'applicationPackageReferences', 'type': '[ApplicationPackageReference]'}, + 'authentication_token_settings': {'key': 'authenticationTokenSettings', 'type': 'AuthenticationTokenSettings'}, + } + + def __init__(self, *, id: str, command_line: str, display_name: str=None, container_settings=None, exit_conditions=None, resource_files=None, output_files=None, environment_settings=None, affinity_info=None, constraints=None, user_identity=None, multi_instance_settings=None, depends_on=None, application_package_references=None, authentication_token_settings=None, **kwargs) -> None: + super(TaskAddParameter, self).__init__(**kwargs) + self.id = id + self.display_name = display_name + self.command_line = command_line + self.container_settings = container_settings + self.exit_conditions = exit_conditions + self.resource_files = resource_files + self.output_files = output_files + self.environment_settings = environment_settings + self.affinity_info = affinity_info + self.constraints = constraints + self.user_identity = user_identity + self.multi_instance_settings = multi_instance_settings + self.depends_on = depends_on + self.application_package_references = application_package_references + self.authentication_token_settings = authentication_token_settings + + +class TaskAddResult(Model): + """Result for a single Task added as part of an add Task collection operation. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the add Task request. Possible + values include: 'success', 'clientError', 'serverError' + :type status: str or ~azure.batch.models.TaskAddStatus + :param task_id: Required. The ID of the Task for which this is the result. + :type task_id: str + :param e_tag: The ETag of the Task, if the Task was successfully added. + You can use this to detect whether the Task has changed between requests. + In particular, you can be pass the ETag with an Update Task request to + specify that your changes should take effect only if nobody else has + modified the Job in the meantime. + :type e_tag: str + :param last_modified: The last modified time of the Task. + :type last_modified: datetime + :param location: The URL of the Task, if the Task was successfully added. + :type location: str + :param error: The error encountered while attempting to add the Task. + :type error: ~azure.batch.models.BatchError + """ + + _validation = { + 'status': {'required': True}, + 'task_id': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'TaskAddStatus'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'last_modified': {'key': 'lastModified', 'type': 'iso-8601'}, + 'location': {'key': 'location', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'BatchError'}, + } + + def __init__(self, *, status, task_id: str, e_tag: str=None, last_modified=None, location: str=None, error=None, **kwargs) -> None: + super(TaskAddResult, self).__init__(**kwargs) + self.status = status + self.task_id = task_id + self.e_tag = e_tag + self.last_modified = last_modified + self.location = location + self.error = error + + +class TaskConstraints(Model): + """Execution constraints to apply to a Task. + + :param max_wall_clock_time: The maximum elapsed time that the Task may + run, measured from the time the Task starts. If the Task does not complete + within the time limit, the Batch service terminates it. If this is not + specified, there is no time limit on how long the Task may run. + :type max_wall_clock_time: timedelta + :param retention_time: The minimum time to retain the Task directory on + the Compute Node where it ran, from the time it completes execution. After + this time, the Batch service may delete the Task directory and all its + contents. The default is 7 days, i.e. the Task directory will be retained + for 7 days unless the Compute Node is removed or the Job is deleted. + :type retention_time: timedelta + :param max_task_retry_count: The maximum number of times the Task may be + retried. The Batch service retries a Task if its exit code is nonzero. + Note that this value specifically controls the number of retries for the + Task executable due to a nonzero exit code. The Batch service will try the + Task once, and may then retry up to this limit. For example, if the + maximum retry count is 3, Batch tries the Task up to 4 times (one initial + try and 3 retries). If the maximum retry count is 0, the Batch service + does not retry the Task after the first attempt. If the maximum retry + count is -1, the Batch service retries the Task without limit. + :type max_task_retry_count: int + """ + + _attribute_map = { + 'max_wall_clock_time': {'key': 'maxWallClockTime', 'type': 'duration'}, + 'retention_time': {'key': 'retentionTime', 'type': 'duration'}, + 'max_task_retry_count': {'key': 'maxTaskRetryCount', 'type': 'int'}, + } + + def __init__(self, *, max_wall_clock_time=None, retention_time=None, max_task_retry_count: int=None, **kwargs) -> None: + super(TaskConstraints, self).__init__(**kwargs) + self.max_wall_clock_time = max_wall_clock_time + self.retention_time = retention_time + self.max_task_retry_count = max_task_retry_count + + +class TaskContainerExecutionInformation(Model): + """Contains information about the container which a Task is executing. + + :param container_id: The ID of the container. + :type container_id: str + :param state: The state of the container. This is the state of the + container according to the Docker service. It is equivalent to the status + field returned by "docker inspect". + :type state: str + :param error: Detailed error information about the container. This is the + detailed error string from the Docker service, if available. It is + equivalent to the error field returned by "docker inspect". + :type error: str + """ + + _attribute_map = { + 'container_id': {'key': 'containerId', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'error': {'key': 'error', 'type': 'str'}, + } + + def __init__(self, *, container_id: str=None, state: str=None, error: str=None, **kwargs) -> None: + super(TaskContainerExecutionInformation, self).__init__(**kwargs) + self.container_id = container_id + self.state = state + self.error = error + + +class TaskContainerSettings(Model): + """The container settings for a Task. + + All required parameters must be populated in order to send to Azure. + + :param container_run_options: Additional options to the container create + command. These additional options are supplied as arguments to the "docker + create" command, in addition to those controlled by the Batch Service. + :type container_run_options: str + :param image_name: Required. The Image to use to create the container in + which the Task will run. This is the full Image reference, as would be + specified to "docker pull". If no tag is provided as part of the Image + name, the tag ":latest" is used as a default. + :type image_name: str + :param registry: The private registry which contains the container Image. + This setting can be omitted if was already provided at Pool creation. + :type registry: ~azure.batch.models.ContainerRegistry + :param working_directory: The location of the container Task working + directory. The default is 'taskWorkingDirectory'. Possible values include: + 'taskWorkingDirectory', 'containerImageDefault' + :type working_directory: str or + ~azure.batch.models.ContainerWorkingDirectory + """ + + _validation = { + 'image_name': {'required': True}, + } + + _attribute_map = { + 'container_run_options': {'key': 'containerRunOptions', 'type': 'str'}, + 'image_name': {'key': 'imageName', 'type': 'str'}, + 'registry': {'key': 'registry', 'type': 'ContainerRegistry'}, + 'working_directory': {'key': 'workingDirectory', 'type': 'ContainerWorkingDirectory'}, + } + + def __init__(self, *, image_name: str, container_run_options: str=None, registry=None, working_directory=None, **kwargs) -> None: + super(TaskContainerSettings, self).__init__(**kwargs) + self.container_run_options = container_run_options + self.image_name = image_name + self.registry = registry + self.working_directory = working_directory + + +class TaskCounts(Model): + """The Task counts for a Job. + + All required parameters must be populated in order to send to Azure. + + :param active: Required. The number of Tasks in the active state. + :type active: int + :param running: Required. The number of Tasks in the running or preparing + state. + :type running: int + :param completed: Required. The number of Tasks in the completed state. + :type completed: int + :param succeeded: Required. The number of Tasks which succeeded. A Task + succeeds if its result (found in the executionInfo property) is 'success'. + :type succeeded: int + :param failed: Required. The number of Tasks which failed. A Task fails if + its result (found in the executionInfo property) is 'failure'. + :type failed: int + """ + + _validation = { + 'active': {'required': True}, + 'running': {'required': True}, + 'completed': {'required': True}, + 'succeeded': {'required': True}, + 'failed': {'required': True}, + } + + _attribute_map = { + 'active': {'key': 'active', 'type': 'int'}, + 'running': {'key': 'running', 'type': 'int'}, + 'completed': {'key': 'completed', 'type': 'int'}, + 'succeeded': {'key': 'succeeded', 'type': 'int'}, + 'failed': {'key': 'failed', 'type': 'int'}, + } + + def __init__(self, *, active: int, running: int, completed: int, succeeded: int, failed: int, **kwargs) -> None: + super(TaskCounts, self).__init__(**kwargs) + self.active = active + self.running = running + self.completed = completed + self.succeeded = succeeded + self.failed = failed + + +class TaskDeleteOptions(Model): + """Additional parameters for delete operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskDeleteOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class TaskDependencies(Model): + """Specifies any dependencies of a Task. Any Task that is explicitly specified + or within a dependency range must complete before the dependant Task will + be scheduled. + + :param task_ids: The list of Task IDs that this Task depends on. All Tasks + in this list must complete successfully before the dependent Task can be + scheduled. The taskIds collection is limited to 64000 characters total + (i.e. the combined length of all Task IDs). If the taskIds collection + exceeds the maximum length, the Add Task request fails with error code + TaskDependencyListTooLong. In this case consider using Task ID ranges + instead. + :type task_ids: list[str] + :param task_id_ranges: The list of Task ID ranges that this Task depends + on. All Tasks in all ranges must complete successfully before the + dependent Task can be scheduled. + :type task_id_ranges: list[~azure.batch.models.TaskIdRange] + """ + + _attribute_map = { + 'task_ids': {'key': 'taskIds', 'type': '[str]'}, + 'task_id_ranges': {'key': 'taskIdRanges', 'type': '[TaskIdRange]'}, + } + + def __init__(self, *, task_ids=None, task_id_ranges=None, **kwargs) -> None: + super(TaskDependencies, self).__init__(**kwargs) + self.task_ids = task_ids + self.task_id_ranges = task_id_ranges + + +class TaskExecutionInformation(Model): + """Information about the execution of a Task. + + All required parameters must be populated in order to send to Azure. + + :param start_time: The time at which the Task started running. 'Running' + corresponds to the running state, so if the Task specifies resource files + or Packages, then the start time reflects the time at which the Task + started downloading or deploying these. If the Task has been restarted or + retried, this is the most recent time at which the Task started running. + This property is present only for Tasks that are in the running or + completed state. + :type start_time: datetime + :param end_time: The time at which the Task completed. This property is + set only if the Task is in the Completed state. + :type end_time: datetime + :param exit_code: The exit code of the program specified on the Task + command line. This property is set only if the Task is in the completed + state. In general, the exit code for a process reflects the specific + convention implemented by the application developer for that process. If + you use the exit code value to make decisions in your code, be sure that + you know the exit code convention used by the application process. + However, if the Batch service terminates the Task (due to timeout, or user + termination via the API) you may see an operating system-defined exit + code. + :type exit_code: int + :param container_info: Information about the container under which the + Task is executing. This property is set only if the Task runs in a + container context. + :type container_info: + ~azure.batch.models.TaskContainerExecutionInformation + :param failure_info: Information describing the Task failure, if any. This + property is set only if the Task is in the completed state and encountered + a failure. + :type failure_info: ~azure.batch.models.TaskFailureInformation + :param retry_count: Required. The number of times the Task has been + retried by the Batch service. Task application failures (non-zero exit + code) are retried, pre-processing errors (the Task could not be run) and + file upload errors are not retried. The Batch service will retry the Task + up to the limit specified by the constraints. + :type retry_count: int + :param last_retry_time: The most recent time at which a retry of the Task + started running. This element is present only if the Task was retried + (i.e. retryCount is nonzero). If present, this is typically the same as + startTime, but may be different if the Task has been restarted for reasons + other than retry; for example, if the Compute Node was rebooted during a + retry, then the startTime is updated but the lastRetryTime is not. + :type last_retry_time: datetime + :param requeue_count: Required. The number of times the Task has been + requeued by the Batch service as the result of a user request. When the + user removes Compute Nodes from a Pool (by resizing/shrinking the pool) or + when the Job is being disabled, the user can specify that running Tasks on + the Compute Nodes be requeued for execution. This count tracks how many + times the Task has been requeued for these reasons. + :type requeue_count: int + :param last_requeue_time: The most recent time at which the Task has been + requeued by the Batch service as the result of a user request. This + property is set only if the requeueCount is nonzero. + :type last_requeue_time: datetime + :param result: The result of the Task execution. If the value is 'failed', + then the details of the failure can be found in the failureInfo property. + Possible values include: 'success', 'failure' + :type result: str or ~azure.batch.models.TaskExecutionResult + """ + + _validation = { + 'retry_count': {'required': True}, + 'requeue_count': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + 'exit_code': {'key': 'exitCode', 'type': 'int'}, + 'container_info': {'key': 'containerInfo', 'type': 'TaskContainerExecutionInformation'}, + 'failure_info': {'key': 'failureInfo', 'type': 'TaskFailureInformation'}, + 'retry_count': {'key': 'retryCount', 'type': 'int'}, + 'last_retry_time': {'key': 'lastRetryTime', 'type': 'iso-8601'}, + 'requeue_count': {'key': 'requeueCount', 'type': 'int'}, + 'last_requeue_time': {'key': 'lastRequeueTime', 'type': 'iso-8601'}, + 'result': {'key': 'result', 'type': 'TaskExecutionResult'}, + } + + def __init__(self, *, retry_count: int, requeue_count: int, start_time=None, end_time=None, exit_code: int=None, container_info=None, failure_info=None, last_retry_time=None, last_requeue_time=None, result=None, **kwargs) -> None: + super(TaskExecutionInformation, self).__init__(**kwargs) + self.start_time = start_time + self.end_time = end_time + self.exit_code = exit_code + self.container_info = container_info + self.failure_info = failure_info + self.retry_count = retry_count + self.last_retry_time = last_retry_time + self.requeue_count = requeue_count + self.last_requeue_time = last_requeue_time + self.result = result + + +class TaskFailureInformation(Model): + """Information about a Task failure. + + All required parameters must be populated in order to send to Azure. + + :param category: Required. The category of the Task error. Possible values + include: 'userError', 'serverError' + :type category: str or ~azure.batch.models.ErrorCategory + :param code: An identifier for the Task error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the Task error, intended to be + suitable for display in a user interface. + :type message: str + :param details: A list of additional details related to the error. + :type details: list[~azure.batch.models.NameValuePair] + """ + + _validation = { + 'category': {'required': True}, + } + + _attribute_map = { + 'category': {'key': 'category', 'type': 'ErrorCategory'}, + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NameValuePair]'}, + } + + def __init__(self, *, category, code: str=None, message: str=None, details=None, **kwargs) -> None: + super(TaskFailureInformation, self).__init__(**kwargs) + self.category = category + self.code = code + self.message = message + self.details = details + + +class TaskGetOptions(Model): + """Additional parameters for get operation. + + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, expand: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskGetOptions, self).__init__(**kwargs) + self.select = select + self.expand = expand + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class TaskIdRange(Model): + """A range of Task IDs that a Task can depend on. All Tasks with IDs in the + range must complete successfully before the dependent Task can be + scheduled. + + The start and end of the range are inclusive. For example, if a range has + start 9 and end 12, then it represents Tasks '9', '10', '11' and '12'. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The first Task ID in the range. + :type start: int + :param end: Required. The last Task ID in the range. + :type end: int + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'start', 'type': 'int'}, + 'end': {'key': 'end', 'type': 'int'}, + } + + def __init__(self, *, start: int, end: int, **kwargs) -> None: + super(TaskIdRange, self).__init__(**kwargs) + self.start = start + self.end = end + + +class TaskInformation(Model): + """Information about a Task running on a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param task_url: The URL of the Task. + :type task_url: str + :param job_id: The ID of the Job to which the Task belongs. + :type job_id: str + :param task_id: The ID of the Task. + :type task_id: str + :param subtask_id: The ID of the subtask if the Task is a multi-instance + Task. + :type subtask_id: int + :param task_state: Required. The current state of the Task. Possible + values include: 'active', 'preparing', 'running', 'completed' + :type task_state: str or ~azure.batch.models.TaskState + :param execution_info: Information about the execution of the Task. + :type execution_info: ~azure.batch.models.TaskExecutionInformation + """ + + _validation = { + 'task_state': {'required': True}, + } + + _attribute_map = { + 'task_url': {'key': 'taskUrl', 'type': 'str'}, + 'job_id': {'key': 'jobId', 'type': 'str'}, + 'task_id': {'key': 'taskId', 'type': 'str'}, + 'subtask_id': {'key': 'subtaskId', 'type': 'int'}, + 'task_state': {'key': 'taskState', 'type': 'TaskState'}, + 'execution_info': {'key': 'executionInfo', 'type': 'TaskExecutionInformation'}, + } + + def __init__(self, *, task_state, task_url: str=None, job_id: str=None, task_id: str=None, subtask_id: int=None, execution_info=None, **kwargs) -> None: + super(TaskInformation, self).__init__(**kwargs) + self.task_url = task_url + self.job_id = job_id + self.task_id = task_id + self.subtask_id = subtask_id + self.task_state = task_state + self.execution_info = execution_info + + +class TaskListOptions(Model): + """Additional parameters for list operation. + + :param filter: An OData $filter clause. For more information on + constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. + :type filter: str + :param select: An OData $select clause. + :type select: str + :param expand: An OData $expand clause. + :type expand: str + :param max_results: The maximum number of items to return in the response. + A maximum of 1000 Tasks can be returned. Default value: 1000 . + :type max_results: int + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'filter': {'key': '', 'type': 'str'}, + 'select': {'key': '', 'type': 'str'}, + 'expand': {'key': '', 'type': 'str'}, + 'max_results': {'key': '', 'type': 'int'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, filter: str=None, select: str=None, expand: str=None, max_results: int=1000, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskListOptions, self).__init__(**kwargs) + self.filter = filter + self.select = select + self.expand = expand + self.max_results = max_results + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class TaskListSubtasksOptions(Model): + """Additional parameters for list_subtasks operation. + + :param select: An OData $select clause. + :type select: str + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + """ + + _attribute_map = { + 'select': {'key': '', 'type': 'str'}, + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, select: str=None, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, **kwargs) -> None: + super(TaskListSubtasksOptions, self).__init__(**kwargs) + self.select = select + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + + +class TaskReactivateOptions(Model): + """Additional parameters for reactivate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskReactivateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class TaskSchedulingPolicy(Model): + """Specifies how Tasks should be distributed across Compute Nodes. + + All required parameters must be populated in order to send to Azure. + + :param node_fill_type: Required. How Tasks are distributed across Compute + Compute Nodes in a Pool. If not specified, the default is spread. Possible + values include: 'spread', 'pack' + :type node_fill_type: str or ~azure.batch.models.ComputeNodeFillType + """ + + _validation = { + 'node_fill_type': {'required': True}, + } + + _attribute_map = { + 'node_fill_type': {'key': 'nodeFillType', 'type': 'ComputeNodeFillType'}, + } + + def __init__(self, *, node_fill_type, **kwargs) -> None: + super(TaskSchedulingPolicy, self).__init__(**kwargs) + self.node_fill_type = node_fill_type + + +class TaskStatistics(Model): + """Resource usage statistics for a Task. + + All required parameters must be populated in order to send to Azure. + + :param url: Required. The URL of the statistics. + :type url: str + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param user_cpu_time: Required. The total user mode CPU time (summed + across all cores and all Compute Nodes) consumed by the Task. + :type user_cpu_time: timedelta + :param kernel_cpu_time: Required. The total kernel mode CPU time (summed + across all cores and all Compute Nodes) consumed by the Task. + :type kernel_cpu_time: timedelta + :param wall_clock_time: Required. The total wall clock time of the Task. + The wall clock time is the elapsed time from when the Task started running + on a Compute Node to when it finished (or to the last time the statistics + were updated, if the Task had not finished by then). If the Task was + retried, this includes the wall clock time of all the Task retries. + :type wall_clock_time: timedelta + :param read_iops: Required. The total number of disk read operations made + by the Task. + :type read_iops: long + :param write_iops: Required. The total number of disk write operations + made by the Task. + :type write_iops: long + :param read_io_gi_b: Required. The total gibibytes read from disk by the + Task. + :type read_io_gi_b: float + :param write_io_gi_b: Required. The total gibibytes written to disk by the + Task. + :type write_io_gi_b: float + :param wait_time: Required. The total wait time of the Task. The wait time + for a Task is defined as the elapsed time between the creation of the Task + and the start of Task execution. (If the Task is retried due to failures, + the wait time is the time to the most recent Task execution.). + :type wait_time: timedelta + """ + + _validation = { + 'url': {'required': True}, + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'user_cpu_time': {'required': True}, + 'kernel_cpu_time': {'required': True}, + 'wall_clock_time': {'required': True}, + 'read_iops': {'required': True}, + 'write_iops': {'required': True}, + 'read_io_gi_b': {'required': True}, + 'write_io_gi_b': {'required': True}, + 'wait_time': {'required': True}, + } + + _attribute_map = { + 'url': {'key': 'url', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'user_cpu_time': {'key': 'userCPUTime', 'type': 'duration'}, + 'kernel_cpu_time': {'key': 'kernelCPUTime', 'type': 'duration'}, + 'wall_clock_time': {'key': 'wallClockTime', 'type': 'duration'}, + 'read_iops': {'key': 'readIOps', 'type': 'long'}, + 'write_iops': {'key': 'writeIOps', 'type': 'long'}, + 'read_io_gi_b': {'key': 'readIOGiB', 'type': 'float'}, + 'write_io_gi_b': {'key': 'writeIOGiB', 'type': 'float'}, + 'wait_time': {'key': 'waitTime', 'type': 'duration'}, + } + + def __init__(self, *, url: str, start_time, last_update_time, user_cpu_time, kernel_cpu_time, wall_clock_time, read_iops: int, write_iops: int, read_io_gi_b: float, write_io_gi_b: float, wait_time, **kwargs) -> None: + super(TaskStatistics, self).__init__(**kwargs) + self.url = url + self.start_time = start_time + self.last_update_time = last_update_time + self.user_cpu_time = user_cpu_time + self.kernel_cpu_time = kernel_cpu_time + self.wall_clock_time = wall_clock_time + self.read_iops = read_iops + self.write_iops = write_iops + self.read_io_gi_b = read_io_gi_b + self.write_io_gi_b = write_io_gi_b + self.wait_time = wait_time + + +class TaskTerminateOptions(Model): + """Additional parameters for terminate operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskTerminateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class TaskUpdateOptions(Model): + """Additional parameters for update operation. + + :param timeout: The maximum time that the server can spend processing the + request, in seconds. The default is 30 seconds. Default value: 30 . + :type timeout: int + :param client_request_id: The caller-generated request identity, in the + form of a GUID with no decoration such as curly braces, e.g. + 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + :type client_request_id: str + :param return_client_request_id: Whether the server should return the + client-request-id in the response. Default value: False . + :type return_client_request_id: bool + :param ocp_date: The time the request was issued. Client libraries + typically set this to the current system clock time; set it explicitly if + you are calling the REST API directly. + :type ocp_date: datetime + :param if_match: An ETag value associated with the version of the resource + known to the client. The operation will be performed only if the + resource's current ETag on the service exactly matches the value specified + by the client. + :type if_match: str + :param if_none_match: An ETag value associated with the version of the + resource known to the client. The operation will be performed only if the + resource's current ETag on the service does not match the value specified + by the client. + :type if_none_match: str + :param if_modified_since: A timestamp indicating the last modified time of + the resource known to the client. The operation will be performed only if + the resource on the service has been modified since the specified time. + :type if_modified_since: datetime + :param if_unmodified_since: A timestamp indicating the last modified time + of the resource known to the client. The operation will be performed only + if the resource on the service has not been modified since the specified + time. + :type if_unmodified_since: datetime + """ + + _attribute_map = { + 'timeout': {'key': '', 'type': 'int'}, + 'client_request_id': {'key': '', 'type': 'str'}, + 'return_client_request_id': {'key': '', 'type': 'bool'}, + 'ocp_date': {'key': '', 'type': 'rfc-1123'}, + 'if_match': {'key': '', 'type': 'str'}, + 'if_none_match': {'key': '', 'type': 'str'}, + 'if_modified_since': {'key': '', 'type': 'rfc-1123'}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123'}, + } + + def __init__(self, *, timeout: int=30, client_request_id: str=None, return_client_request_id: bool=False, ocp_date=None, if_match: str=None, if_none_match: str=None, if_modified_since=None, if_unmodified_since=None, **kwargs) -> None: + super(TaskUpdateOptions, self).__init__(**kwargs) + self.timeout = timeout + self.client_request_id = client_request_id + self.return_client_request_id = return_client_request_id + self.ocp_date = ocp_date + self.if_match = if_match + self.if_none_match = if_none_match + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + + +class TaskUpdateParameter(Model): + """The set of changes to be made to a Task. + + :param constraints: Constraints that apply to this Task. If omitted, the + Task is given the default constraints. For multi-instance Tasks, updating + the retention time applies only to the primary Task and not subtasks. + :type constraints: ~azure.batch.models.TaskConstraints + """ + + _attribute_map = { + 'constraints': {'key': 'constraints', 'type': 'TaskConstraints'}, + } + + def __init__(self, *, constraints=None, **kwargs) -> None: + super(TaskUpdateParameter, self).__init__(**kwargs) + self.constraints = constraints + + +class UploadBatchServiceLogsConfiguration(Model): + """The Azure Batch service log files upload configuration for a Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param container_url: Required. The URL of the container within Azure Blob + Storage to which to upload the Batch Service log file(s). The URL must + include a Shared Access Signature (SAS) granting write permissions to the + container. The SAS duration must allow enough time for the upload to + finish. The start time for SAS is optional and recommended to not be + specified. + :type container_url: str + :param start_time: Required. The start of the time range from which to + upload Batch Service log file(s). Any log file containing a log message in + the time range will be uploaded. This means that the operation might + retrieve more logs than have been requested since the entire log file is + always uploaded, but the operation should not retrieve fewer logs than + have been requested. + :type start_time: datetime + :param end_time: The end of the time range from which to upload Batch + Service log file(s). Any log file containing a log message in the time + range will be uploaded. This means that the operation might retrieve more + logs than have been requested since the entire log file is always + uploaded, but the operation should not retrieve fewer logs than have been + requested. If omitted, the default is to upload all logs available after + the startTime. + :type end_time: datetime + """ + + _validation = { + 'container_url': {'required': True}, + 'start_time': {'required': True}, + } + + _attribute_map = { + 'container_url': {'key': 'containerUrl', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, + } + + def __init__(self, *, container_url: str, start_time, end_time=None, **kwargs) -> None: + super(UploadBatchServiceLogsConfiguration, self).__init__(**kwargs) + self.container_url = container_url + self.start_time = start_time + self.end_time = end_time + + +class UploadBatchServiceLogsResult(Model): + """The result of uploading Batch service log files from a specific Compute + Node. + + All required parameters must be populated in order to send to Azure. + + :param virtual_directory_name: Required. The virtual directory within + Azure Blob Storage container to which the Batch Service log file(s) will + be uploaded. The virtual directory name is part of the blob name for each + log file uploaded, and it is built based poolId, nodeId and a unique + identifier. + :type virtual_directory_name: str + :param number_of_files_uploaded: Required. The number of log files which + will be uploaded. + :type number_of_files_uploaded: int + """ + + _validation = { + 'virtual_directory_name': {'required': True}, + 'number_of_files_uploaded': {'required': True}, + } + + _attribute_map = { + 'virtual_directory_name': {'key': 'virtualDirectoryName', 'type': 'str'}, + 'number_of_files_uploaded': {'key': 'numberOfFilesUploaded', 'type': 'int'}, + } + + def __init__(self, *, virtual_directory_name: str, number_of_files_uploaded: int, **kwargs) -> None: + super(UploadBatchServiceLogsResult, self).__init__(**kwargs) + self.virtual_directory_name = virtual_directory_name + self.number_of_files_uploaded = number_of_files_uploaded + + +class UsageStatistics(Model): + """Statistics related to Pool usage information. + + All required parameters must be populated in order to send to Azure. + + :param start_time: Required. The start time of the time range covered by + the statistics. + :type start_time: datetime + :param last_update_time: Required. The time at which the statistics were + last updated. All statistics are limited to the range between startTime + and lastUpdateTime. + :type last_update_time: datetime + :param dedicated_core_time: Required. The aggregated wall-clock time of + the dedicated Compute Node cores being part of the Pool. + :type dedicated_core_time: timedelta + """ + + _validation = { + 'start_time': {'required': True}, + 'last_update_time': {'required': True}, + 'dedicated_core_time': {'required': True}, + } + + _attribute_map = { + 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, + 'last_update_time': {'key': 'lastUpdateTime', 'type': 'iso-8601'}, + 'dedicated_core_time': {'key': 'dedicatedCoreTime', 'type': 'duration'}, + } + + def __init__(self, *, start_time, last_update_time, dedicated_core_time, **kwargs) -> None: + super(UsageStatistics, self).__init__(**kwargs) + self.start_time = start_time + self.last_update_time = last_update_time + self.dedicated_core_time = dedicated_core_time + + +class UserAccount(Model): + """Properties used to create a user used to execute Tasks on an Azure Batch + Compute Node. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The name of the user Account. + :type name: str + :param password: Required. The password for the user Account. + :type password: str + :param elevation_level: The elevation level of the user Account. The + default value is nonAdmin. Possible values include: 'nonAdmin', 'admin' + :type elevation_level: str or ~azure.batch.models.ElevationLevel + :param linux_user_configuration: The Linux-specific user configuration for + the user Account. This property is ignored if specified on a Windows Pool. + If not specified, the user is created with the default options. + :type linux_user_configuration: ~azure.batch.models.LinuxUserConfiguration + :param windows_user_configuration: The Windows-specific user configuration + for the user Account. This property can only be specified if the user is + on a Windows Pool. If not specified and on a Windows Pool, the user is + created with the default options. + :type windows_user_configuration: + ~azure.batch.models.WindowsUserConfiguration + """ + + _validation = { + 'name': {'required': True}, + 'password': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + 'elevation_level': {'key': 'elevationLevel', 'type': 'ElevationLevel'}, + 'linux_user_configuration': {'key': 'linuxUserConfiguration', 'type': 'LinuxUserConfiguration'}, + 'windows_user_configuration': {'key': 'windowsUserConfiguration', 'type': 'WindowsUserConfiguration'}, + } + + def __init__(self, *, name: str, password: str, elevation_level=None, linux_user_configuration=None, windows_user_configuration=None, **kwargs) -> None: + super(UserAccount, self).__init__(**kwargs) + self.name = name + self.password = password + self.elevation_level = elevation_level + self.linux_user_configuration = linux_user_configuration + self.windows_user_configuration = windows_user_configuration + + +class UserIdentity(Model): + """The definition of the user identity under which the Task is run. + + Specify either the userName or autoUser property, but not both. + + :param user_name: The name of the user identity under which the Task is + run. The userName and autoUser properties are mutually exclusive; you must + specify one but not both. + :type user_name: str + :param auto_user: The auto user under which the Task is run. The userName + and autoUser properties are mutually exclusive; you must specify one but + not both. + :type auto_user: ~azure.batch.models.AutoUserSpecification + """ + + _attribute_map = { + 'user_name': {'key': 'username', 'type': 'str'}, + 'auto_user': {'key': 'autoUser', 'type': 'AutoUserSpecification'}, + } + + def __init__(self, *, user_name: str=None, auto_user=None, **kwargs) -> None: + super(UserIdentity, self).__init__(**kwargs) + self.user_name = user_name + self.auto_user = auto_user + + +class VirtualMachineConfiguration(Model): + """The configuration for Compute Nodes in a Pool based on the Azure Virtual + Machines infrastructure. + + All required parameters must be populated in order to send to Azure. + + :param image_reference: Required. A reference to the Azure Virtual + Machines Marketplace Image or the custom Virtual Machine Image to use. + :type image_reference: ~azure.batch.models.ImageReference + :param node_agent_sku_id: Required. The SKU of the Batch Compute Node + agent to be provisioned on Compute Nodes in the Pool. The Batch Compute + Node agent is a program that runs on each Compute Node in the Pool, and + provides the command-and-control interface between the Compute Node and + the Batch service. There are different implementations of the Compute Node + agent, known as SKUs, for different operating systems. You must specify a + Compute Node agent SKU which matches the selected Image reference. To get + the list of supported Compute Node agent SKUs along with their list of + verified Image references, see the 'List supported Compute Node agent + SKUs' operation. + :type node_agent_sku_id: str + :param windows_configuration: Windows operating system settings on the + virtual machine. This property must not be specified if the imageReference + property specifies a Linux OS Image. + :type windows_configuration: ~azure.batch.models.WindowsConfiguration + :param data_disks: The configuration for data disks attached to the + Compute Nodes in the Pool. This property must be specified if the Compute + Nodes in the Pool need to have empty data disks attached to them. This + cannot be updated. Each Compute Node gets its own disk (the disk is not a + file share). Existing disks cannot be attached, each attached disk is + empty. When the Compute Node is removed from the Pool, the disk and all + data associated with it is also deleted. The disk is not formatted after + being attached, it must be formatted before use - for more information see + https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux + and + https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. + :type data_disks: list[~azure.batch.models.DataDisk] + :param license_type: The type of on-premises license to be used when + deploying the operating system. This only applies to Images that contain + the Windows operating system, and should only be used when you hold valid + on-premises licenses for the Compute Nodes which will be deployed. If + omitted, no on-premises licensing discount is applied. Values are: + Windows_Server - The on-premises license is for Windows Server. + Windows_Client - The on-premises license is for Windows Client. + :type license_type: str + :param container_configuration: The container configuration for the Pool. + If specified, setup is performed on each Compute Node in the Pool to allow + Tasks to run in containers. All regular Tasks and Job manager Tasks run on + this Pool must specify the containerSettings property, and all other Tasks + may specify it. + :type container_configuration: ~azure.batch.models.ContainerConfiguration + """ + + _validation = { + 'image_reference': {'required': True}, + 'node_agent_sku_id': {'required': True}, + } + + _attribute_map = { + 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, + 'node_agent_sku_id': {'key': 'nodeAgentSKUId', 'type': 'str'}, + 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, + 'data_disks': {'key': 'dataDisks', 'type': '[DataDisk]'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + 'container_configuration': {'key': 'containerConfiguration', 'type': 'ContainerConfiguration'}, + } + + def __init__(self, *, image_reference, node_agent_sku_id: str, windows_configuration=None, data_disks=None, license_type: str=None, container_configuration=None, **kwargs) -> None: + super(VirtualMachineConfiguration, self).__init__(**kwargs) + self.image_reference = image_reference + self.node_agent_sku_id = node_agent_sku_id + self.windows_configuration = windows_configuration + self.data_disks = data_disks + self.license_type = license_type + self.container_configuration = container_configuration + + +class WindowsConfiguration(Model): + """Windows operating system settings to apply to the virtual machine. + + :param enable_automatic_updates: Whether automatic updates are enabled on + the virtual machine. If omitted, the default value is true. + :type enable_automatic_updates: bool + """ + + _attribute_map = { + 'enable_automatic_updates': {'key': 'enableAutomaticUpdates', 'type': 'bool'}, + } + + def __init__(self, *, enable_automatic_updates: bool=None, **kwargs) -> None: + super(WindowsConfiguration, self).__init__(**kwargs) + self.enable_automatic_updates = enable_automatic_updates + + +class WindowsUserConfiguration(Model): + """Properties used to create a user Account on a Windows Compute Node. + + :param login_mode: The login mode for the user. The default value for + VirtualMachineConfiguration Pools is 'batch' and for + CloudServiceConfiguration Pools is 'interactive'. Possible values include: + 'batch', 'interactive' + :type login_mode: str or ~azure.batch.models.LoginMode + """ + + _attribute_map = { + 'login_mode': {'key': 'loginMode', 'type': 'LoginMode'}, + } + + def __init__(self, *, login_mode=None, **kwargs) -> None: + super(WindowsUserConfiguration, self).__init__(**kwargs) + self.login_mode = login_mode diff --git a/azext/batch/_vendor/v5/azure/batch/models/_paged_models.py b/azext/batch/_vendor/v5/azure/batch/models/_paged_models.py new file mode 100644 index 00000000..8681241d --- /dev/null +++ b/azext/batch/_vendor/v5/azure/batch/models/_paged_models.py @@ -0,0 +1,192 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class ApplicationSummaryPaged(Paged): + """ + A paging container for iterating over a list of :class:`ApplicationSummary ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ApplicationSummary]'} + } + + def __init__(self, *args, **kwargs): + + super(ApplicationSummaryPaged, self).__init__(*args, **kwargs) + + +class PoolUsageMetricsPaged(Paged): + """ + A paging container for iterating over a list of :class:`PoolUsageMetrics ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PoolUsageMetrics]'} + } + + def __init__(self, *args, **kwargs): + + super(PoolUsageMetricsPaged, self).__init__(*args, **kwargs) + + +class CloudPoolPaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudPool ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudPool]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudPoolPaged, self).__init__(*args, **kwargs) + + +class ImageInformationPaged(Paged): + """ + A paging container for iterating over a list of :class:`ImageInformation ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ImageInformation]'} + } + + def __init__(self, *args, **kwargs): + + super(ImageInformationPaged, self).__init__(*args, **kwargs) + + +class PoolNodeCountsPaged(Paged): + """ + A paging container for iterating over a list of :class:`PoolNodeCounts ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[PoolNodeCounts]'} + } + + def __init__(self, *args, **kwargs): + + super(PoolNodeCountsPaged, self).__init__(*args, **kwargs) + + +class CloudJobPaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudJob ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudJob]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudJobPaged, self).__init__(*args, **kwargs) + + +class JobPreparationAndReleaseTaskExecutionInformationPaged(Paged): + """ + A paging container for iterating over a list of :class:`JobPreparationAndReleaseTaskExecutionInformation ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[JobPreparationAndReleaseTaskExecutionInformation]'} + } + + def __init__(self, *args, **kwargs): + + super(JobPreparationAndReleaseTaskExecutionInformationPaged, self).__init__(*args, **kwargs) + + +class CertificatePaged(Paged): + """ + A paging container for iterating over a list of :class:`Certificate ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[Certificate]'} + } + + def __init__(self, *args, **kwargs): + + super(CertificatePaged, self).__init__(*args, **kwargs) + + +class NodeFilePaged(Paged): + """ + A paging container for iterating over a list of :class:`NodeFile ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[NodeFile]'} + } + + def __init__(self, *args, **kwargs): + + super(NodeFilePaged, self).__init__(*args, **kwargs) + + +class CloudJobSchedulePaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudJobSchedule ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudJobSchedule]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudJobSchedulePaged, self).__init__(*args, **kwargs) + + +class CloudTaskPaged(Paged): + """ + A paging container for iterating over a list of :class:`CloudTask ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[CloudTask]'} + } + + def __init__(self, *args, **kwargs): + + super(CloudTaskPaged, self).__init__(*args, **kwargs) + + +class ComputeNodePaged(Paged): + """ + A paging container for iterating over a list of :class:`ComputeNode ` object + """ + + _attribute_map = { + 'next_link': {'key': 'odata\\.nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ComputeNode]'} + } + + def __init__(self, *args, **kwargs): + + super(ComputeNodePaged, self).__init__(*args, **kwargs) diff --git a/azext/batch/_vendor/v5/certifi-2019.9.11.tar.gz b/azext/batch/_vendor/v5/certifi-2019.9.11.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f0b35ca02acccb43dc99c51c461355227d588d13 GIT binary patch literal 154855 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 z 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�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

%85ps5kP0v5 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

{}NxMf1Cgt!v1 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 NBJt~0>E0idEBC%X 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 literal 0 HcmV?d00001 diff --git a/azext/batch/_vendor/v5/chardet-3.0.4.tar.gz b/azext/batch/_vendor/v5/chardet-3.0.4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..13028bfc20da65b4ca603783532fd9a988930856 GIT binary patch literal 1868453 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

ssHPnhE+XS)qg^YT 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

U^Q2E(t3=Vu1R$%@e#@)QgC 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%0A4PFjkF!>m&DCyQ8na^gmk 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
  • *Khnk$Fk( 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

    A&szmtGF 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

    Wgi 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͗)VcPxfh|Hy>Qp<5*dI_ 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 z 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®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≀PsV`m5R1czt1rUu5rY^W2s4K@H&-ap`WIq)!{qKuCLFYrMZK{wnp1C9Zp zXfYc>qCmem4UczF12#vj&5L32#LZ~7u*2Me*W=WH&Y)fB%F%rQ`;nu7Md@*Mxg2iw zZZ}UFemOv`x`3x3H|lf-0&*0d-dYpygtc(4*MI_Cbn=Mrxm|u-Bshn#Q^Lf`1^LT)z@@aR~HzVG4tNUZ4bjA8snpkKc>b9~2oBIwIO!gj55_A9MZ0GR|Jdt?YT>W@v;kfnx;q6!aXskt*VG8A=a&ba z&i!(>bot1+GOtIf>In?M3HJ8-9Q`l~XuzR$278gXTzGTB_37_|@8AaUQ!_NQdjdWe zECY<7QA5I4lY9FrDAPFz~nKgjCf@cZW2!stk@CUfEG+?B7XyAyTsTIZp(?uGA zp#d2Z>+cB+Q**G=;>N?{z}(bN(t{JkBOoT=KJWt!(%XX~!%CtA{7CVwni{{;;R6!r zrY&&5Q5=2{pC}Wh=&bv-L7xkL0BUsxx@ZzEKTxzPV#qD6 zeB&H&xP!0`$jxZ<@SewuhX?tjoOL&DAU4NqibM0@O3KCm+XiGD)@8>QX~l{848t5X zAOv_x@&x$Y7Z|?D5449pgPedOAiYNfz7ol!sj-1cMe+y_-|V=l4xqMxgD#N;I2DJY7Oe0!r=%CNKb;oKHT@CqVQ-EsATMTOpwrI?y`B48>4- zfi8eh2OY!46l-gQka4S*2UbbJ@FbATtw>bO`0h?v)()S!>6)4?v=YF2HaojWp3xfZ zD{%~V*tmP_^($ez+7L{Qexl$0UbCxa?i05=c108O2K`7|Wd8H>VSq6#K_75E^Sw-D z1eEZ|Dz%EhUj3LUy0xuv`~RI^^E=#lvB1bSIeZ>x zugiJUcBk77YX>q4T{nT@mEtG^ANKn}W5H_$2kr;;#nBDIO)qc||EHO5M1yjrd%fOn zLEb&iL6`+nKhhTPCchUK4XeoE+aeN{OZKC0Dr)`AK)q-hOn)&kqx)aU3QaJYJbo?EwR ztL%!EAP+O5pXaM*)ZluDzCMPP@4e z{=Z?s+vy!bFXSyXHP#Q12nHR#ZelF_mCxaVyWQgqAoPG(*{(k52Y(0gqKCJVM%78u zo1X=B(_=6pKA-*o{olz%%_WDvH)x}tzRvx#8Qg_;mgt0g@?V8s+~gr4ANc?gKF8Sb^5%6z@O;GKHviB zM0j|CCG~r2VeEASz2Zg%VFyGM6qx;zuXF-C;G{}gPGm^PP5Gn?g~K{*W=?(HK_w%& zJO{k)18|N=qo^1)bbdF?zl#>e;r4s+=ni_^UPm_(%K!>cJDh`lAqx--^andZv~$4$ zLrq6X1mgM^YGuFU0esX&YJ?zkCP^zL0o!NJLnoV5Ag5Re+0+4t&jr^BH&!e5p%>T( z(XV@09aoYjx3Q9bJ5Xt(5BFfY*f#2llrM6w>`G zF*g>uEXt35LF4pl%a8+CiYDg=f`sW3|3InSAN1gGYvHui0#8H1y4U4FZs+w3_rpqp z>;;zuwAsC$4&?@V02Es|9Kp`IZf}>rj+Dl_UV{z6m$bm^>S3{c-e7N^_*2f5$o{E(s6^jS(~HFBRg=lqvhD=-@=0#!{p zZf7st@Sst<;NImXuJ7n0dmG3C{u`ue?#A|x=C+O-Z|vCGqP1_wu6MPy?&$c`jW=%D z*{1EfbK|zwP1@$2+nZZ=Xe}Krdpg?HD>ou{r~8^X)r$6h)@p%RKDC0?QM&K(JpKb8 z>HQw>;Cj5RhFLxW2@xg$mlRMO@w|SL@%=$GQ2>X<$@xfzH}3X9tPnz+qozifQwM|+ zEDbp;@gDYQ%-!Ko22iuXP3^%2Ku!&32O1>KAPfU=c?a20r(PZevFq>rqC?ULNSFh9 zb_Cr4)H^}(bM)i4vK1Jhf92BafrRPraywl8EMG~6;&wSeu!cJtc>s(XRg(a*KUyJP zAL63;Lzjc>wV=6z=1KaIiv>$#73BO$;0bv7*4Wqr``YrU8@0Q4-l^T$-lD-Sx3x5H z);hMfw(}0x)NCAvwIFKrks!?GV7B|HK6bV3ysc#u5p>IrjV*1r-V}gk73+`vxmb?0OejX>OqBK}P8oCTz7(c&FjDOY?*#J{xqRxxt0|sWsN4m4()p`ytsl zAo)8>hrB70(tyB>!HU6kn>)l?Q5)zR_QL|9tqGLjV83=fn~{K3lPUfNo?t&JZ$4)r z=p!QrU75qIQ_whB&Dgl}&WM5+cbG*+^+pjrpU^tU~Br7FoE_dZN&ha zC%ef!xq>bO6Gakh0=CrSM8UsOmXqANI`?XZm%3a+d;q#wT*J_=#}=e4z2XM6d>JQ_ zD9SjJ{Z8~15IK5S?E|p_Cu6aynoSa@0{9Ga!AX+#VIKDN4i?xxbpsJ2u_Lngo6e^z zP}P7-yNS{fP*J~&E=+z^eeNLpsbT)`d50bDfD11ytsUc((6|_MqdbGR7mO77B6$+v zj13HcAR^g-u-VD+nc0Uynl&|aNX-)j7Pz8| z)U3$n>UTjWD6as==)pmg%g@bk0q# zESrUJDzHjAtd3m(FCnyxc9QgjKapz(Hf+UakjlFP{uPUnmH3`sB0n9O3E`ebb^+3` zkR0L6c!0+R$u)t;q08&@1qaZ68*mu29Uy{tlDvinIAhy^07cKh6rChX24Ux6U4U}n z6o9;q#ny;V;+x$xF4U*s&2C3O-1$t9`&Cnd74af)Z^C+Uz~u|FP%S^g0e3sa(c$Lk zYczQWaNTHc;KUPS0>0!L5LWP-nr*GyTRU1dYrC7<+M0KC-2G{7b8GviZOyIQTiUdp zTeQv1+naA~0S2`(7*M{&6>ZY?-o|=7TMm5iEAsahFhM2{;WYz+{T};$mB$iqEuJmj zUBk>!VXp*JCc+n&meBi<9W2fzZ_td(+ktL^@>`o`z$@fOV+wR=ly5m-D zBitM)=F5%h*r|bp+S&#yuoB;BZ@J^nmK`0f&D&OjK)9o|qxG(qni^;gnrPh&-!yNN zo48VIxvOP|*1CnJace70qoWmvyagl-cx~6t_V!jDD}L5~Ck#@&Ow=N8cvxk!H#)=- zQ_gMSspGqOow}QAYRs2&g=nBHEgA6jtwaM<>xVTZ5qNO-+zyW;;PnlYOG);R=Rw%c zE#iRn;$K`OaPbvm$O7s(E_w6g5QI;eLZQB#JAsqJnh#*OLeRse@lBwt&9>x~%4Bok2Ywdui@76W~E$>*VRU99K(Lo#5 zVF07sv=x4BmUItCw6$Xgjt7rwGn@)gs9HDOxvd#ht~NL$EwmEtXsY$Iq`)#SoBb3M zLPrQ*H0Yv5bBe(R~^8JJ<77rKB&h z8)oel?*Tef!Y#u9Z(aNw%o^BYw{WDItxR-f-_v*>jfL4Jtu)-Xa7_T6w(i`a@x8I4 z+7-8gcLF!=QmSP+b3iBjFbfzf$#@}*Thh49l9rG}g)_d}Nk%okg3FXX+D2tHCflf! z%&aiq3Uz^&gbYo%u-ZK!L#+xn)^FK6Bd}>DZwwic za94);u+XbQw-dU;3O~(gpo$tRR~fWI+D4?oN71iT*k?0DqW0(qhRgkiQPsr#2xE0Yr zhmGAN-bcf;FctI-qcBRYUvEzUn30qH;^fW&w&KQxcgTglv85Gx_Kmc0^vOLp-bdbO zNzH@kJAie7>uMOM1FO*Gb~=3SVKsSi3mQ0d-Co$b8)3h0R6;yPgaRE9uQZH36wF|L z69sEew_#HgMs9JYS@VOv?_;&qmYkQ_|UujzHHIOctl&)d(9BuG>wmt#C7M+_brM6Os=eyaNt5 zi6zF%M3JI(8QH;V2or|iWM#kJfxcez+vM$bAa^IZ&V$CME{uUfS&D2OlAgQBP~pGf z)8^O97XlA1JbM5XRrb3oBNm$J#5WqbkJ*M)u@L4>g6>!1Ekl!+w~)hR&$Mi{VgPsv zdf_6aU?tO9@={$-^AyW!e&5jh)H+u%1@-{o^`mX|dW0^<9SiXp3C$!x@|;;75I2PA zb5ScE^#GTYwhL&|&E-h<0QY#NT<0o-jjMy4T6 zvJI1@eJ30fA(!yEaU-P;lPd-foqUPqYm{i%_Y`fcT z^@sO9to0lwlaOSP`o0B)Oy+r>^{jQT`@Gh=Kk8woNlOc69HzJ083S^01F-KkqJXR^5y zyU1B$-m|A&C)x=^!QA(0KOmU3c1%m)_?4xEsad&jmBl96a!5v|O3fW^c4)M1IAXRm z*9O|OSA#nmlp}5Q$IQ;-#Nc){;DQwtY?@mDD9|i8{Us&V)Mwc^TPvne9+NrE{w2(GuIARduVEu7v5q1%QIve(N~;CAWaK&w&=|X!;>0h|Imf z=&ayTN(>`gc(-h0I|##FyjY`>OcdM#E%f!74e$ZQqJ%bY)ME^)c2OF8b1}o#qTFpq z#hi*+#(qL$lMY0ooo&R>YJ-^0yOyA$(W)1-q-aVY>}FE{91pzV*k0eVt%)=t$ow+3 z!H-@_J1(0xQnC%V`nA@)UCYoW|#JNi5z zl*^19DXkkc?f`9v1`6~v?-5Ks9y*q|P*UPq8u~-><=9&HA4^J{^Sk=+*j0Qa{-b6hUG}?gk>}+(nG63`7l?5#aL)HHm)+1d-NL1|4$Dkr zo6KO@#mH?`WRuDu$v&)B74$gQM^;9+%1q2JUxFs;!WXcpiTlxrkKld|%3=9J3H);$ zF+$^5lIE-~JmFlR`h(EEBcZ3l7xpe?P_M4R;HUX7r(%cH=Mu*72($;2o=4>Qr+(u8 zL1KO2L8@*sB=<+J1Xdy_6P4pRVb()rf-n@4wdoT3z<`wQJ|6*#xbMRX8hkId8oSL| z=iL`=XUarcLff&zPUN@oB>r^217wGvBO6BUq2J+Y|8Gj5U91)PD?A_Py$zarld7N) z=4sLw`3ZFGh@lNo5EFt6<`EI8-zmbRY)L3y<5E^7n#F<(lTR_Sp0mz(1WPF(kpmfM z^0eiKpKgQx{Jgd;tGh7KJ*+odb)IWbamiEL! z2XFOYt*qy`?53VJ#B#(+(j_wG>oM@cXqI4*{c^~=F!8L+bsdBO>T-ejs*LyJphupO z+3-R6KFS^yIO$d;P~I$2035nr3z52nibZF_pUUAxY~*v9a`y$h=ul}7m7t<(o56J~ zRouyl7pp^ZfACp;%Dof|p_Rzq@G%P{^SHCrHC$px&uK(78wg>jh;xuho+nL!w!KQm$= zR>=&9kbAP&(a<}QChnWF4oI7c9|7w1$`i-PP)2&f=XB^#@W{(B%OJA;7eO6A=fpb?;1q>!mATMfEaC(jaWQZf zNNcdQgeG6<-^AOWyZ{fR;WN%^&byEVNX@7GP+mc3K2oR|`5yHx7wOf-1Cg>N2K)K{ z0Fs&oHhYuM={nh%6fhsV0$H&EdB$6Zr^)5P7@|ZzQ-WOtkz!SZH&InPc%a#LHu@Ew zFLtM?N+X_zhJJ;~kZ>=V2^sg5w0fo_@`9m*sU%Uz6Z?y^J6DuH0xb+qo z&U^6NVVF9sw$-P52P*6!5oVB)ETe5;U(!@y+nB5pYz&KU!R1?{35$gU?#5&KsO7w0 zCbG$9pjj{JY9I=ZCEnNdMx;j(BU7>(^T-(B)i*b_?`Q<7H+o;^x=EpXfe(*ByTG{q zAb1rig0H-U-KN6beJ}`=`fi{=I`}E*RA9hEaN!`Mf166zV5UAG%RMAkL;mAj)-iFC zy&rfkN4%9Lu%U}3x>O|U2pI1dVE6d)kfuG>%~Eyv)kDTJbyR9_0EkPKto$Ie&rx~o zw}?Ynm`E_F^sVW`fJmWexnBiUdmN1kHP8#6yEQkVp8+FR_7XuGPhrh07+zHNs`|n& z!;HMila5WnZ>LB`d&vmj)71|u{V8>M_1@#Me2UhpCT{o9V{@2 z0Gv$vPgcU@bdxPXy>b!70lWdQDoD5EUEs91H^^MzAziPM?a}xI1Vi5SJJ$SxVbEoW zAEiLDEksn4{;3m|X$FNhtF`&Mquadu#iS8lI3sf4}5co0N zw;y_T47$Bd;kvz3LKQMiR^G2BQdwYl*k3xG7KnN zLdc;sd#Dz%KpWnOm7CGvqTY3OlDEZZrl5z=GY@Q{3Vt}7yO>#-BT7R5?oDH*S$aFp z4q;1!tFRc0vH=UeLbYM--VP6i&DfJ3GOb7C$27r5mBV{kReQbQUCU*_lh4DvrkE7T zdy?m2LNfTm64L8gjtkuHxDV@U@{vD-=Z_%N>b>B>XOTT1Y8k-4aP@s00?F8b7hd6x zCXbacW^c#|eR~@z1-=#qKN##-BAY%AdnoD|;+KPT9EM(>QK)d_=9OqQpeAqlzhI27 z%Qrwqm2L^Ff_G&+Cog1x4n3d_&Y@>c{yLa?_6uNs4!{IUmi-bOh4$gV+rUr6WbRvF zj2X`nxQY{17iuOjWORH+e)?1WEw~`>dG^5fza~*Qfofoo?8q|)zAxxv(r4)9!RQhr zGM7N(b;43^u!rD&pHYbHq=)>sQe24+&fb;s4E!7c=j$nupXK=G*jhORaZC=#iS=^- z3*$M@C#tXr^dIgghk$C;BZDP4SKKu6)2m}PFp;zM==lli~ z2f`ha?hBucI>Gb=&xaGL3?(TA??MHqt0rXcj&LaXBz%X(r~AN-Fu`%4ZS=qq&K z&dB#lz6NV+=lJ1cm%2U)XE%}+?KY(m8W^%>|tI7DO z0Sy_wRc^wX>OyM4JPxv6Y7jHwS$OU0z<$XjB zGI>cc=-A{e*u>ZqE&Pf+0$!!iQxxm;^<+4c>hg z^w*nt+-mweC)7)_o+Ua02VM<6M~37S+_DXZf*_Y9PoZY8cPI6G18-o?!+Sr4HY1Tg zgEO#4=ALTDG*Ou9nTMKv4`4v7LMY$YR2fPopaNie+>e3m9#u&v?9VTNEbuq@l9F@6 z+^~rAQIvFaaSmYa%=;=KC}ha2X>^DY0-aBr@he3SJZ(AX$RT_YIl=TqiSbCr-H64v z!n?tt?KPPYG23Oj>lq-)0SHz>8e;QhZ{h>9R~Eq`5?)e7&BPxc`We1GxEv#EV3RMf zer{XaKc=k5 z%RETrw@b^7qz^jVuK@kb{OvYmn-cOfpriYC$DR)@A!~rh3*D4P%qR}ui;6S08-D); zt$o-nU!`v%u|v@m`h@NPDw+5s1dzNz@K)tj@`}GB111oxddj=;!JDLOViJ!6?}dv zc8Z+bboh~cznT%nA`k;ADls_&S3q~YhQdu2j?Qw9(FhR_LJSkb6>EL}hr*Q3%spC{aR5g%7(_}Pph{&oQ zVVM;_m}90mGh1hOu|dpkMKUs?gAZE zb1>uGI{%7_=RBKj+oPymQFJgPemQ

    G~eR(7DV;Bz6l>?jugYLkn1o`ZMqd;9aVb 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 z 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

    3JPNn!J<3UT`9CCu(o38g}_;$EA{gRz# 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�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

  • X{Q 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͛@ESPEp# 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

    MW7iEBVY==)pVFP5R_HcLi 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