[ARVADOS] updated: d53ae1523e74c6edcc89e1cd6285d2fe829d92c8

Git user git at public.curoverse.com
Thu Jun 29 15:45:53 EDT 2017


Summary of changes:
 .licenseignore                                     |  13 +++
 Makefile                                           |   4 +
 README.md                                          |   4 +
 apps/workbench/Gemfile                             |   4 +
 apps/workbench/README.textile                      |   4 +
 apps/workbench/Rakefile                            |   4 +
 apps/workbench/app/assets/javascripts/add_group.js |   4 +
 .../app/assets/javascripts/add_repository.js       |   4 +
 .../workbench/app/assets/javascripts/ajax_error.js |   4 +
 .../app/assets/javascripts/angular_shim.js         |   4 +
 .../app/assets/javascripts/application.js          |   4 +
 .../app/assets/javascripts/arvados_client.js       |   4 +
 .../app/assets/javascripts/bootstrap.js.coffee     |   6 +-
 .../app/assets/javascripts/collections.js          |   4 +
 apps/workbench/app/assets/javascripts/dates.js     |   4 +
 .../app/assets/javascripts/edit_collection.js      |   4 +
 .../app/assets/javascripts/edit_collection_tags.js |  72 +++++++++++++++
 apps/workbench/app/assets/javascripts/editable.js  |   4 +
 apps/workbench/app/assets/javascripts/event_log.js |   4 +
 .../workbench/app/assets/javascripts/filterable.js |   4 +
 .../app/assets/javascripts/infinite_scroll.js      |   4 +
 .../app/assets/javascripts/job_log_graph.js        |   4 +
 .../app/assets/javascripts/keep_disks.js.coffee    |   4 +
 .../app/assets/javascripts/link_to_remote.js       |   4 +
 .../workbench/app/assets/javascripts/log_viewer.js |   4 +
 .../app/assets/javascripts/modal_pager.js          |   4 +
 .../app/assets/javascripts/permission_toggle.js    |   4 +
 .../app/assets/javascripts/pipeline_instances.js   |   4 +
 .../app/assets/javascripts/report_issue.js         |   4 +
 .../app/assets/javascripts/request_shell_access.js |   4 +
 .../app/assets/javascripts/select_modal.js         |   4 +
 .../app/assets/javascripts/selection.js.erb        |   4 +
 apps/workbench/app/assets/javascripts/sizing.js    |   4 +
 apps/workbench/app/assets/javascripts/tab_panes.js |   4 +
 .../app/assets/javascripts/upload_to_collection.js |   4 +
 .../app/assets/javascripts/user_agreements.js      |   4 +
 apps/workbench/app/assets/javascripts/users.js     |   4 +
 .../app/assets/javascripts/work_unit_component.js  |   4 +
 .../app/assets/javascripts/work_unit_log.js        |   4 +
 .../stylesheets/api_client_authorizations.css.scss |   4 +
 .../app/assets/stylesheets/application.css.scss    |   4 +
 .../assets/stylesheets/authorized_keys.css.scss    |   4 +
 .../app/assets/stylesheets/badges.css.scss         |   4 +
 .../app/assets/stylesheets/cards.css.scss          |   4 +
 .../app/assets/stylesheets/collections.css.scss    |   8 ++
 .../app/assets/stylesheets/groups.css.scss         |   4 +
 .../app/assets/stylesheets/humans.css.scss         |   4 +
 .../app/assets/stylesheets/job_tasks.css.scss      |   4 +
 .../workbench/app/assets/stylesheets/jobs.css.scss |   4 +
 .../app/assets/stylesheets/keep_disks.css.scss     |   4 +
 .../app/assets/stylesheets/links.css.scss          |   4 +
 .../app/assets/stylesheets/loading.css.scss.erb    |   4 +
 .../app/assets/stylesheets/log_viewer.scss         |   4 +
 .../workbench/app/assets/stylesheets/logs.css.scss |   4 +
 .../app/assets/stylesheets/nodes.css.scss          |   4 +
 .../assets/stylesheets/pipeline_instances.css.scss |   4 +
 .../assets/stylesheets/pipeline_templates.css.scss |   4 +
 .../app/assets/stylesheets/projects.css.scss       |   4 +
 .../app/assets/stylesheets/repositories.css.scss   |   4 +
 .../app/assets/stylesheets/scaffolds.css.scss      |   4 +
 .../app/assets/stylesheets/select_modal.css.scss   |   4 +
 .../app/assets/stylesheets/sessions.css.scss       |   4 +
 .../app/assets/stylesheets/specimens.css.scss      |   4 +
 .../app/assets/stylesheets/traits.css.scss         |   4 +
 .../assets/stylesheets/user_agreements.css.scss    |   4 +
 .../app/assets/stylesheets/users.css.scss          |   4 +
 .../assets/stylesheets/virtual_machines.css.scss   |   4 +
 .../app/controllers/actions_controller.rb          |   4 +
 .../api_client_authorizations_controller.rb        |   4 +
 .../app/controllers/application_controller.rb      |   4 +
 .../app/controllers/authorized_keys_controller.rb  |   4 +
 .../app/controllers/collections_controller.rb      |  30 ++++++-
 .../controllers/container_requests_controller.rb   |   4 +
 .../app/controllers/containers_controller.rb       |   4 +
 .../workbench/app/controllers/groups_controller.rb |   4 +
 .../workbench/app/controllers/humans_controller.rb |   4 +
 .../app/controllers/job_tasks_controller.rb        |   4 +
 apps/workbench/app/controllers/jobs_controller.rb  |   4 +
 .../app/controllers/keep_disks_controller.rb       |   4 +
 .../app/controllers/keep_services_controller.rb    |   4 +
 apps/workbench/app/controllers/links_controller.rb |   4 +
 apps/workbench/app/controllers/logs_controller.rb  |   4 +
 apps/workbench/app/controllers/nodes_controller.rb |   4 +
 .../controllers/pipeline_instances_controller.rb   |   4 +
 .../controllers/pipeline_templates_controller.rb   |   4 +
 .../app/controllers/projects_controller.rb         |   4 +
 .../app/controllers/repositories_controller.rb     |   4 +
 .../workbench/app/controllers/search_controller.rb |   4 +
 .../app/controllers/sessions_controller.rb         |   4 +
 .../app/controllers/specimens_controller.rb        |   4 +
 .../workbench/app/controllers/traits_controller.rb |   4 +
 .../app/controllers/trash_items_controller.rb      |   4 +
 .../app/controllers/user_agreements_controller.rb  |   4 +
 apps/workbench/app/controllers/users_controller.rb |  34 +++----
 .../app/controllers/virtual_machines_controller.rb |   4 +
 .../app/controllers/websocket_controller.rb        |   4 +
 .../controllers/work_unit_templates_controller.rb  |   4 +
 .../app/controllers/work_units_controller.rb       |   4 +
 .../app/controllers/workflows_controller.rb        |   4 +
 apps/workbench/app/helpers/application_helper.rb   |   4 +
 .../app/helpers/arvados_api_client_helper.rb       |   4 +
 apps/workbench/app/helpers/collections_helper.rb   |   4 +
 .../app/helpers/pipeline_components_helper.rb      |   4 +
 .../app/helpers/pipeline_instances_helper.rb       |   4 +
 apps/workbench/app/helpers/provenance_helper.rb    |   4 +
 apps/workbench/app/helpers/version_helper.rb       |   4 +
 apps/workbench/app/mailers/issue_reporter.rb       |   4 +
 .../app/mailers/request_shell_access_reporter.rb   |   4 +
 .../app/models/api_client_authorization.rb         |   4 +
 apps/workbench/app/models/arvados_api_client.rb    |   4 +
 apps/workbench/app/models/arvados_base.rb          |   4 +
 apps/workbench/app/models/arvados_resource_list.rb |   4 +
 apps/workbench/app/models/authorized_key.rb        |   4 +
 apps/workbench/app/models/collection.rb            |   6 +-
 apps/workbench/app/models/container.rb             |   4 +
 apps/workbench/app/models/container_request.rb     |   4 +
 apps/workbench/app/models/container_work_unit.rb   |   4 +
 apps/workbench/app/models/group.rb                 |   4 +
 apps/workbench/app/models/human.rb                 |   4 +
 apps/workbench/app/models/job.rb                   |   4 +
 apps/workbench/app/models/job_task.rb              |   4 +
 apps/workbench/app/models/job_task_work_unit.rb    |   4 +
 apps/workbench/app/models/job_work_unit.rb         |   4 +
 apps/workbench/app/models/keep_disk.rb             |   4 +
 apps/workbench/app/models/keep_service.rb          |   4 +
 apps/workbench/app/models/link.rb                  |   4 +
 apps/workbench/app/models/log.rb                   |   4 +
 apps/workbench/app/models/node.rb                  |   4 +
 apps/workbench/app/models/pipeline_instance.rb     |   4 +
 .../app/models/pipeline_instance_work_unit.rb      |   4 +
 apps/workbench/app/models/pipeline_template.rb     |   4 +
 apps/workbench/app/models/proxy_work_unit.rb       |   4 +
 apps/workbench/app/models/repository.rb            |   4 +
 apps/workbench/app/models/specimen.rb              |   4 +
 apps/workbench/app/models/trait.rb                 |   4 +
 apps/workbench/app/models/user.rb                  |   4 +
 apps/workbench/app/models/user_agreement.rb        |   4 +
 apps/workbench/app/models/virtual_machine.rb       |   4 +
 apps/workbench/app/models/work_unit.rb             |   4 +
 apps/workbench/app/models/workflow.rb              |   4 +
 .../api_client_authorizations/_show_help.html.erb  |   4 +
 apps/workbench/app/views/application/404.html.erb  |   4 +
 apps/workbench/app/views/application/404.json.erb  |   4 +
 .../views/application/_arvados_attr_value.html.erb |   4 +
 .../app/views/application/_arvados_object.html.erb |   4 +
 .../application/_arvados_object_attr.html.erb      |   4 +
 .../application/_breadcrumb_page_name.html.erb     |   4 +
 .../app/views/application/_breadcrumbs.html.erb    |   4 +
 .../views/application/_browser_unsupported.html    |   4 +
 .../app/views/application/_choose.html.erb         |   4 +
 .../workbench/app/views/application/_choose.js.erb |   4 +
 .../app/views/application/_choose_rows.html.erb    |   4 +
 .../app/views/application/_content.html.erb        |   4 +
 .../app/views/application/_content_layout.html.erb |   4 +
 .../application/_create_new_object_button.html.erb |   4 +
 .../application/_delete_object_button.html.erb     |   4 +
 .../app/views/application/_job_progress.html.erb   |   4 +
 .../app/views/application/_loading.html.erb        |   4 +
 .../app/views/application/_loading_modal.html.erb  |   4 +
 .../application/_name_and_description.html.erb     |   4 +
 .../views/application/_object_description.html.erb |   4 +
 .../app/views/application/_object_name.html.erb    |   4 +
 .../app/views/application/_paging.html.erb         |   4 +
 .../views/application/_pipeline_progress.html.erb  |   4 +
 .../application/_pipeline_status_label.html.erb    |   4 +
 .../views/application/_projects_tree_menu.html.erb |   4 +
 .../app/views/application/_report_error.html.erb   |   4 +
 .../views/application/_report_issue_popup.html.erb |   4 +
 .../views/application/_selection_checkbox.html.erb |   4 +
 .../app/views/application/_show_advanced.html.erb  |   4 +
 .../_show_advanced_api_response.html.erb           |   4 +
 .../_show_advanced_cli_example.html.erb            |   4 +
 .../_show_advanced_curl_example.html.erb           |   4 +
 .../application/_show_advanced_metadata.html.erb   |   4 +
 .../_show_advanced_python_example.html.erb         |   4 +
 .../app/views/application/_show_api.html.erb       |   4 +
 .../views/application/_show_attributes.html.erb    |   4 +
 .../application/_show_autoselect_text.html.erb     |   4 +
 .../views/application/_show_home_button.html.erb   |   4 +
 .../views/application/_show_object_button.html.erb |   4 +
 .../_show_object_description_cell.html.erb         |   4 +
 .../app/views/application/_show_recent.html.erb    |   4 +
 .../app/views/application/_show_sharing.html.erb   |   4 +
 .../app/views/application/_show_star.html.erb      |   4 +
 .../application/_show_text_with_locators.html.erb  |   4 +
 .../app/views/application/_svg_div.html.erb        |   4 +
 .../views/application/_title_and_buttons.html.erb  |   4 +
 .../app/views/application/api_error.html.erb       |   4 +
 .../app/views/application/api_error.json.erb       |   4 +
 .../workbench/app/views/application/destroy.js.erb |   4 +
 .../workbench/app/views/application/error.html.erb |   4 +
 .../workbench/app/views/application/error.json.erb |   4 +
 .../workbench/app/views/application/index.html.erb |   4 +
 .../views/application/report_issue_popup.js.erb    |   4 +
 apps/workbench/app/views/application/show.html.erb |   4 +
 apps/workbench/app/views/application/star.js.erb   |   4 +
 .../app/views/authorized_keys/create.js.erb        |   4 +
 .../app/views/authorized_keys/edit.html.erb        |   4 +
 .../app/views/collections/_choose_rows.html.erb    |   4 +
 .../collections/_create_new_object_button.html.erb |   4 +
 .../collections/_extra_tab_line_buttons.html.erb   |   4 +
 .../app/views/collections/_index_tbody.html.erb    |   4 +
 .../app/views/collections/_sharing_button.html.erb |   4 +
 .../collections/_show_chooser_preview.html.erb     |   4 +
 .../app/views/collections/_show_files.html.erb     |   6 +-
 .../collections/_show_provenance_graph.html.erb    |   4 +
 .../app/views/collections/_show_recent.html.erb    |   4 +
 .../collections/_show_source_summary.html.erb      |   4 +
 .../app/views/collections/_show_tag_rows.html.erb  |  35 ++++++++
 .../app/views/collections/_show_tags.html.erb      |  52 +++++++++++
 .../app/views/collections/_show_upload.html.erb    |   4 +
 .../app/views/collections/_show_used_by.html.erb   |   4 +
 .../workbench/app/views/collections/graph.html.erb |   4 +
 .../app/views/collections/hash_matches.html.erb    |   4 +
 .../workbench/app/views/collections/index.html.erb |   4 +
 apps/workbench/app/views/collections/index.js.erb  |   4 +
 .../app/views/collections/save_tags.js.erb         |   7 ++
 .../app/views/collections/sharing_popup.js.erb     |   4 +
 apps/workbench/app/views/collections/show.html.erb |   4 +
 .../app/views/collections/show_file_links.html.erb |   4 +
 apps/workbench/app/views/collections/tags.js.erb   |   5 ++
 .../_extra_tab_line_buttons.html.erb               |   4 +
 .../_name_and_description.html.erb                 |   4 +
 .../views/container_requests/_show_inputs.html.erb |   4 +
 .../views/container_requests/_show_log.html.erb    |   4 +
 .../container_requests/_show_provenance.html.erb   |   4 +
 .../views/container_requests/_show_recent.html.erb |   4 +
 .../container_requests/_show_recent_rows.html.erb  |   4 +
 .../views/container_requests/_show_status.html.erb |   4 +
 .../app/views/container_requests/index.html.erb    |   4 +
 .../app/views/containers/_show_log.html.erb        |   4 +
 .../app/views/containers/_show_status.html.erb     |   4 +
 .../_getting_started_popup.html.erb                |   4 +
 .../app/views/groups/_choose_rows.html.erb         |   4 +
 .../app/views/groups/_show_recent.html.erb         |   4 +
 .../app/views/issue_reporter/send_report.text.erb  |   4 +
 .../views/jobs/_create_new_object_button.html.erb  |   4 +
 .../jobs/_rerun_job_with_options_popup.html.erb    |   4 +
 .../app/views/jobs/_show_details.html.erb          |   4 +
 .../app/views/jobs/_show_job_buttons.html.erb      |   4 +
 apps/workbench/app/views/jobs/_show_log.html.erb   |   4 +
 .../jobs/_show_object_description_cell.html.erb    |   4 +
 .../app/views/jobs/_show_provenance.html.erb       |   4 +
 .../workbench/app/views/jobs/_show_recent.html.erb |   4 +
 .../workbench/app/views/jobs/_show_status.html.erb |   4 +
 apps/workbench/app/views/jobs/show.html.erb        |   4 +
 .../app/views/keep_disks/_content_layout.html.erb  |   4 +
 .../app/views/layouts/application.html.erb         |   4 +
 apps/workbench/app/views/layouts/body.html.erb     |   4 +
 .../app/views/links/_breadcrumb_page_name.html.erb |   4 +
 .../_collections_notification.html.erb             |   4 +
 .../notifications/_jobs_notification.html.erb      |   4 +
 .../notifications/_pipelines_notification.html.erb |   4 +
 .../notifications/_ssh_key_notification.html.erb   |   4 +
 .../pipeline_instances/_component_labels.html.erb  |   4 +
 .../pipeline_instances/_running_component.html.erb |   4 +
 .../pipeline_instances/_show_compare.html.erb      |   4 +
 .../pipeline_instances/_show_components.html.erb   |   4 +
 .../_show_components_editable.html.erb             |   4 +
 .../_show_components_json.html.erb                 |   4 +
 .../_show_components_running.html.erb              |   4 +
 .../views/pipeline_instances/_show_graph.html.erb  |   4 +
 .../views/pipeline_instances/_show_inputs.html.erb |   4 +
 .../views/pipeline_instances/_show_log.html.erb    |   4 +
 .../_show_object_description_cell.html.erb         |   4 +
 .../views/pipeline_instances/_show_recent.html.erb |   4 +
 .../pipeline_instances/_show_recent_rows.html.erb  |   4 +
 .../pipeline_instances/_show_tab_buttons.html.erb  |   4 +
 .../app/views/pipeline_instances/compare.html.erb  |   4 +
 .../app/views/pipeline_instances/index.html.erb    |   4 +
 .../app/views/pipeline_instances/show.html.erb     |   4 +
 .../app/views/pipeline_instances/show.js.erb       |   4 +
 .../views/pipeline_templates/_choose_rows.html.erb |   4 +
 .../pipeline_templates/_show_attributes.html.erb   |   4 +
 .../_show_chooser_preview.html.erb                 |   4 +
 .../pipeline_templates/_show_components.html.erb   |   4 +
 .../pipeline_templates/_show_pipelines.html.erb    |   4 +
 .../views/pipeline_templates/_show_recent.html.erb |   4 +
 .../app/views/pipeline_templates/show.html.erb     |   4 +
 apps/workbench/app/views/projects/_choose.html.erb |   4 +
 .../views/projects/_compute_node_status.html.erb   |   4 +
 .../views/projects/_compute_node_summary.html.erb  |   4 +
 .../projects/_index_jobs_and_pipelines.html.erb    |   4 +
 .../app/views/projects/_index_projects.html.erb    |   4 +
 .../views/projects/_show_contents_rows.html.erb    |   4 +
 .../app/views/projects/_show_dashboard.html.erb    |   4 +
 .../views/projects/_show_data_collections.html.erb |   4 +
 .../app/views/projects/_show_description.html.erb  |   4 +
 .../app/views/projects/_show_featured.html.erb     |   4 +
 .../views/projects/_show_other_objects.html.erb    |   4 +
 .../projects/_show_pipeline_templates.html.erb     |   4 +
 .../_show_pipelines_and_processes.html.erb         |   4 +
 .../app/views/projects/_show_processes.html.erb    |   4 +
 .../app/views/projects/_show_subprojects.html.erb  |   4 +
 .../app/views/projects/_show_tab_contents.html.erb |   4 +
 .../app/views/projects/_show_workflows.html.erb    |   4 +
 apps/workbench/app/views/projects/index.html.erb   |   4 +
 apps/workbench/app/views/projects/public.html.erb  |   4 +
 .../app/views/projects/remove_items.js.erb         |   4 +
 apps/workbench/app/views/projects/show.html.erb    |   4 +
 .../workbench/app/views/projects/tab_counts.js.erb |   4 +
 .../repositories/_repository_breadcrumbs.html.erb  |   4 +
 .../app/views/repositories/_show_help.html.erb     |   4 +
 .../app/views/repositories/show_blob.html.erb      |   4 +
 .../app/views/repositories/show_commit.html.erb    |   4 +
 .../app/views/repositories/show_tree.html.erb      |   4 +
 .../send_request.text.erb                          |   4 +
 .../app/views/search/_choose_rows.html.erb         |   3 +
 apps/workbench/app/views/sessions/index.html.erb   |   4 +
 .../trash_items/_create_new_object_button.html.erb |   4 +
 .../views/trash_items/_show_recent_trash.html.erb  |   4 +
 .../views/trash_items/_show_trash_rows.html.erb    |   4 +
 .../app/views/trash_items/_untrash_item.html.erb   |   4 +
 .../workbench/app/views/trash_items/index.html.erb |   4 +
 .../app/views/trash_items/untrash_items.js.erb     |   4 +
 .../app/views/user_agreements/index.html.erb       |   4 +
 .../app/views/users/_add_group_modal.html.erb      |   4 +
 .../app/views/users/_add_repository_modal.html.erb |   4 +
 .../app/views/users/_add_ssh_key_popup.html.erb    |   4 +
 .../app/views/users/_choose_rows.html.erb          |   4 +
 .../views/users/_create_new_object_button.html.erb |   4 +
 .../app/views/users/_current_token.html.erb        |   4 +
 apps/workbench/app/views/users/_home.html.erb      |   4 +
 .../app/views/users/_repositories.html.erb         | 100 +++++++++++----------
 .../app/views/users/_setup_popup.html.erb          |   4 +
 .../app/views/users/_show_activity.html.erb        |   4 +
 .../workbench/app/views/users/_show_admin.html.erb |   4 +
 apps/workbench/app/views/users/_ssh_keys.html.erb  |   4 +
 apps/workbench/app/views/users/_tables.html.erb    |   4 +
 .../app/views/users/_virtual_machines.html.erb     |   4 +
 apps/workbench/app/views/users/activity.html.erb   |   4 +
 apps/workbench/app/views/users/add_ssh_key.js.erb  |   4 +
 .../app/views/users/add_ssh_key_popup.js.erb       |   4 +
 .../app/views/users/current_token.html.erb         |   4 +
 apps/workbench/app/views/users/home.html.erb       |   4 +
 apps/workbench/app/views/users/home.js.erb         |   4 +
 apps/workbench/app/views/users/inactive.html.erb   |   4 +
 apps/workbench/app/views/users/profile.html.erb    |   4 +
 .../app/views/users/repositories.html.erb          |   4 +
 .../app/views/users/request_shell_access.js        |   4 +
 apps/workbench/app/views/users/setup.js.erb        |   4 +
 apps/workbench/app/views/users/setup_popup.js.erb  |   4 +
 apps/workbench/app/views/users/ssh_keys.html.erb   |   4 +
 apps/workbench/app/views/users/storage.html.erb    |   4 +
 .../app/views/users/virtual_machines.html.erb      |   4 +
 apps/workbench/app/views/users/welcome.html.erb    |   4 +
 .../app/views/virtual_machines/_show_help.html.erb |   4 +
 .../app/views/virtual_machines/webshell.html.erb   |   4 +
 apps/workbench/app/views/websocket/index.html.erb  |   4 +
 .../views/work_units/_component_detail.html.erb    |   4 +
 .../app/views/work_units/_progress.html.erb        |   4 +
 .../views/work_units/_show_all_processes.html.erb  |   4 +
 .../work_units/_show_all_processes_rows.html.erb   |   4 +
 .../app/views/work_units/_show_child.html.erb      |   4 +
 .../app/views/work_units/_show_component.html.erb  |   4 +
 .../app/views/work_units/_show_log.html.erb        |   4 +
 .../app/views/work_units/_show_log_link.html.erb   |   4 +
 .../app/views/work_units/_show_output.html.erb     |   4 +
 .../app/views/work_units/_show_outputs.html.erb    |   4 +
 .../app/views/work_units/_show_status.html.erb     |   4 +
 .../app/views/work_units/_show_table_data.html.erb |   4 +
 apps/workbench/app/views/work_units/index.html.erb |   4 +
 .../views/workflows/_show_chooser_preview.html.erb |   4 +
 .../app/views/workflows/_show_definition.html.erb  |   4 +
 .../app/views/workflows/_show_recent.html.erb      |   4 +
 apps/workbench/app/views/workflows/show.html.erb   |   4 +
 apps/workbench/config.ru                           |   4 +
 apps/workbench/config/application.default.yml      |   4 +
 apps/workbench/config/application.rb               |   4 +
 apps/workbench/config/application.yml.example      |   4 +
 apps/workbench/config/boot.rb                      |   4 +
 apps/workbench/config/database.yml                 |   4 +
 apps/workbench/config/environment.rb               |   4 +
 .../config/environments/development.rb.example     |   4 +
 .../config/environments/production.rb.example      |   4 +
 apps/workbench/config/environments/test.rb.example |   4 +
 .../config/initializers/backtrace_silencers.rb     |   4 +
 apps/workbench/config/initializers/inflections.rb  |   4 +
 apps/workbench/config/initializers/lograge.rb      |   4 +
 apps/workbench/config/initializers/mime_types.rb   |   4 +
 .../config/initializers/rack_mini_profile.rb       |   4 +
 apps/workbench/config/initializers/redcloth.rb     |   4 +
 .../config/initializers/secret_token.rb.example    |   4 +
 .../workbench/config/initializers/session_store.rb |   4 +
 apps/workbench/config/initializers/time_format.rb  |   4 +
 .../config/initializers/wrap_parameters.rb         |   4 +
 apps/workbench/config/load_config.rb               |   4 +
 apps/workbench/config/locales/en.yml               |   4 +
 apps/workbench/config/piwik.yml.example            |   4 +
 apps/workbench/config/routes.rb                    |   6 ++
 apps/workbench/db/schema.rb                        |   4 +
 apps/workbench/db/seeds.rb                         |   4 +
 apps/workbench/fpm-info.sh                         |   4 +
 apps/workbench/lib/app_version.rb                  |   4 +
 apps/workbench/lib/tasks/config_check.rake         |   4 +
 apps/workbench/lib/tasks/config_dump.rake          |   4 +
 apps/workbench/public/404.html                     |   4 +
 apps/workbench/public/422.html                     |   4 +
 apps/workbench/public/500.html                     |   4 +
 apps/workbench/public/browser_unsupported.js       |   4 +
 apps/workbench/public/graph-example.html           |   4 +
 .../test/controllers/actions_controller_test.rb    |   4 +
 .../api_client_authorizations_controller_test.rb   |   4 +
 .../controllers/application_controller_test.rb     |   4 +
 .../controllers/authorized_keys_controller_test.rb |   4 +
 .../controllers/collections_controller_test.rb     |  86 +++++++++++++++++-
 .../container_requests_controller_test.rb          |   4 +
 .../test/controllers/containers_controller_test.rb |   4 +
 .../test/controllers/disabled_api_test.rb          |   4 +
 .../test/controllers/groups_controller_test.rb     |   4 +
 .../test/controllers/humans_controller_test.rb     |   4 +
 .../test/controllers/job_tasks_controller_test.rb  |   4 +
 .../test/controllers/jobs_controller_test.rb       |   4 +
 .../test/controllers/keep_disks_controller_test.rb |   4 +
 .../test/controllers/links_controller_test.rb      |   4 +
 .../test/controllers/logs_controller_test.rb       |   4 +
 .../test/controllers/nodes_controller_test.rb      |   4 +
 .../pipeline_instances_controller_test.rb          |   4 +
 .../pipeline_templates_controller_test.rb          |   4 +
 .../test/controllers/projects_controller_test.rb   |   4 +
 .../controllers/repositories_controller_test.rb    |   4 +
 .../test/controllers/search_controller_test.rb     |   4 +
 .../test/controllers/sessions_controller_test.rb   |   4 +
 .../test/controllers/specimens_controller_test.rb  |   4 +
 .../test/controllers/traits_controller_test.rb     |   4 +
 .../controllers/trash_items_controller_test.rb     |  18 ++++
 .../controllers/user_agreements_controller_test.rb |   4 +
 .../test/controllers/users_controller_test.rb      |  13 ++-
 .../virtual_machines_controller_test.rb            |   4 +
 .../test/controllers/work_units_controller_test.rb |   4 +
 .../test/controllers/workflows_controller_test.rb  |   4 +
 .../test/diagnostics/container_request_test.rb     |   4 +
 apps/workbench/test/diagnostics/pipeline_test.rb   |   4 +
 apps/workbench/test/diagnostics_test_helper.rb     |   4 +
 .../test/helpers/collections_helper_test.rb        |   4 +
 apps/workbench/test/helpers/download_helper.rb     |   4 +
 .../test/helpers/fake_websocket_helper.rb          |   4 +
 .../test/helpers/pipeline_instances_helper_test.rb |   4 +
 .../test/helpers/repository_stub_helper.rb         |   4 +
 apps/workbench/test/helpers/search_helper_test.rb  |   4 +
 apps/workbench/test/helpers/share_object_helper.rb |   4 +
 .../workbench/test/integration/ajax_errors_test.rb |   4 +
 .../test/integration/anonymous_access_test.rb      |   4 +
 .../test/integration/application_layout_test.rb    |   4 +
 .../test/integration/browser_unsupported_test.rb   |   4 +
 .../test/integration/collection_upload_test.rb     |   4 +
 .../workbench/test/integration/collections_test.rb |  96 +++++++++++++++++++-
 .../test/integration/container_requests_test.rb    |   4 +
 apps/workbench/test/integration/download_test.rb   |   4 +
 apps/workbench/test/integration/errors_test.rb     |   4 +
 .../integration/filterable_infinite_scroll_test.rb |   4 +
 .../test/integration/integration_test_utils.rb     |   4 +
 apps/workbench/test/integration/jobs_test.rb       |   4 +
 apps/workbench/test/integration/logins_test.rb     |   4 +
 .../test/integration/pipeline_instances_test.rb    |   4 +
 .../test/integration/pipeline_templates_test.rb    |   4 +
 apps/workbench/test/integration/projects_test.rb   |   4 +
 .../test/integration/report_issue_test.rb          |   4 +
 .../test/integration/repositories_browse_test.rb   |   4 +
 .../test/integration/repositories_test.rb          |   4 +
 apps/workbench/test/integration/search_box_test.rb |   4 +
 apps/workbench/test/integration/smoke_test.rb      |   4 +
 apps/workbench/test/integration/trash_test.rb      |   4 +
 .../test/integration/user_agreements_test.rb       |   4 +
 .../test/integration/user_profile_test.rb          |   4 +
 .../test/integration/user_settings_menu_test.rb    |  38 ++++----
 apps/workbench/test/integration/users_test.rb      |   4 +
 .../test/integration/virtual_machines_test.rb      |   4 +
 apps/workbench/test/integration/websockets_test.rb |   4 +
 apps/workbench/test/integration/work_units_test.rb |   4 +
 apps/workbench/test/integration_helper.rb          |   4 +
 .../collection_unit_test.rb                        |   4 +
 .../collections_controller_test.rb                 |   4 +
 .../collections_perf_test.rb                       |   4 +
 apps/workbench/test/performance/browsing_test.rb   |   4 +
 apps/workbench/test/performance_test_helper.rb     |   4 +
 apps/workbench/test/support/fake_websocket.js      |   4 +
 apps/workbench/test/support/remove_file_api.js     |   4 +
 apps/workbench/test/test_helper.rb                 |   4 +
 .../workbench/test/unit/arvados_api_client_test.rb |   4 +
 apps/workbench/test/unit/arvados_base_test.rb      |   4 +
 .../test/unit/arvados_resource_list_test.rb        |   4 +
 apps/workbench/test/unit/collection_test.rb        |   4 +
 apps/workbench/test/unit/disabled_api_test.rb      |   4 +
 apps/workbench/test/unit/group_test.rb             |   4 +
 .../api_client_authorizations_helper_test.rb       |   4 +
 .../unit/helpers/authorized_keys_helper_test.rb    |   4 +
 .../test/unit/helpers/collections_helper_test.rb   |   4 +
 .../test/unit/helpers/groups_helper_test.rb        |   4 +
 .../test/unit/helpers/humans_helper_test.rb        |   4 +
 .../test/unit/helpers/job_tasks_helper_test.rb     |   4 +
 .../test/unit/helpers/jobs_helper_test.rb          |   4 +
 .../test/unit/helpers/keep_disks_helper_test.rb    |   4 +
 .../test/unit/helpers/links_helper_test.rb         |   4 +
 .../test/unit/helpers/logs_helper_test.rb          |   4 +
 .../test/unit/helpers/nodes_helper_test.rb         |   4 +
 .../unit/helpers/pipeline_instances_helper_test.rb |   4 +
 .../unit/helpers/pipeline_templates_helper_test.rb |   4 +
 .../test/unit/helpers/projects_helper_test.rb      |   4 +
 .../test/unit/helpers/repositories_helper_test.rb  |   4 +
 .../test/unit/helpers/sessions_helper_test.rb      |   4 +
 .../test/unit/helpers/specimens_helper_test.rb     |   4 +
 .../test/unit/helpers/traits_helper_test.rb        |   4 +
 .../unit/helpers/user_agreements_helper_test.rb    |   4 +
 .../test/unit/helpers/users_helper_test.rb         |   4 +
 .../unit/helpers/virtual_machines_helper_test.rb   |   4 +
 apps/workbench/test/unit/job_test.rb               |   4 +
 apps/workbench/test/unit/link_test.rb              |   4 +
 apps/workbench/test/unit/pipeline_instance_test.rb |   4 +
 apps/workbench/test/unit/repository_test.rb        |   4 +
 apps/workbench/test/unit/user_test.rb              |   4 +
 apps/workbench/test/unit/work_unit_test.rb         |   4 +
 backports/deb-fuse/fpm-info.sh                     |   4 +
 backports/deb-libfuse-dev/fpm-info.sh              |   4 +
 backports/python-apache-libcloud/fpm-info.sh       |   3 +
 backports/python-ciso8601/fpm-info.sh              |   4 +
 backports/python-llfuse/fpm-info.sh                |   4 +
 backports/python-pycrypto/fpm-info.sh              |   4 +
 backports/python-pycurl/fpm-info.sh                |   4 +
 build/build-dev-docker-jobs-image.sh               |   3 +
 build/build.list                                   |   4 +
 build/check-copyright-notices                      |  34 ++++---
 build/create-plot-data-from-log.sh                 |   3 +
 build/go-python-package-scripts/postinst           |   3 +
 build/go-python-package-scripts/prerm              |   3 +
 build/libcloud-pin.sh                              |   4 +
 build/package-build-dockerfiles/Makefile           |   4 +
 .../build-all-build-containers.sh                  |   3 +
 build/package-build-dockerfiles/centos7/Dockerfile |   4 +
 build/package-build-dockerfiles/debian8/Dockerfile |   4 +
 .../ubuntu1204/Dockerfile                          |   4 +
 .../ubuntu1404/Dockerfile                          |   4 +
 .../ubuntu1604/Dockerfile                          |   4 +
 build/package-test-dockerfiles/centos7/Dockerfile  |   4 +
 build/package-test-dockerfiles/debian8/Dockerfile  |   4 +
 .../package-test-dockerfiles/ubuntu1204/Dockerfile |   4 +
 .../package-test-dockerfiles/ubuntu1404/Dockerfile |   4 +
 .../package-test-dockerfiles/ubuntu1604/Dockerfile |   4 +
 build/package-testing/common-test-packages.sh      |   3 +
 .../common-test-rails-server-package.sh            |   3 +
 build/package-testing/deb-common-test-packages.sh  |   3 +
 build/package-testing/rpm-common-test-packages.sh  |   3 +
 .../test-package-arvados-node-manager.sh           |   4 +
 ...t-package-python27-python-arvados-cwl-runner.sh |   3 +
 .../test-package-python27-python-arvados-fuse.sh   |   3 +
 ...ackage-python27-python-arvados-python-client.sh |   3 +
 build/rails-package-scripts/README.md              |   4 +
 build/rails-package-scripts/arvados-api-server.sh  |   4 +
 build/rails-package-scripts/arvados-sso-server.sh  |   4 +
 build/rails-package-scripts/arvados-workbench.sh   |   4 +
 build/rails-package-scripts/postinst.sh            |   4 +
 build/rails-package-scripts/postrm.sh              |   4 +
 build/rails-package-scripts/prerm.sh               |   4 +
 build/rails-package-scripts/step2.sh               |   4 +
 build/run-build-docker-images.sh                   |   3 +
 build/run-build-docker-jobs-image.sh               |   3 +
 build/run-build-packages-all-targets.sh            |   3 +
 build/run-build-packages-one-target.sh             |   3 +
 build/run-build-packages-python-and-ruby.sh        |   3 +
 build/run-build-packages-sso.sh                    |   3 +
 build/run-build-packages.sh                        |   3 +
 build/run-build-test-packages-one-target.sh        |   3 +
 build/run-library.sh                               |   3 +
 build/run-tests.sh                                 |   3 +
 crunch_scripts/GATK2-VariantFiltration             |   3 +
 crunch_scripts/GATK2-bqsr                          |   3 +
 crunch_scripts/GATK2-merge-call                    |   3 +
 crunch_scripts/GATK2-realign                       |   3 +
 crunch_scripts/arvados-bcbio-nextgen.py            |   3 +
 crunch_scripts/arvados_bwa.py                      |   4 +
 crunch_scripts/arvados_gatk2.py                    |   4 +
 crunch_scripts/arvados_ipc.py                      |   4 +
 crunch_scripts/arvados_picard.py                   |   4 +
 crunch_scripts/arvados_samtools.py                 |   4 +
 crunch_scripts/bwa-aln                             |   3 +
 crunch_scripts/bwa-index                           |   3 +
 crunch_scripts/collection-merge                    |   3 +
 crunch_scripts/crunchrunner                        |   3 +
 crunch_scripts/crunchutil/robust_put.py            |   4 +
 crunch_scripts/crunchutil/subst.py                 |   4 +
 crunch_scripts/crunchutil/vwd.py                   |   4 +
 crunch_scripts/cwl-runner                          |   3 +
 crunch_scripts/decompress-all.py                   |   3 +
 crunch_scripts/file-select                         |   3 +
 crunch_scripts/grep                                |   3 +
 crunch_scripts/hash                                |   3 +
 crunch_scripts/pgp-survey-import                   |   3 +
 crunch_scripts/pgp-survey-parse                    |   3 +
 crunch_scripts/picard-gatk2-prep                   |   3 +
 crunch_scripts/pyrtg.py                            |   4 +
 crunch_scripts/rtg-fasta2sdf                       |   3 +
 crunch_scripts/rtg-fastq2sdf                       |   3 +
 crunch_scripts/rtg-map                             |   3 +
 crunch_scripts/rtg-snp                             |   3 +
 crunch_scripts/run-command                         |   3 +
 crunch_scripts/split-fastq.py                      |   3 +
 crunch_scripts/test/task_output_dir                |   3 +
 doc/Gemfile                                        |   4 +
 doc/README.textile                                 |   4 +
 doc/Rakefile                                       |   3 +
 doc/_config.yml                                    |   5 ++
 doc/_includes/_0_filter_py.liquid                  |   5 ++
 doc/_includes/_alert-incomplete.liquid             |   6 ++
 doc/_includes/_alert_stub.liquid                   |   6 ++
 doc/_includes/_arv_copy_expectations.liquid        |   6 ++
 doc/_includes/_arv_run_redirection.liquid          |   6 ++
 doc/_includes/_compute_ping_rb.liquid              |   5 ++
 doc/_includes/_concurrent_hash_script_py.liquid    |   5 ++
 .../_container_runtime_constraints.liquid          |   6 ++
 .../_container_scheduling_parameters.liquid        |   6 ++
 doc/_includes/_crunch1only_begin.liquid            |   6 ++
 doc/_includes/_crunch1only_end.liquid              |   6 ++
 doc/_includes/_events_py.liquid                    |   5 ++
 doc/_includes/_example_docker.liquid               |   6 ++
 doc/_includes/_example_sdk_go.liquid               |   6 ++
 doc/_includes/_example_sdk_go_imports.liquid       |   6 ++
 doc/_includes/_install_compute_docker.liquid       |   6 ++
 doc/_includes/_install_compute_fuse.liquid         |   6 ++
 doc/_includes/_install_debian_key.liquid           |   6 ++
 doc/_includes/_install_docker_cleaner.liquid       |   6 ++
 doc/_includes/_install_git.liquid                  |   6 ++
 doc/_includes/_install_git_curl.liquid             |   6 ++
 doc/_includes/_install_postgres_database.liquid    |   6 ++
 doc/_includes/_install_rails_command.liquid        |   6 ++
 doc/_includes/_install_rails_reconfigure.liquid    |   6 ++
 doc/_includes/_install_redhat_key.liquid           |  15 +++-
 doc/_includes/_install_ruby_and_bundler.liquid     |   6 ++
 doc/_includes/_install_runit.liquid                |   6 ++
 doc/_includes/_mount_types.liquid                  |   6 ++
 doc/_includes/_navbar_left.liquid                  |   6 ++
 doc/_includes/_navbar_top.liquid                   |   6 ++
 doc/_includes/_note_python_sc.liquid               |   6 ++
 doc/_includes/_notebox_begin.liquid                |   6 ++
 doc/_includes/_notebox_begin_warning.liquid        |   6 ++
 doc/_includes/_notebox_end.liquid                  |   6 ++
 doc/_includes/_pipeline_deprecation_notice.liquid  |   6 ++
 doc/_includes/_run_command_foreach_example.liquid  |   6 ++
 doc/_includes/_run_command_simple_example.liquid   |   6 ++
 doc/_includes/_run_md5sum_py.liquid                |   5 ++
 doc/_includes/_skip_sso_server_install.liquid      |   6 ++
 doc/_includes/_ssh_addkey.liquid                   |   6 ++
 doc/_includes/_ssh_intro.liquid                    |   6 ++
 .../_tutorial_bwa_sortsam_pipeline.liquid          |   6 ++
 doc/_includes/_tutorial_cluster_name.liquid        |   6 ++
 doc/_includes/_tutorial_expectations.liquid        |   6 ++
 .../_tutorial_expectations_workstation.liquid      |   6 ++
 .../_tutorial_git_repo_expectations.liquid         |   6 ++
 doc/_includes/_tutorial_hash_script_py.liquid      |   5 ++
 doc/_includes/_tutorial_submit_job.liquid          |   6 ++
 doc/_includes/_webring.liquid                      |   6 ++
 doc/_includes/_what_is_cwl.liquid                  |   6 ++
 doc/_layouts/default.html.liquid                   |   6 ++
 doc/api/crunch-scripts.html.textile.liquid         |   5 ++
 doc/api/execution.html.textile.liquid              |   5 ++
 doc/api/index.html.textile.liquid                  |   5 ++
 doc/api/methods.html.textile.liquid                |   5 ++
 .../api_client_authorizations.html.textile.liquid  |   5 ++
 doc/api/methods/api_clients.html.textile.liquid    |   5 ++
 .../methods/authorized_keys.html.textile.liquid    |   5 ++
 doc/api/methods/collections.html.textile.liquid    |   5 ++
 .../methods/container_requests.html.textile.liquid |   5 ++
 doc/api/methods/containers.html.textile.liquid     |   5 ++
 doc/api/methods/groups.html.textile.liquid         |   5 ++
 doc/api/methods/humans.html.textile.liquid         |   5 ++
 doc/api/methods/job_tasks.html.textile.liquid      |   5 ++
 doc/api/methods/jobs.html.textile.liquid           |   5 ++
 doc/api/methods/keep_disks.html.textile.liquid     |   5 ++
 doc/api/methods/keep_services.html.textile.liquid  |   5 ++
 doc/api/methods/links.html.textile.liquid          |   5 ++
 doc/api/methods/logs.html.textile.liquid           |   5 ++
 doc/api/methods/nodes.html.textile.liquid          |   5 ++
 .../methods/pipeline_instances.html.textile.liquid |   5 ++
 .../methods/pipeline_templates.html.textile.liquid |   5 ++
 doc/api/methods/repositories.html.textile.liquid   |   5 ++
 doc/api/methods/specimens.html.textile.liquid      |   5 ++
 doc/api/methods/traits.html.textile.liquid         |   5 ++
 doc/api/methods/users.html.textile.liquid          |   5 ++
 .../methods/virtual_machines.html.textile.liquid   |   5 ++
 doc/api/methods/workflows.html.textile.liquid      |   5 ++
 doc/api/permission-model.html.textile.liquid       |   5 ++
 doc/api/requests.html.textile.liquid               |   5 ++
 doc/api/resources.html.textile.liquid              |   5 ++
 doc/api/storage.html.textile.liquid                |   5 ++
 doc/api/tokens.html.textile.liquid                 |   5 ++
 doc/css/badges.css                                 |   4 +
 doc/css/button-override.css                        |   4 +
 doc/css/carousel-override.css                      |   4 +
 doc/css/code.css                                   |   4 +
 doc/css/nav-list.css                               |   4 +
 doc/examples/ruby/list-active-nodes.rb             |   3 +
 doc/gen_api_method_docs.py                         |   3 +
 doc/gen_api_schema_docs.py                         |   3 +
 doc/images/Arvados_Permissions.svg                 |   3 +
 doc/images/Crunch_dispatch.svg                     |   3 +
 doc/images/Keep_manifests.svg                      |   3 +
 doc/images/Keep_reading_writing_block.svg          |   3 +
 doc/images/Keep_rendezvous_hashing.svg             |   3 +
 doc/images/Session_Establishment.svg               |   3 +
 doc/images/trash-button-topnav.png                 | Bin 0 -> 3531 bytes
 doc/index.html.liquid                              |   5 ++
 doc/install/arvbox.html.textile.liquid             |   5 ++
 doc/install/cheat_sheet.html.textile.liquid        |   5 ++
 doc/install/client.html.textile.liquid             |   5 ++
 ...onfigure-azure-blob-storage.html.textile.liquid |   5 ++
 ...opy_pipeline_from_curoverse.html.textile.liquid |   5 ++
 .../create-standard-objects.html.textile.liquid    |   5 ++
 .../install-compute-node.html.textile.liquid       |   5 ++
 .../install-dispatch.html.textile.liquid           |   5 ++
 .../install-prerequisites.html.textile.liquid      |   5 ++
 .../install-slurm.html.textile.liquid              |   5 ++
 .../crunch2-slurm/install-test.html.textile.liquid |   5 ++
 doc/install/index.html.textile.liquid              |   5 ++
 doc/install/install-api-server.html.textile.liquid |   5 ++
 .../install-arv-git-httpd.html.textile.liquid      |   5 ++
 .../install-compute-node.html.textile.liquid       |   5 ++
 .../install-compute-ping.html.textile.liquid       |   5 ++
 .../install-crunch-dispatch.html.textile.liquid    |   5 ++
 .../install-keep-balance.html.textile.liquid       |   5 ++
 doc/install/install-keep-web.html.textile.liquid   |   5 ++
 doc/install/install-keepproxy.html.textile.liquid  |   5 ++
 doc/install/install-keepstore.html.textile.liquid  |   5 ++
 .../install-manual-overview.html.textile.liquid    |   5 ++
 ...nstall-manual-prerequisites.html.textile.liquid |  15 ++--
 .../install-nodemanager.html.textile.liquid        |   5 ++
 doc/install/install-postgresql.html.textile.liquid |   5 ++
 .../install-shell-server.html.textile.liquid       |   5 ++
 doc/install/install-sso.html.textile.liquid        |   5 ++
 .../install-workbench-app.html.textile.liquid      |   5 ++
 doc/install/install-ws.html.textile.liquid         |   5 ++
 doc/install/migrate-docker19.html.textile.liquid   |   5 ++
 doc/install/pre-built-docker.html.textile.liquid   |   5 ++
 doc/sdk/cli/index.html.textile.liquid              |   5 ++
 doc/sdk/cli/install.html.textile.liquid            |   5 ++
 doc/sdk/cli/reference.html.textile.liquid          |   5 ++
 doc/sdk/cli/subcommands.html.textile.liquid        |   5 ++
 doc/sdk/go/example.html.textile.liquid             |   5 ++
 doc/sdk/go/index.html.textile.liquid               |   5 ++
 doc/sdk/index.html.textile.liquid                  |   5 ++
 doc/sdk/java/example.html.textile.liquid           |   5 ++
 doc/sdk/java/index.html.textile.liquid             |   5 ++
 doc/sdk/perl/example.html.textile.liquid           |   5 ++
 doc/sdk/perl/index.html.textile.liquid             |   5 ++
 .../crunch-utility-libraries.html.textile.liquid   |   5 ++
 doc/sdk/python/events.html.textile.liquid          |   5 ++
 doc/sdk/python/example.html.textile.liquid         |   5 ++
 doc/sdk/python/python.html.textile.liquid          |   5 ++
 doc/sdk/python/sdk-python.html.textile.liquid      |   5 ++
 doc/sdk/ruby/example.html.textile.liquid           |   5 ++
 doc/sdk/ruby/index.html.textile.liquid             |   5 ++
 .../firstpipeline.html.textile.liquid              |   5 ++
 .../getting_started/nextsteps.html.textile.liquid  |   5 ++
 .../publicproject.html.textile.liquid              |   5 ++
 .../getting_started/sharedata.html.textile.liquid  |   5 ++
 doc/start/index.html.textile.liquid                |   5 ++
 doc/user/copying/copying.html.textile.liquid       |   5 ++
 doc/user/cwl/bwa-mem/bwa-mem-input-local.yml       |   4 +
 doc/user/cwl/bwa-mem/bwa-mem-input.yml             |   4 +
 doc/user/cwl/bwa-mem/bwa-mem-template.yml          |   4 +
 doc/user/cwl/bwa-mem/bwa-mem.cwl                   |   4 +
 doc/user/cwl/cwl-extensions.html.textile.liquid    |  19 +++-
 doc/user/cwl/cwl-run-options.html.textile.liquid   |   5 ++
 doc/user/cwl/cwl-runner.html.textile.liquid        |   5 ++
 doc/user/cwl/cwl-style.html.textile.liquid         |   5 ++
 .../examples/crunch-examples.html.textile.liquid   |   5 ++
 .../check-environment.html.textile.liquid          |   5 ++
 .../getting_started/community.html.textile.liquid  |   5 ++
 .../ssh-access-unix.html.textile.liquid            |   5 ++
 .../ssh-access-windows.html.textile.liquid         |   5 ++
 .../vm-login-with-webshell.html.textile.liquid     |   5 ++
 .../getting_started/workbench.html.textile.liquid  |   5 ++
 doc/user/index.html.textile.liquid                 |   5 ++
 doc/user/reference/api-tokens.html.textile.liquid  |   5 ++
 .../reference/job-pipeline-ref.html.textile.liquid |   5 ++
 doc/user/topics/arv-copy.html.textile.liquid       |   5 ++
 doc/user/topics/arv-docker.html.textile.liquid     |   5 ++
 doc/user/topics/arv-run.html.textile.liquid        |   5 ++
 doc/user/topics/arv-web.html.textile.liquid        |   5 ++
 .../crunch-tools-overview.html.textile.liquid      |   5 ++
 doc/user/topics/keep.html.textile.liquid           |   5 ++
 doc/user/topics/run-command.html.textile.liquid    |   5 ++
 ...nning-pipeline-command-line.html.textile.liquid |   5 ++
 ...rial-gatk-variantfiltration.html.textile.liquid |   5 ++
 doc/user/topics/tutorial-job1.html.textile.liquid  |   5 ++
 .../topics/tutorial-parallel.html.textile.liquid   |   5 ++
 .../tutorial-trait-search.html.textile.liquid      |   5 ++
 .../add-new-repository.html.textile.liquid         |   5 ++
 .../git-arvados-guide.html.textile.liquid          |   5 ++
 .../tutorials/intro-crunch.html.textile.liquid     |   5 ++
 .../running-external-program.html.textile.liquid   |   5 ++
 .../tutorial-firstscript.html.textile.liquid       |   5 ++
 ...l-keep-collection-lifecycle.html.textile.liquid |  71 +++++++++++++++
 .../tutorial-keep-get.html.textile.liquid          |   5 ++
 .../tutorial-keep-mount.html.textile.liquid        |   5 ++
 .../tutorials/tutorial-keep.html.textile.liquid    |   5 ++
 .../tutorial-submit-job.html.textile.liquid        |   5 ++
 ...tutorial-workflow-workbench.html.textile.liquid |   5 ++
 .../writing-cwl-workflow.html.textile.liquid       |   5 ++
 doc/zenweb-liquid.rb                               |   4 +
 doc/zenweb-textile.rb                              |   4 +
 docker/jobs/Dockerfile                             |   4 +
 docker/migrate-docker19/Dockerfile                 |   4 +
 docker/migrate-docker19/build.sh                   |   4 +
 docker/migrate-docker19/dnd.sh                     |   3 +
 docker/migrate-docker19/migrate.sh                 |   3 +
 lib/crunchstat/crunchstat.go                       |   4 +
 lib/crunchstat/crunchstat_test.go                  |   6 +-
 sdk/cli/Gemfile                                    |   4 +
 sdk/cli/Rakefile                                   |   4 +
 sdk/cli/arvados-cli.gemspec                        |   4 +
 sdk/cli/bin/arv                                    |   3 +
 sdk/cli/bin/arv-crunch-job                         |   4 +
 sdk/cli/bin/arv-run-pipeline-instance              |   3 +
 sdk/cli/bin/arv-tag                                |   3 +
 sdk/cli/bin/crunch-job                             |   4 +
 sdk/cli/test/binstub_arv-mount/arv-mount           |   4 +
 sdk/cli/test/binstub_clean_fail/arv-mount          |   4 +
 sdk/cli/test/binstub_docker_noop/docker.io         |   4 +
 sdk/cli/test/binstub_output_coll_owner/python      |   3 +
 sdk/cli/test/binstub_sanity_check/docker.io        |   4 +
 sdk/cli/test/binstub_sanity_check/true             |   4 +
 sdk/cli/test/test_arv-collection-create.rb         |   4 +
 sdk/cli/test/test_arv-get.rb                       |   4 +
 sdk/cli/test/test_arv-keep-get.rb                  |   4 +
 sdk/cli/test/test_arv-keep-put.rb                  |   4 +
 sdk/cli/test/test_arv-run-pipeline-instance.rb     |   4 +
 sdk/cli/test/test_arv-tag.rb                       |   4 +
 sdk/cli/test/test_arv-ws.rb                        |   4 +
 sdk/cli/test/test_crunch-job.rb                    |   4 +
 sdk/cwl/MANIFEST.in                                |   4 +
 sdk/cwl/README.rst                                 |   4 +
 sdk/cwl/arvados_cwl/__init__.py                    |   6 +-
 sdk/cwl/arvados_cwl/arv-cwl-schema.yml             |  20 +++++
 sdk/cwl/arvados_cwl/arvcontainer.py                |  12 ++-
 sdk/cwl/arvados_cwl/arvdocker.py                   |   4 +
 sdk/cwl/arvados_cwl/arvjob.py                      |  32 +++++--
 sdk/cwl/arvados_cwl/arvtool.py                     |   4 +
 sdk/cwl/arvados_cwl/arvworkflow.py                 |   4 +
 sdk/cwl/arvados_cwl/crunch_script.py               |   4 +
 sdk/cwl/arvados_cwl/done.py                        |   4 +
 sdk/cwl/arvados_cwl/fsaccess.py                    |   4 +
 sdk/cwl/arvados_cwl/pathmapper.py                  |   4 +
 sdk/cwl/arvados_cwl/perf.py                        |   4 +
 sdk/cwl/arvados_cwl/runner.py                      |   4 +
 sdk/cwl/bin/arvados-cwl-runner                     |   3 +
 sdk/cwl/bin/cwl-runner                             |   3 +
 sdk/cwl/gittaggers.py                              |   4 +
 sdk/cwl/setup.py                                   |   3 +
 sdk/cwl/test_with_arvbox.sh                        |   3 +
 sdk/cwl/tests/__init__.py                          |   4 +
 sdk/cwl/tests/arvados-tests.sh                     |   4 +
 sdk/cwl/tests/arvados-tests.yml                    |   9 ++
 sdk/cwl/tests/cat.cwl                              |   4 +
 .../collection_per_tool/collection_per_tool.cwl    |   4 +
 .../collection_per_tool_packed.cwl                 |   4 +
 sdk/cwl/tests/collection_per_tool/step1.cwl        |   4 +
 sdk/cwl/tests/collection_per_tool/step2.cwl        |   4 +
 sdk/cwl/tests/dir-job.yml                          |   4 +
 sdk/cwl/tests/dir-job2.yml                         |   4 +
 sdk/cwl/tests/hw.py                                |   4 +
 sdk/cwl/tests/keep-dir-test-input.cwl              |   4 +
 sdk/cwl/tests/keep-dir-test-input2.cwl             |   4 +
 sdk/cwl/tests/keep-dir-test-input3.cwl             |   4 +
 sdk/cwl/tests/listing-job.yml                      |   4 +
 sdk/cwl/tests/matcher.py                           |   9 ++
 sdk/cwl/tests/mock_discovery.py                    |   4 +
 sdk/cwl/tests/noreuse.cwl                          |  16 ++++
 sdk/cwl/tests/octo.yml                             |   4 +
 sdk/cwl/tests/runner.sh                            |   4 +
 sdk/cwl/tests/test_container.py                    |  11 ++-
 sdk/cwl/tests/test_fsaccess.py                     |   4 +
 sdk/cwl/tests/test_job.py                          |  24 ++++-
 sdk/cwl/tests/test_make_output.py                  |   4 +
 sdk/cwl/tests/test_pathmapper.py                   |   4 +
 sdk/cwl/tests/test_submit.py                       |  12 ++-
 sdk/cwl/tests/test_urljoin.py                      |   4 +
 sdk/cwl/tests/tool/submit_tool.cwl                 |   4 +
 sdk/cwl/tests/wf/expect_arvworkflow.cwl            |   4 +
 sdk/cwl/tests/wf/expect_packed.cwl                 |   4 +
 sdk/cwl/tests/wf/inputs_test.cwl                   |   4 +
 sdk/cwl/tests/wf/listing_deep.cwl                  |   4 +
 sdk/cwl/tests/wf/listing_none.cwl                  |   4 +
 sdk/cwl/tests/wf/listing_shallow.cwl               |   4 +
 sdk/cwl/tests/wf/scatter2.cwl                      |   4 +
 sdk/cwl/tests/wf/scatter2_subwf.cwl                |   4 +
 sdk/cwl/tests/wf/submit_keepref_wf.cwl             |   4 +
 sdk/cwl/tests/wf/submit_wf.cwl                     |   4 +
 sdk/cwl/tests/wf/submit_wf_packed.cwl              |   4 +
 sdk/dev-jobs.dockerfile                            |   4 +
 sdk/go/arvados/api_client_authorization.go         |   4 +
 sdk/go/arvados/client.go                           |   4 +
 sdk/go/arvados/client_test.go                      |   4 +
 sdk/go/arvados/collection.go                       |   4 +
 sdk/go/arvados/collection_fs.go                    |   4 +
 sdk/go/arvados/collection_fs_test.go               |   4 +
 sdk/go/arvados/container.go                        |   4 +
 sdk/go/arvados/doc.go                              |   4 +
 sdk/go/arvados/duration.go                         |   4 +
 sdk/go/arvados/error.go                            |   4 +
 sdk/go/arvados/keep_block.go                       |   4 +
 sdk/go/arvados/keep_service.go                     |   4 +
 sdk/go/arvados/log.go                              |   4 +
 sdk/go/arvados/resource_list.go                    |   4 +
 sdk/go/arvados/resource_list_test.go               |   4 +
 sdk/go/arvados/user.go                             |   4 +
 sdk/go/arvados/workflow.go                         |   4 +
 sdk/go/arvadosclient/arvadosclient.go              |   4 +
 sdk/go/arvadosclient/arvadosclient_test.go         |   4 +
 sdk/go/arvadosclient/pool.go                       |   4 +
 sdk/go/arvadostest/fixtures.go                     |   5 ++
 sdk/go/arvadostest/run_servers.go                  |   4 +
 sdk/go/arvadostest/stub.go                         |   4 +
 sdk/go/auth/auth.go                                |   6 +-
 sdk/go/auth/basic_auth_go13.go                     |  28 ------
 sdk/go/auth/basic_auth_go14.go                     |  11 ---
 sdk/go/auth/basic_auth_test.go                     |  30 -------
 sdk/go/blockdigest/blockdigest.go                  |   4 +
 sdk/go/blockdigest/blockdigest_test.go             |   4 +
 sdk/go/blockdigest/testing.go                      |   4 +
 sdk/go/config/dump.go                              |   4 +
 sdk/go/config/load.go                              |   4 +
 sdk/go/crunchrunner/crunchrunner.go                |   4 +
 sdk/go/crunchrunner/crunchrunner_test.go           |   4 +
 sdk/go/crunchrunner/upload.go                      |   4 +
 sdk/go/crunchrunner/upload_test.go                 |   4 +
 sdk/go/ctxlog/log.go                               |   4 +
 sdk/go/dispatch/dispatch.go                        |   4 +
 sdk/go/dispatch/dispatch_test.go                   |   4 +
 sdk/go/dispatch/throttle.go                        |   4 +
 sdk/go/dispatch/throttle_test.go                   |   4 +
 sdk/go/httpserver/httpserver.go                    |   4 +
 sdk/go/httpserver/id_generator.go                  |   4 +
 sdk/go/httpserver/log.go                           |   4 +
 sdk/go/httpserver/request_limiter.go               |   4 +
 sdk/go/httpserver/request_limiter_test.go          |   4 +
 sdk/go/httpserver/responsewriter.go                |   4 +
 sdk/go/keepclient/block_cache.go                   |   4 +
 sdk/go/keepclient/collectionreader.go              |   4 +
 sdk/go/keepclient/collectionreader_test.go         |   4 +
 sdk/go/keepclient/discover.go                      |   4 +
 sdk/go/keepclient/discover_test.go                 |   4 +
 sdk/go/keepclient/hashcheck.go                     |   4 +
 sdk/go/keepclient/hashcheck_test.go                |   4 +
 sdk/go/keepclient/keepclient.go                    |   4 +
 sdk/go/keepclient/keepclient_test.go               |   4 +
 sdk/go/keepclient/perms.go                         |   4 +
 sdk/go/keepclient/perms_test.go                    |   4 +
 sdk/go/keepclient/root_sorter.go                   |   4 +
 sdk/go/keepclient/root_sorter_test.go              |   4 +
 sdk/go/keepclient/support.go                       |   4 +
 sdk/go/manifest/manifest.go                        |   4 +
 sdk/go/manifest/manifest_test.go                   |   4 +
 sdk/go/stats/duration.go                           |   4 +
 sdk/go/stats/duration_test.go                      |   4 +
 sdk/go/streamer/streamer.go                        |   4 +
 sdk/go/streamer/streamer_test.go                   |   4 +
 sdk/go/streamer/transfer.go                        |   4 +
 sdk/java/ArvadosSDKJavaExample.java                |   4 +
 sdk/java/ArvadosSDKJavaExampleWithPrompt.java      |   4 +
 .../src/main/java/org/arvados/sdk/Arvados.java     |   4 +
 .../main/java/org/arvados/sdk/MethodDetails.java   |   4 +
 .../java/org/arvados/sdk/java/ArvadosTest.java     |   4 +
 sdk/pam/.dockerignore                              |   4 +
 sdk/pam/Dockerfile                                 |   4 +
 sdk/pam/MANIFEST.in                                |   4 +
 sdk/pam/README.rst                                 |   4 +
 sdk/pam/arvados_pam/__init__.py                    |   4 +
 sdk/pam/arvados_pam/auth_event.py                  |   4 +
 sdk/pam/fpm-info.sh                                |   4 +
 sdk/pam/integration_tests/test_pam.py              |   4 +
 sdk/pam/lib/libpam_arvados.py                      |   4 +
 sdk/pam/setup.py                                   |   3 +
 sdk/pam/tests/integration_test.pl                  |   3 +
 sdk/pam/tests/mocker.py                            |   4 +
 sdk/pam/tests/test_auth_event.py                   |   4 +
 sdk/pam/tests/test_pam_sm.py                       |   4 +
 sdk/perl/Makefile.PL                               |   3 +
 sdk/perl/lib/Arvados.pm                            |   4 +
 sdk/perl/lib/Arvados/Request.pm                    |   4 +
 sdk/perl/lib/Arvados/ResourceAccessor.pm           |   4 +
 sdk/perl/lib/Arvados/ResourceMethod.pm             |   4 +
 sdk/perl/lib/Arvados/ResourceProxy.pm              |   4 +
 sdk/perl/lib/Arvados/ResourceProxyList.pm          |   4 +
 sdk/python/MANIFEST.in                             |   4 +
 sdk/python/README.rst                              |   4 +
 sdk/python/arvados/__init__.py                     |   4 +
 sdk/python/arvados/_normalize_stream.py            |   4 +
 sdk/python/arvados/_ranges.py                      |   4 +
 sdk/python/arvados/_version.py                     |   4 +
 sdk/python/arvados/api.py                          |   4 +
 sdk/python/arvados/arvfile.py                      |   4 +
 sdk/python/arvados/cache.py                        |   4 +
 sdk/python/arvados/collection.py                   |   4 +
 sdk/python/arvados/commands/_util.py               |   4 +
 sdk/python/arvados/commands/arv_copy.py            |   4 +
 sdk/python/arvados/commands/get.py                 |   3 +
 sdk/python/arvados/commands/keepdocker.py          |   4 +
 sdk/python/arvados/commands/ls.py                  |   4 +
 sdk/python/arvados/commands/migrate19.py           |   4 +
 sdk/python/arvados/commands/put.py                 |  60 +++++++------
 sdk/python/arvados/commands/run.py                 |   4 +
 sdk/python/arvados/commands/ws.py                  |   4 +
 sdk/python/arvados/config.py                       |   4 +
 sdk/python/arvados/crunch.py                       |   4 +
 sdk/python/arvados/errors.py                       |   4 +
 sdk/python/arvados/events.py                       |   4 +
 sdk/python/arvados/keep.py                         |   4 +
 sdk/python/arvados/retry.py                        |   4 +
 sdk/python/arvados/safeapi.py                      |   4 +
 sdk/python/arvados/stream.py                       |   4 +
 sdk/python/arvados/timer.py                        |   4 +
 sdk/python/arvados/util.py                         |   4 +
 sdk/python/bin/arv-copy                            |   3 +
 sdk/python/bin/arv-get                             |   3 +
 sdk/python/bin/arv-keepdocker                      |   3 +
 sdk/python/bin/arv-ls                              |   3 +
 sdk/python/bin/arv-migrate-docker19                |   3 +
 sdk/python/bin/arv-normalize                       |   3 +
 sdk/python/bin/arv-put                             |   3 +
 sdk/python/bin/arv-run                             |   3 +
 sdk/python/bin/arv-ws                              |   3 +
 sdk/python/gittaggers.py                           |   4 +
 sdk/python/setup.py                                |   3 +
 sdk/python/tests/arvados_testutil.py               |   4 +
 sdk/python/tests/keepstub.py                       |   4 +
 sdk/python/tests/manifest_examples.py              |   4 +
 sdk/python/tests/nginx.conf                        |   4 +
 .../tests/performance/performance_profiler.py      |   4 +
 sdk/python/tests/performance/test_a_sample.py      |   4 +
 sdk/python/tests/run_test_server.py                |   4 +
 sdk/python/tests/slow_test.py                      |   4 +
 sdk/python/tests/test_api.py                       |   4 +
 sdk/python/tests/test_arv_copy.py                  |   4 +
 sdk/python/tests/test_arv_get.py                   |   4 +
 sdk/python/tests/test_arv_keepdocker.py            |   4 +
 sdk/python/tests/test_arv_ls.py                    |   4 +
 sdk/python/tests/test_arv_normalize.py             |   4 +
 sdk/python/tests/test_arv_put.py                   |  14 ++-
 sdk/python/tests/test_arv_run.py                   |   4 +
 sdk/python/tests/test_arv_ws.py                    |   4 +
 sdk/python/tests/test_arvfile.py                   |   4 +
 sdk/python/tests/test_benchmark_collections.py     |   4 +
 sdk/python/tests/test_cache.py                     |   4 +
 sdk/python/tests/test_collections.py               |   4 +
 sdk/python/tests/test_crunch.py                    |   4 +
 sdk/python/tests/test_errors.py                    |   4 +
 sdk/python/tests/test_events.py                    |   4 +
 sdk/python/tests/test_keep_client.py               |   4 +
 sdk/python/tests/test_keep_locator.py              |   4 +
 sdk/python/tests/test_pipeline_template.py         |   4 +
 sdk/python/tests/test_retry.py                     |   4 +
 sdk/python/tests/test_retry_job_helpers.py         |   4 +
 sdk/python/tests/test_sdk.py                       |   4 +
 sdk/python/tests/test_stream.py                    |   4 +
 sdk/python/tests/test_util.py                      |   4 +
 sdk/ruby/Gemfile                                   |   4 +
 sdk/ruby/Rakefile                                  |   4 +
 sdk/ruby/arvados.gemspec                           |   4 +
 sdk/ruby/lib/arvados.rb                            |   4 +
 sdk/ruby/lib/arvados/collection.rb                 |   4 +
 sdk/ruby/lib/arvados/google_api_client.rb          |   4 +
 sdk/ruby/lib/arvados/keep.rb                       |   4 +
 sdk/ruby/test/sdk_fixtures.rb                      |   4 +
 sdk/ruby/test/test_big_request.rb                  |   4 +
 sdk/ruby/test/test_collection.rb                   |   4 +
 sdk/ruby/test/test_keep_manifest.rb                |   4 +
 services/api/Gemfile                               |   4 +
 services/api/Rakefile                              |   4 +
 .../stylesheets/api_client_authorizations.css.scss |   4 +
 .../app/assets/stylesheets/api_clients.css.scss    |   4 +
 .../api/app/assets/stylesheets/application.css     |   4 +
 .../assets/stylesheets/authorized_keys.css.scss    |   4 +
 .../app/assets/stylesheets/collections.css.scss    |   4 +
 .../assets/stylesheets/commit_ancestors.css.scss   |   4 +
 .../api/app/assets/stylesheets/commits.css.scss    |   4 +
 .../api/app/assets/stylesheets/groups.css.scss     |   4 +
 .../api/app/assets/stylesheets/humans.css.scss     |   4 +
 .../api/app/assets/stylesheets/job_tasks.css.scss  |   4 +
 services/api/app/assets/stylesheets/jobs.css.scss  |   4 +
 .../api/app/assets/stylesheets/keep_disks.css.scss |   4 +
 services/api/app/assets/stylesheets/links.css.scss |   4 +
 services/api/app/assets/stylesheets/logs.css.scss  |   4 +
 services/api/app/assets/stylesheets/nodes.css      |   4 +
 services/api/app/assets/stylesheets/nodes.css.scss |   4 +
 .../assets/stylesheets/pipeline_instances.css.scss |   4 +
 .../assets/stylesheets/pipeline_templates.css.scss |   4 +
 .../app/assets/stylesheets/repositories.css.scss   |   4 +
 .../api/app/assets/stylesheets/scaffolds.css.scss  |   4 +
 .../api/app/assets/stylesheets/specimens.css.scss  |   4 +
 .../api/app/assets/stylesheets/traits.css.scss     |   4 +
 .../assets/stylesheets/virtual_machines.css.scss   |   4 +
 .../api/app/controllers/application_controller.rb  |   4 +
 .../v1/api_client_authorizations_controller.rb     |   4 +
 .../arvados/v1/api_clients_controller.rb           |   4 +
 .../arvados/v1/authorized_keys_controller.rb       |   4 +
 .../arvados/v1/collections_controller.rb           |  12 ++-
 .../arvados/v1/container_requests_controller.rb    |   4 +
 .../arvados/v1/containers_controller.rb            |   4 +
 .../controllers/arvados/v1/groups_controller.rb    |   4 +
 .../controllers/arvados/v1/humans_controller.rb    |   4 +
 .../controllers/arvados/v1/job_tasks_controller.rb |   4 +
 .../app/controllers/arvados/v1/jobs_controller.rb  |   4 +
 .../arvados/v1/keep_disks_controller.rb            |   4 +
 .../arvados/v1/keep_services_controller.rb         |   4 +
 .../app/controllers/arvados/v1/links_controller.rb |   4 +
 .../app/controllers/arvados/v1/logs_controller.rb  |   4 +
 .../app/controllers/arvados/v1/nodes_controller.rb |   4 +
 .../arvados/v1/pipeline_instances_controller.rb    |   4 +
 .../arvados/v1/pipeline_templates_controller.rb    |   4 +
 .../arvados/v1/repositories_controller.rb          |   4 +
 .../controllers/arvados/v1/schema_controller.rb    |  67 ++++----------
 .../controllers/arvados/v1/specimens_controller.rb |   4 +
 .../controllers/arvados/v1/traits_controller.rb    |   4 +
 .../arvados/v1/user_agreements_controller.rb       |   4 +
 .../app/controllers/arvados/v1/users_controller.rb |   4 +
 .../arvados/v1/virtual_machines_controller.rb      |   4 +
 .../controllers/arvados/v1/workflows_controller.rb |   4 +
 .../api/app/controllers/database_controller.rb     |   4 +
 services/api/app/controllers/static_controller.rb  |   4 +
 .../app/controllers/user_sessions_controller.rb    |   4 +
 .../helpers/api_client_authorizations_helper.rb    |   4 +
 services/api/app/helpers/api_clients_helper.rb     |   4 +
 services/api/app/helpers/application_helper.rb     |   4 +
 services/api/app/helpers/authorized_keys_helper.rb |   4 +
 services/api/app/helpers/collections_helper.rb     |   4 +
 .../api/app/helpers/commit_ancestors_helper.rb     |   4 +
 services/api/app/helpers/commits_helper.rb         |   4 +
 services/api/app/helpers/groups_helper.rb          |   4 +
 services/api/app/helpers/humans_helper.rb          |   4 +
 services/api/app/helpers/job_tasks_helper.rb       |   4 +
 services/api/app/helpers/jobs_helper.rb            |   4 +
 services/api/app/helpers/keep_disks_helper.rb      |   4 +
 services/api/app/helpers/links_helper.rb           |   4 +
 services/api/app/helpers/logs_helper.rb            |   4 +
 services/api/app/helpers/nodes_helper.rb           |   4 +
 .../api/app/helpers/pipeline_instances_helper.rb   |   4 +
 .../api/app/helpers/pipeline_templates_helper.rb   |   4 +
 services/api/app/helpers/repositories_helper.rb    |   4 +
 services/api/app/helpers/specimens_helper.rb       |   4 +
 services/api/app/helpers/traits_helper.rb          |   4 +
 .../api/app/helpers/virtual_machines_helper.rb     |   4 +
 services/api/app/mailers/admin_notifier.rb         |   4 +
 services/api/app/mailers/profile_notifier.rb       |   4 +
 services/api/app/mailers/user_notifier.rb          |   4 +
 services/api/app/middlewares/arvados_api_token.rb  |   4 +
 services/api/app/middlewares/rack_socket.rb        |   4 +
 services/api/app/models/api_client.rb              |   4 +
 .../api/app/models/api_client_authorization.rb     |   4 +
 services/api/app/models/arvados_model.rb           |   4 +
 services/api/app/models/authorized_key.rb          |   4 +
 services/api/app/models/blob.rb                    |   4 +
 services/api/app/models/collection.rb              |   4 +
 services/api/app/models/commit.rb                  |   4 +
 services/api/app/models/commit_ancestor.rb         |   4 +
 services/api/app/models/container.rb               |   4 +
 services/api/app/models/container_request.rb       |   4 +
 services/api/app/models/database_seeds.rb          |   4 +
 services/api/app/models/group.rb                   |   4 +
 services/api/app/models/human.rb                   |   4 +
 services/api/app/models/job.rb                     |   4 +
 services/api/app/models/job_task.rb                |   4 +
 services/api/app/models/keep_disk.rb               |   4 +
 services/api/app/models/keep_service.rb            |   4 +
 services/api/app/models/link.rb                    |   4 +
 services/api/app/models/log.rb                     |   4 +
 services/api/app/models/node.rb                    |   4 +
 services/api/app/models/pipeline_instance.rb       |   4 +
 services/api/app/models/pipeline_template.rb       |   4 +
 services/api/app/models/repository.rb              |   4 +
 services/api/app/models/specimen.rb                |   4 +
 services/api/app/models/trait.rb                   |   4 +
 services/api/app/models/user.rb                    |   4 +
 services/api/app/models/user_agreement.rb          |   4 +
 services/api/app/models/virtual_machine.rb         |   4 +
 services/api/app/models/workflow.rb                |   4 +
 .../admin_notifier/new_inactive_user.text.erb      |   4 +
 .../api/app/views/admin_notifier/new_user.text.erb |   4 +
 .../api/app/views/layouts/application.html.erb     |   4 +
 .../profile_notifier/profile_created.text.erb      |   4 +
 services/api/app/views/static/intro.html.erb       |   4 +
 .../api/app/views/static/login_failure.html.erb    |   4 +
 .../views/user_notifier/account_is_setup.text.erb  |   4 +
 .../api/app/views/user_sessions/failure.html.erb   |   4 +
 services/api/config.ru                             |   4 +
 services/api/config/application.default.yml        |   4 +
 services/api/config/application.rb                 |   4 +
 services/api/config/application.yml.example        |   4 +
 services/api/config/boot.rb                        |   4 +
 services/api/config/database.yml.example           |   4 +
 services/api/config/environment.rb                 |   4 +
 .../api/config/environments/development.rb.example |   4 +
 .../api/config/environments/production.rb.example  |   4 +
 services/api/config/environments/test.rb.example   |   4 +
 services/api/config/initializers/andand.rb         |   4 +
 services/api/config/initializers/app_version.rb    |   4 +
 services/api/config/initializers/authorization.rb  |   4 +
 .../api/config/initializers/backtrace_silencers.rb |   4 +
 .../api/config/initializers/common_api_template.rb |   4 +
 .../api/config/initializers/current_api_client.rb  |   4 +
 .../api/config/initializers/db_current_time.rb     |   4 +
 services/api/config/initializers/eventbus.rb       |   4 +
 services/api/config/initializers/fix_www_decode.rb |   4 +
 services/api/config/initializers/inflections.rb    |   4 +
 services/api/config/initializers/kind_and_etag.rb  |   4 +
 services/api/config/initializers/load_config.rb    |   4 +
 services/api/config/initializers/lograge.rb        |   4 +
 services/api/config/initializers/mime_types.rb     |   4 +
 services/api/config/initializers/net_http.rb       |   4 +
 services/api/config/initializers/omniauth_init.rb  |   4 +
 .../config/initializers/permit_all_parameters.rb   |   4 +
 .../api/config/initializers/preload_all_models.rb  |   4 +
 .../config/initializers/schema_discovery_cache.rb  |   4 +
 services/api/config/initializers/session_store.rb  |   4 +
 services/api/config/initializers/time_format.rb    |   4 +
 .../api/config/initializers/wrap_parameters.rb     |   4 +
 services/api/config/locales/en.yml                 |   4 +
 services/api/config/routes.rb                      |   4 +
 .../migrate/20121016005009_create_collections.rb   |   4 +
 .../db/migrate/20130105203021_create_metadata.rb   |   4 +
 .../20130105224358_rename_metadata_class.rb        |   4 +
 ...05224618_rename_collection_created_by_client.rb |   4 +
 .../20130107181109_add_uuid_to_collections.rb      |   4 +
 .../api/db/migrate/20130107212832_create_nodes.rb  |   4 +
 .../db/migrate/20130109175700_create_pipelines.rb  |   4 +
 .../20130109220548_create_pipeline_invocations.rb  |   4 +
 ...214204_add_index_to_collections_and_metadata.rb |   4 +
 .../db/migrate/20130116024233_create_specimens.rb  |   4 +
 .../db/migrate/20130116215213_create_projects.rb   |   4 +
 .../20130118002239_rename_metadata_attributes.rb   |   4 +
 .../api/db/migrate/20130122020042_create_users.rb  |   4 +
 .../api/db/migrate/20130122201442_create_logs.rb   |   4 +
 .../20130122221616_add_modified_at_to_logs.rb      |   4 +
 .../20130123174514_add_uuid_index_to_users.rb      |   4 +
 .../migrate/20130123180224_create_api_clients.rb   |   4 +
 ...30123180228_create_api_client_authorizations.rb |   4 +
 .../20130125220425_rename_created_by_to_owner.rb   |   4 +
 .../20130128202518_rename_metadata_to_links.rb     |   4 +
 .../20130128231343_add_properties_to_specimen.rb   |   4 +
 ...130130205749_add_manifest_text_to_collection.rb |   4 +
 .../api/db/migrate/20130203104818_create_jobs.rb   |   4 +
 .../db/migrate/20130203104824_create_job_steps.rb  |   4 +
 .../migrate/20130203115329_add_priority_to_jobs.rb |   4 +
 .../20130207195855_add_index_on_timestamps.rb      |   4 +
 ...81504_add_properties_to_pipeline_invocations.rb |   4 +
 ...130226170000_remove_native_target_from_links.rb |   4 +
 .../20130313175417_rename_projects_to_groups.rb    |   4 +
 .../20130315155820_add_is_locked_by_to_jobs.rb     |   4 +
 .../db/migrate/20130315183626_add_log_to_jobs.rb   |   4 +
 .../20130315213205_add_tasks_summary_to_jobs.rb    |   4 +
 .../20130318002138_add_resource_limits_to_jobs.rb  |   4 +
 .../20130319165853_rename_job_command_to_script.rb |   4 +
 ...ame_pipeline_invocation_to_pipeline_instance.rb |   4 +
 ...94637_rename_pipelines_to_pipeline_templates.rb |   4 +
 ...20130319201431_rename_job_steps_to_job_tasks.rb |   4 +
 .../20130319235957_add_default_owner_to_users.rb   |   4 +
 ...d_default_owner_to_api_client_authorizations.rb |   4 +
 .../db/migrate/20130326173804_create_commits.rb    |   4 +
 .../20130326182917_create_commit_ancestors.rb      |   4 +
 .../20130415020241_rename_orvos_to_arvados.rb      |   4 +
 .../db/migrate/20130425024459_create_keep_disks.rb |   4 +
 ...vice_port_and_service_ssl_flag_to_keep_disks.rb |   4 +
 ...3060112_add_created_by_job_task_to_job_tasks.rb |   4 +
 .../20130523060213_add_qsequence_to_job_tasks.rb   |   4 +
 .../20130524042319_fix_job_task_qsequence_type.rb  |   4 +
 .../migrate/20130528134100_update_nodes_index.rb   |   4 +
 .../20130606183519_create_authorized_keys.rb       |   4 +
 .../20130608053730_create_virtual_machines.rb      |   4 +
 .../migrate/20130610202538_create_repositories.rb  |   4 +
 ..._key_authorized_user_to_authorized_user_uuid.rb |   4 +
 ...042554_add_name_unique_index_to_repositories.rb |   4 +
 ...20130617150007_add_is_trusted_to_api_clients.rb |   4 +
 .../20130626002829_add_is_active_to_users.rb       |   4 +
 .../migrate/20130626022810_activate_all_admins.rb  |   4 +
 .../api/db/migrate/20130627154537_create_traits.rb |   4 +
 .../api/db/migrate/20130627184333_create_humans.rb |   4 +
 ...0130708163414_rename_foreign_uuid_attributes.rb |   4 +
 ...708182912_rename_job_foreign_uuid_attributes.rb |   4 +
 .../20130708185153_rename_user_default_owner.rb    |   4 +
 ...3034_add_scopes_to_api_client_authorizations.rb |   4 +
 ...ename_resource_limits_to_runtime_constraints.rb |   4 +
 .../20140117231056_normalize_collection_uuid.rb    |   4 +
 .../20140124222114_fix_link_kind_underscores.rb    |   4 +
 ...malize_collection_uuids_in_script_parameters.rb |   4 +
 ...317135600_add_nondeterministic_column_to_job.rb |   4 +
 ...0547_separate_repository_from_script_version.rb |   4 +
 .../20140321191343_add_repository_column_to_job.rb |   4 +
 ...140324024606_add_output_is_persistent_to_job.rb |   4 +
 .../migrate/20140325175653_remove_kind_columns.rb  |   4 +
 .../db/migrate/20140402001908_add_system_group.rb  |   4 +
 ...20140407184311_rename_log_info_to_properties.rb |   4 +
 .../20140421140924_add_group_class_to_groups.rb    |   4 +
 .../20140421151939_rename_auth_keys_user_index.rb  |   4 +
 .../migrate/20140421151940_timestamps_not_null.rb  |   4 +
 .../20140422011506_pipeline_instance_state.rb      |   4 +
 .../20140423132913_add_object_owner_to_logs.rb     |   4 +
 .../db/migrate/20140423133559_new_scope_format.rb  |   4 +
 ...0140501165548_add_unique_name_index_to_links.rb |   4 +
 .../migrate/20140519205916_create_keep_services.rb |   4 +
 ...152921_add_description_to_pipeline_templates.rb |   4 +
 .../20140530200539_add_supplied_script_version.rb  |   4 +
 .../20140601022548_remove_name_from_collections.rb |   4 +
 ...e_active_and_success_from_pipeline_instances.rb |   4 +
 .../20140607150616_rename_folder_to_project.rb     |   4 +
 .../20140611173003_add_docker_locator_to_jobs.rb   |   4 +
 .../db/migrate/20140627210837_anonymous_group.rb   |   4 +
 .../20140709172343_job_task_serial_qsequence.rb    |   4 +
 .../db/migrate/20140714184006_empty_collection.rb  |   4 +
 .../20140811184643_collection_use_regular_uuids.rb |   4 +
 .../20140817035914_add_unique_name_constraints.rb  |   4 +
 ...125735_add_not_null_constraint_to_group_name.rb |   4 +
 ...826180337_remove_output_is_persistent_column.rb |   4 +
 .../migrate/20140828141043_job_priority_fixup.rb   |   4 +
 ...add_start_finish_time_to_tasks_and_pipelines.rb |   4 +
 ...d_description_to_pipeline_instances_and_jobs.rb |   4 +
 ...140918141529_change_user_owner_uuid_not_null.rb |   4 +
 .../20140918153541_add_properties_to_node.rb       |   4 +
 .../db/migrate/20140918153705_add_state_to_job.rb  |   4 +
 .../20140924091559_add_job_uuid_to_nodes.rb        |   4 +
 ...141111133038_add_arvados_sdk_version_to_jobs.rb |   4 +
 .../db/migrate/20141208164553_owner_uuid_index.rb  |   4 +
 .../20141208174553_descriptions_are_strings.rb     |   4 +
 .../20141208174653_collection_file_names.rb        |   4 +
 .../api/db/migrate/20141208185217_search_index.rb  |   4 +
 ...0150122175935_no_description_in_search_index.rb |   4 +
 .../db/migrate/20150123142953_full_text_search.rb  |   4 +
 ...203180223_set_group_class_on_anonymous_group.rb |   4 +
 ...206210804_all_users_can_read_anonymous_group.rb |   4 +
 ...20150206230342_rename_replication_attributes.rb |   4 +
 ...ollection_name_owner_unique_only_non_expired.rb |   4 +
 ...tion_portable_data_hash_with_hinted_manifest.rb |   4 +
 ...136_change_collection_expires_at_to_datetime.rb |   4 +
 .../20150317132720_add_username_to_users.rb        |   4 +
 ...backward_compatibility_for_user_repositories.rb |   4 +
 ...5759_no_filenames_in_collection_search_index.rb |   4 +
 .../20150512193020_read_only_on_keep_services.rb   |   4 +
 ...50526180251_leading_space_on_full_text_index.rb |   4 +
 ...0151202151426_create_containers_and_requests.rb |   4 +
 .../migrate/20151215134304_fix_containers_index.rb |   4 +
 .../20151229214707_add_exit_code_to_containers.rb  |   4 +
 ...8210629_add_uuid_to_api_client_authorization.rb |   4 +
 ...209155729_add_uuid_to_api_token_search_index.rb |   4 +
 .../20160324144017_add_components_to_job.rb        |   4 +
 .../20160506175108_add_auths_to_container.rb       |   4 +
 ...9143250_add_auth_and_lock_to_container_index.rb |   4 +
 .../db/migrate/20160808151559_create_workflows.rb  |   4 +
 ...9195557_add_script_parameters_digest_to_jobs.rb |   4 +
 ...0819195725_populate_script_parameters_digest.rb |   4 +
 ...160901210110_repair_script_parameters_digest.rb |   4 +
 ...20160909181442_rename_workflow_to_definition.rb |   4 +
 .../migrate/20160926194129_add_container_count.rb  |   4 +
 ...71346_add_use_existing_to_container_requests.rb |   4 +
 ...43147_add_scheduling_parameters_to_container.rb |   4 +
 ...add_output_and_log_uuid_to_container_request.rb |   4 +
 ..._log_uuids_to_container_request_search_index.rb |   4 +
 .../20161213172944_full_text_search_indexes.rb     |   4 +
 ...61222153434_split_expiry_to_trash_and_delete.rb |   4 +
 ...090712_add_output_name_to_container_requests.rb |   4 +
 ...utput_name_to_container_request_search_index.rb |   4 +
 ...170105160301_add_output_name_to_cr_fts_index.rb |   4 +
 ...t_finished_at_on_finished_pipeline_instances.rb |   4 +
 ...s_and_workflow_def_in_full_text_search_index.rb |   4 +
 .../20170301225558_no_downgrade_after_json.rb      |   4 +
 ...0170319063406_serialized_columns_accept_null.rb |   4 +
 ..._add_portable_data_hash_index_to_collections.rb |   4 +
 ...0012505_add_output_ttl_to_container_requests.rb |   4 +
 ...1_add_created_by_job_task_index_to_job_tasks.rb |   4 +
 ...0170419173712_add_object_owner_index_to_logs.rb |   4 +
 ...esting_container_index_to_container_requests.rb |   4 +
 services/api/db/seeds.rb                           |   4 +
 services/api/db/structure.sql                      |   4 +
 services/api/fpm-info.sh                           |   4 +
 services/api/lib/app_version.rb                    |   4 +
 services/api/lib/audit_logs.rb                     |   4 +
 services/api/lib/can_be_an_owner.rb                |   4 +
 services/api/lib/common_api_template.rb            |   4 +
 services/api/lib/create_ancestor_view.sql          |   4 +
 services/api/lib/create_permission_view.sql        |   4 +
 services/api/lib/create_superuser_token.rb         |   4 +
 services/api/lib/crunch_dispatch.rb                |   4 +
 services/api/lib/current_api_client.rb             |   4 +
 services/api/lib/db_current_time.rb                |   4 +
 services/api/lib/has_uuid.rb                       |   4 +
 services/api/lib/josh_id.rb                        |   4 +
 services/api/lib/kind_and_etag.rb                  |   4 +
 services/api/lib/load_param.rb                     |   4 +
 services/api/lib/log_reuse_info.rb                 |   4 +
 services/api/lib/record_filters.rb                 |   4 +
 services/api/lib/safe_json.rb                      |   4 +
 services/api/lib/salvage_collection.rb             |   4 +
 services/api/lib/serializers.rb                    |   4 +
 services/api/lib/simulate_job_log.rb               |   4 +
 services/api/lib/sweep_trashed_collections.rb      |   4 +
 services/api/lib/tasks/config_check.rake           |   4 +
 services/api/lib/tasks/config_dump.rake            |   4 +
 .../api/lib/tasks/delete_old_container_logs.rake   |   4 +
 services/api/lib/tasks/delete_old_job_logs.rake    |   4 +
 services/api/lib/tasks/replay_job_log.rake         |   4 +
 services/api/lib/tasks/test_tasks.rake             |   4 +
 services/api/lib/whitelist_update.rb               |   4 +
 services/api/public/404.html                       |   4 +
 services/api/public/422.html                       |   4 +
 services/api/public/500.html                       |   4 +
 services/api/script/arvados-git-sync.rb            |   3 +
 services/api/script/create_superuser_token.rb      |   3 +
 services/api/script/crunch-dispatch.rb             |   3 +
 services/api/script/crunch_failure_report.py       |   3 +
 services/api/script/fail-jobs.rb                   |   3 +
 services/api/script/get_anonymous_user_token.rb    |   3 +
 .../api/script/migrate-gitolite-to-uuid-storage.rb |   4 +
 services/api/script/permission-updater.rb          |   3 +
 services/api/script/rake_test.sh                   |   3 +
 services/api/script/restart-dns-server             |   3 +
 services/api/script/salvage_collection.rb          |   3 +
 services/api/script/setup-new-user.rb              |   3 +
 services/api/test/factories/api_client.rb          |   4 +
 .../api/test/factories/api_client_authorization.rb |   4 +
 services/api/test/factories/group.rb               |   4 +
 services/api/test/factories/link.rb                |   4 +
 services/api/test/factories/user.rb                |   4 +
 .../test/fixtures/api_client_authorizations.yml    |   4 +
 services/api/test/fixtures/api_clients.yml         |   4 +
 services/api/test/fixtures/authorized_keys.yml     |   4 +
 services/api/test/fixtures/collections.yml         |  58 ++++++++++--
 services/api/test/fixtures/container_requests.yml  |   4 +
 services/api/test/fixtures/containers.yml          |   4 +
 services/api/test/fixtures/groups.yml              |   4 +
 services/api/test/fixtures/humans.yml              |   4 +
 services/api/test/fixtures/job_tasks.yml           |   4 +
 services/api/test/fixtures/jobs.yml                |   4 +
 services/api/test/fixtures/keep_disks.yml          |   4 +
 services/api/test/fixtures/keep_services.yml       |   4 +
 services/api/test/fixtures/links.yml               |  18 ++++
 services/api/test/fixtures/logs.yml                |   4 +
 services/api/test/fixtures/nodes.yml               |   4 +
 services/api/test/fixtures/pipeline_instances.yml  |   4 +
 services/api/test/fixtures/pipeline_templates.yml  |   4 +
 services/api/test/fixtures/repositories.yml        |   4 +
 services/api/test/fixtures/specimens.yml           |   4 +
 services/api/test/fixtures/traits.yml              |   4 +
 services/api/test/fixtures/users.yml               |   4 +
 services/api/test/fixtures/virtual_machines.yml    |   4 +
 services/api/test/fixtures/workflows.yml           |   4 +
 .../test/functional/application_controller_test.rb |   4 +
 .../api_client_authorizations_controller_test.rb   |   4 +
 .../arvados/v1/authorized_keys_controller_test.rb  |   4 +
 .../arvados/v1/collections_controller_test.rb      |  25 ++++++
 .../arvados/v1/commits_controller_test.rb          |   4 +
 .../v1/container_requests_controller_test.rb       |   4 +
 .../arvados/v1/containers_controller_test.rb       |   4 +
 .../api/test/functional/arvados/v1/filters_test.rb |   4 +
 .../arvados/v1/groups_controller_test.rb           |   5 ++
 .../arvados/v1/humans_controller_test.rb           |   4 +
 .../arvados/v1/job_reuse_controller_test.rb        |   4 +
 .../arvados/v1/job_tasks_controller_test.rb        |   4 +
 .../functional/arvados/v1/jobs_controller_test.rb  |   4 +
 .../arvados/v1/keep_disks_controller_test.rb       |   4 +
 .../arvados/v1/keep_services_controller_test.rb    |   4 +
 .../functional/arvados/v1/links_controller_test.rb |   4 +
 .../functional/arvados/v1/logs_controller_test.rb  |   4 +
 .../functional/arvados/v1/nodes_controller_test.rb |   4 +
 .../v1/pipeline_instances_controller_test.rb       |   4 +
 .../v1/pipeline_templates_controller_test.rb       |   4 +
 .../api/test/functional/arvados/v1/query_test.rb   |   4 +
 .../arvados/v1/repositories_controller_test.rb     |   4 +
 .../arvados/v1/schema_controller_test.rb           |   4 +
 .../arvados/v1/specimens_controller_test.rb        |   4 +
 .../arvados/v1/traits_controller_test.rb           |   4 +
 .../arvados/v1/user_agreements_controller_test.rb  |   4 +
 .../functional/arvados/v1/users_controller_test.rb |   4 +
 .../arvados/v1/virtual_machines_controller_test.rb |   4 +
 .../test/functional/database_controller_test.rb    |   4 +
 .../functional/user_sessions_controller_test.rb    |   4 +
 .../api/test/helpers/docker_migration_helper.rb    |   4 +
 services/api/test/helpers/git_test_helper.rb       |   4 +
 services/api/test/helpers/manifest_examples.rb     |   4 +
 services/api/test/helpers/time_block.rb            |   4 +
 services/api/test/helpers/users_test_helper.rb     |   4 +
 .../api_client_authorizations_api_test.rb          |   4 +
 .../api_client_authorizations_scopes_test.rb       |   4 +
 .../api/test/integration/collections_api_test.rb   |   4 +
 .../integration/collections_performance_test.rb    |   4 +
 services/api/test/integration/cross_origin_test.rb |   4 +
 .../api/test/integration/crunch_dispatch_test.rb   |   4 +
 .../api/test/integration/database_reset_test.rb    |   4 +
 services/api/test/integration/errors_test.rb       |   4 +
 services/api/test/integration/groups_test.rb       |   4 +
 services/api/test/integration/jobs_api_test.rb     |   4 +
 services/api/test/integration/keep_proxy_test.rb   |   4 +
 .../api/test/integration/login_workflow_test.rb    |   4 +
 .../api/test/integration/noop_deep_munge_test.rb   |   4 +
 services/api/test/integration/permissions_test.rb  |   4 +
 services/api/test/integration/pipeline_test.rb     |   4 +
 .../api/test/integration/reader_tokens_test.rb     |   4 +
 services/api/test/integration/select_test.rb       |   4 +
 .../test/integration/serialized_encoding_test.rb   |   4 +
 .../api/test/integration/user_sessions_test.rb     |   4 +
 services/api/test/integration/users_test.rb        |   4 +
 services/api/test/integration/valid_links_test.rb  |   4 +
 services/api/test/performance/links_index_test.rb  |   4 +
 .../test/tasks/delete_old_container_logs_test.rb   |   4 +
 .../api/test/tasks/delete_old_job_logs_test.rb     |   4 +
 services/api/test/test_helper.rb                   |   4 +
 .../api/test/unit/api_client_authorization_test.rb |   4 +
 services/api/test/unit/api_client_test.rb          |   4 +
 services/api/test/unit/app_version_test.rb         |   4 +
 services/api/test/unit/application_test.rb         |   4 +
 services/api/test/unit/arvados_model_test.rb       |   4 +
 services/api/test/unit/authorized_key_test.rb      |   4 +
 services/api/test/unit/blob_test.rb                |   4 +
 .../api/test/unit/collection_performance_test.rb   |   4 +
 services/api/test/unit/collection_test.rb          |   4 +
 services/api/test/unit/commit_ancestor_test.rb     |   4 +
 services/api/test/unit/commit_test.rb              |   4 +
 services/api/test/unit/container_request_test.rb   |   4 +
 services/api/test/unit/container_test.rb           |   4 +
 .../api/test/unit/create_superuser_token_test.rb   |   4 +
 services/api/test/unit/crunch_dispatch_test.rb     |   4 +
 services/api/test/unit/fail_jobs_test.rb           |   4 +
 services/api/test/unit/group_test.rb               |   4 +
 .../api_client_authorizations_helper_test.rb       |   4 +
 .../test/unit/helpers/api_clients_helper_test.rb   |   4 +
 .../unit/helpers/authorized_keys_helper_test.rb    |   4 +
 .../test/unit/helpers/collections_helper_test.rb   |   4 +
 .../unit/helpers/commit_ancestors_helper_test.rb   |   4 +
 .../api/test/unit/helpers/commits_helper_test.rb   |   4 +
 .../api/test/unit/helpers/groups_helper_test.rb    |   4 +
 .../api/test/unit/helpers/humans_helper_test.rb    |   4 +
 .../api/test/unit/helpers/job_tasks_helper_test.rb |   4 +
 services/api/test/unit/helpers/jobs_helper_test.rb |   4 +
 .../test/unit/helpers/keep_disks_helper_test.rb    |   4 +
 .../api/test/unit/helpers/links_helper_test.rb     |   4 +
 services/api/test/unit/helpers/logs_helper_test.rb |   4 +
 .../api/test/unit/helpers/nodes_helper_test.rb     |   4 +
 .../unit/helpers/pipeline_instances_helper_test.rb |   4 +
 .../unit/helpers/pipeline_templates_helper_test.rb |   4 +
 .../test/unit/helpers/repositories_helper_test.rb  |   4 +
 .../api/test/unit/helpers/specimens_helper_test.rb |   4 +
 .../api/test/unit/helpers/traits_helper_test.rb    |   4 +
 .../unit/helpers/virtual_machines_helper_test.rb   |   4 +
 services/api/test/unit/human_test.rb               |   4 +
 services/api/test/unit/job_task_test.rb            |   4 +
 services/api/test/unit/job_test.rb                 |   4 +
 services/api/test/unit/keep_disk_test.rb           |   4 +
 services/api/test/unit/keep_service_test.rb        |   4 +
 services/api/test/unit/link_test.rb                |   4 +
 services/api/test/unit/log_test.rb                 |   4 +
 services/api/test/unit/node_test.rb                |   4 +
 services/api/test/unit/owner_test.rb               |   4 +
 services/api/test/unit/permission_test.rb          |   4 +
 services/api/test/unit/pipeline_instance_test.rb   |   4 +
 services/api/test/unit/pipeline_template_test.rb   |   4 +
 services/api/test/unit/repository_test.rb          |   4 +
 services/api/test/unit/salvage_collection_test.rb  |   4 +
 services/api/test/unit/seralizer_test.rb           |   4 +
 services/api/test/unit/specimen_test.rb            |   4 +
 services/api/test/unit/trait_test.rb               |   4 +
 services/api/test/unit/user_notifier_test.rb       |   4 +
 services/api/test/unit/user_test.rb                |   4 +
 services/api/test/unit/virtual_machine_test.rb     |   4 +
 services/api/test/unit/workflow_test.rb            |   4 +
 services/arv-git-httpd/arvados-git-httpd.service   |   4 +
 services/arv-git-httpd/auth_handler.go             |   4 +
 services/arv-git-httpd/git_handler.go              |   4 +
 services/arv-git-httpd/git_handler_test.go         |   4 +
 services/arv-git-httpd/gitolite_test.go            |   4 +
 services/arv-git-httpd/integration_test.go         |   4 +
 services/arv-git-httpd/main.go                     |   4 +
 services/arv-git-httpd/server.go                   |   4 +
 services/arv-git-httpd/server_test.go              |   4 +
 services/arv-git-httpd/usage.go                    |   4 +
 services/arv-web/arv-web.py                        |   3 +
 services/arv-web/sample-rack-app/config.ru         |   4 +
 .../arv-web/sample-static-page/public/index.html   |   4 +
 services/arv-web/sample-wsgi-app/passenger_wsgi.py |   4 +
 .../crunch-dispatch-local/crunch-dispatch-local.go |   4 +
 .../crunch-dispatch-local_test.go                  |   4 +
 .../crunch-dispatch-slurm/crunch-dispatch-slurm.go |   4 +
 .../crunch-dispatch-slurm.service                  |   4 +
 .../crunch-dispatch-slurm_test.go                  |   4 +
 services/crunch-dispatch-slurm/script.go           |   4 +
 services/crunch-dispatch-slurm/script_test.go      |   4 +
 services/crunch-dispatch-slurm/squeue.go           |   4 +
 services/crunch-dispatch-slurm/usage.go            |   4 +
 services/crunch-run/cgroup.go                      |   4 +
 services/crunch-run/cgroup_test.go                 |   4 +
 services/crunch-run/crunchrun.go                   |   4 +
 services/crunch-run/crunchrun_test.go              |   4 +
 services/crunch-run/logging.go                     |   4 +
 services/crunch-run/logging_test.go                |   4 +
 services/crunch-run/upload.go                      |   4 +
 services/crunch-run/upload_test.go                 |   4 +
 services/crunchstat/crunchstat.go                  |   4 +
 services/crunchstat/crunchstat_test.go             |   4 +
 services/dockercleaner/MANIFEST.in                 |   4 +
 .../dockercleaner/arvados-docker-cleaner.service   |   4 +
 services/dockercleaner/arvados_docker/cleaner.py   |   4 +
 services/dockercleaner/setup.py                    |   3 +
 services/dockercleaner/tests/__init__.py           |   3 +
 services/dockercleaner/tests/test_cleaner.py       |   3 +
 services/fuse/MANIFEST.in                          |   4 +
 services/fuse/README.rst                           |   4 +
 services/fuse/arvados_fuse/__init__.py             |   4 +
 services/fuse/arvados_fuse/_version.py             |   4 +
 services/fuse/arvados_fuse/command.py              |   4 +
 services/fuse/arvados_fuse/crunchstat.py           |   4 +
 services/fuse/arvados_fuse/fresh.py                |   4 +
 services/fuse/arvados_fuse/fusedir.py              |   4 +
 services/fuse/arvados_fuse/fusefile.py             |   4 +
 services/fuse/arvados_fuse/unmount.py              |   4 +
 services/fuse/bin/arv-mount                        |   3 +
 services/fuse/fpm-info.sh                          |   4 +
 services/fuse/setup.py                             |   3 +
 services/fuse/tests/fstest.py                      |   4 +
 services/fuse/tests/integration_test.py            |   4 +
 services/fuse/tests/mount_test_base.py             |   4 +
 .../performance/test_collection_performance.py     |   4 +
 services/fuse/tests/prof.py                        |   4 +
 services/fuse/tests/test_cache.py                  |   4 +
 services/fuse/tests/test_command_args.py           |   4 +
 services/fuse/tests/test_crunchstat.py             |   4 +
 services/fuse/tests/test_exec.py                   |   4 +
 services/fuse/tests/test_inodes.py                 |   4 +
 services/fuse/tests/test_mount.py                  |   4 +
 services/fuse/tests/test_mount_type.py             |   4 +
 services/fuse/tests/test_retry.py                  |   4 +
 services/fuse/tests/test_tmp_collection.py         |   4 +
 services/fuse/tests/test_token_expiry.py           |   4 +
 services/fuse/tests/test_unmount.py                |   4 +
 services/keep-balance/balance.go                   |   4 +
 services/keep-balance/balance_run_test.go          |   4 +
 services/keep-balance/balance_test.go              |   4 +
 services/keep-balance/block_state.go               |   4 +
 services/keep-balance/change_set.go                |   4 +
 services/keep-balance/change_set_test.go           |   4 +
 services/keep-balance/collection.go                |   4 +
 services/keep-balance/collection_test.go           |   4 +
 services/keep-balance/integration_test.go          |   4 +
 services/keep-balance/keep-balance.service         |   4 +
 services/keep-balance/keep_service.go              |   4 +
 services/keep-balance/main.go                      |   4 +
 services/keep-balance/main_test.go                 |   4 +
 services/keep-balance/time_me.go                   |   4 +
 services/keep-balance/usage.go                     |   4 +
 services/keep-web/cache.go                         |   4 +
 services/keep-web/cache_test.go                    |   4 +
 services/keep-web/doc.go                           |   4 +
 services/keep-web/handler.go                       |   4 +
 services/keep-web/handler_test.go                  |   4 +
 services/keep-web/keep-web.service                 |   4 +
 services/keep-web/main.go                          |   4 +
 services/keep-web/ranges_test.go                   |   4 +
 services/keep-web/server.go                        |   4 +
 services/keep-web/server_test.go                   |   4 +
 services/keep-web/status_test.go                   |   4 +
 services/keep-web/usage.go                         |   4 +
 services/keep/tools/traffic_test.py                |   3 +
 services/keepproxy/keepproxy.go                    |   4 +
 services/keepproxy/keepproxy.service               |   4 +
 services/keepproxy/keepproxy_test.go               |   4 +
 services/keepproxy/pkg-extras/etc/init.d/keepproxy |   4 +
 services/keepproxy/proxy_client.go                 |   4 +
 services/keepproxy/usage.go                        |   4 +
 services/keepstore/azure_blob_volume.go            |   4 +
 services/keepstore/azure_blob_volume_test.go       |   4 +
 services/keepstore/bufferpool.go                   |   4 +
 services/keepstore/bufferpool_test.go              |   4 +
 services/keepstore/collision.go                    |   4 +
 services/keepstore/collision_test.go               |   4 +
 services/keepstore/config.go                       |   4 +
 services/keepstore/config_test.go                  |   4 +
 services/keepstore/count.go                        |   4 +
 services/keepstore/deprecated.go                   |   4 +
 services/keepstore/gocheck_test.go                 |   4 +
 services/keepstore/handler_test.go                 |   4 +
 services/keepstore/handlers.go                     |   4 +
 .../keepstore/handlers_with_generic_volume_test.go |   4 +
 services/keepstore/keepstore.go                    |   4 +
 services/keepstore/keepstore.service               |   4 +
 services/keepstore/keepstore_test.go               |   4 +
 services/keepstore/logging_router.go               |   4 +
 services/keepstore/logging_router_test.go          |   4 +
 services/keepstore/mock_mutex_for_test.go          |   4 +
 services/keepstore/mounts_test.go                  |   4 +
 services/keepstore/perms.go                        |   4 +
 services/keepstore/perms_test.go                   |   4 +
 services/keepstore/pipe_adapters.go                |   4 +
 services/keepstore/pull_worker.go                  |   4 +
 services/keepstore/pull_worker_integration_test.go |   4 +
 services/keepstore/pull_worker_test.go             |   4 +
 services/keepstore/s3_volume.go                    |   4 +
 services/keepstore/s3_volume_test.go               |   4 +
 services/keepstore/stats_ticker.go                 |   4 +
 services/keepstore/status_test.go                  |   4 +
 services/keepstore/trash_worker.go                 |   4 +
 services/keepstore/trash_worker_test.go            |   4 +
 services/keepstore/usage.go                        |   4 +
 services/keepstore/volume.go                       |   4 +
 services/keepstore/volume_generic_test.go          |   4 +
 services/keepstore/volume_test.go                  |   4 +
 services/keepstore/volume_unix.go                  |   4 +
 services/keepstore/volume_unix_test.go             |   4 +
 services/keepstore/work_queue.go                   |   4 +
 services/keepstore/work_queue_test.go              |   4 +
 services/login-sync/Gemfile                        |   4 +
 services/login-sync/Rakefile                       |   4 +
 services/login-sync/arvados-login-sync.gemspec     |   4 +
 services/login-sync/bin/arvados-login-sync         |   3 +
 services/login-sync/test/binstub_new_user/useradd  |   3 +
 services/login-sync/test/stubs.rb                  |   4 +
 services/login-sync/test/test_add_user.rb          |   4 +
 services/nodemanager/MANIFEST.in                   |   4 +
 services/nodemanager/README.rst                    |   4 +
 services/nodemanager/arvnodeman/__init__.py        |   3 +
 services/nodemanager/arvnodeman/_version.py        |   4 +
 services/nodemanager/arvnodeman/baseactor.py       |   4 +
 services/nodemanager/arvnodeman/clientactor.py     |   3 +
 .../nodemanager/arvnodeman/computenode/__init__.py |   3 +
 .../arvnodeman/computenode/dispatch/__init__.py    |   3 +
 .../arvnodeman/computenode/dispatch/slurm.py       |   3 +
 .../arvnodeman/computenode/dispatch/transitions.py |   4 +
 .../arvnodeman/computenode/driver/__init__.py      |   3 +
 .../arvnodeman/computenode/driver/azure.py         |   3 +
 .../arvnodeman/computenode/driver/dummy.py         |   3 +
 .../arvnodeman/computenode/driver/ec2.py           |   3 +
 .../arvnodeman/computenode/driver/gce.py           |   7 ++
 services/nodemanager/arvnodeman/config.py          |   3 +
 services/nodemanager/arvnodeman/daemon.py          |   3 +
 services/nodemanager/arvnodeman/jobqueue.py        |   5 ++
 services/nodemanager/arvnodeman/launcher.py        |   3 +
 services/nodemanager/arvnodeman/nodelist.py        |   5 +-
 services/nodemanager/arvnodeman/status.py          |   4 +
 services/nodemanager/arvnodeman/test/__init__.py   |   4 +
 .../nodemanager/arvnodeman/test/fake_driver.py     |  63 ++++++++++++-
 services/nodemanager/arvnodeman/timedcallback.py   |   3 +
 services/nodemanager/bin/arvados-node-manager      |   3 +
 services/nodemanager/doc/azure.example.cfg         |   4 +
 services/nodemanager/doc/ec2.example.cfg           |   4 +
 services/nodemanager/doc/gce.example.cfg           |   4 +
 services/nodemanager/doc/local.example.cfg         |   4 +
 services/nodemanager/setup.py                      |   3 +
 services/nodemanager/tests/__init__.py             |   3 +
 .../{fake.cfg.template => fake_azure.cfg.template} |   4 +
 .../{fake.cfg.template => fake_ec2.cfg.template}   |  48 +++-------
 .../{fake.cfg.template => fake_gce.cfg.template}   |  53 +++--------
 services/nodemanager/tests/integration_test.py     |  53 +++++++++--
 services/nodemanager/tests/test_arguments.py       |   3 +
 services/nodemanager/tests/test_clientactor.py     |   3 +
 services/nodemanager/tests/test_computenode.py     |   3 +
 .../nodemanager/tests/test_computenode_dispatch.py |   3 +
 .../tests/test_computenode_dispatch_slurm.py       |   3 +
 .../nodemanager/tests/test_computenode_driver.py   |   3 +
 .../tests/test_computenode_driver_azure.py         |   3 +
 .../tests/test_computenode_driver_ec2.py           |   3 +
 .../tests/test_computenode_driver_gce.py           |   3 +
 services/nodemanager/tests/test_config.py          |   3 +
 services/nodemanager/tests/test_daemon.py          |   3 +
 services/nodemanager/tests/test_failure.py         |   3 +
 services/nodemanager/tests/test_jobqueue.py        |   3 +
 services/nodemanager/tests/test_nodelist.py        |   3 +
 services/nodemanager/tests/test_status.py          |   3 +
 services/nodemanager/tests/test_timedcallback.py   |   3 +
 services/nodemanager/tests/testutil.py             |   3 +
 services/ws/arvados-ws.service                     |   4 +
 services/ws/config.go                              |   6 ++
 services/ws/doc.go                                 |   4 +
 services/ws/event.go                               |   5 ++
 services/ws/event_source.go                        |  11 +++
 services/ws/event_source_test.go                   |   6 ++
 services/ws/event_test.go                          |   4 +
 services/ws/gocheck_test.go                        |   4 +
 services/ws/handler.go                             |   4 +
 services/ws/main.go                                |   4 +
 services/ws/permission.go                          |   4 +
 services/ws/permission_test.go                     |   4 +
 services/ws/router.go                              |  56 ++++++++++--
 services/ws/server.go                              |   4 +
 services/ws/server_test.go                         |  69 +++++++++++---
 services/ws/session.go                             |   4 +
 services/ws/session_v0.go                          |   5 ++
 services/ws/session_v0_test.go                     |  14 ++-
 services/ws/session_v1.go                          |   4 +
 tools/arvbash/arvbash.sh                           |   4 +
 tools/arvbox/bin/arvbox                            |   3 +
 tools/arvbox/lib/arvbox/docker/Dockerfile.base     |   4 +
 tools/arvbox/lib/arvbox/docker/Dockerfile.demo     |   4 +
 tools/arvbox/lib/arvbox/docker/Dockerfile.dev      |   4 +
 tools/arvbox/lib/arvbox/docker/api-setup.sh        |   3 +
 .../lib/arvbox/docker/application_yml_override.py  |   3 +
 tools/arvbox/lib/arvbox/docker/common.sh           |   4 +
 tools/arvbox/lib/arvbox/docker/createusers.sh      |   3 +
 tools/arvbox/lib/arvbox/docker/crunch-setup.sh     |   3 +
 tools/arvbox/lib/arvbox/docker/fuse.conf           |   4 +
 tools/arvbox/lib/arvbox/docker/gitolite.rc         |   4 +
 tools/arvbox/lib/arvbox/docker/keep-setup.sh       |   3 +
 tools/arvbox/lib/arvbox/docker/logger              |   4 +
 tools/arvbox/lib/arvbox/docker/runsu.sh            |   3 +
 .../lib/arvbox/docker/service/api/run-service      |   3 +
 .../docker/service/arv-git-httpd/run-service       |   3 +
 .../service/crunch-dispatch-local/run-service      |  11 ++-
 .../docker/service/crunch-dispatch0/run-service    |   4 +
 .../docker/service/crunch-dispatch1/run-service    |   4 +
 .../lib/arvbox/docker/service/doc/run-service      |   3 +
 tools/arvbox/lib/arvbox/docker/service/docker/run  |   3 +
 .../lib/arvbox/docker/service/gitolite/run-service |   3 +
 .../lib/arvbox/docker/service/keep-web/run-service |   3 +
 .../arvbox/docker/service/keepproxy/run-service    |   3 +
 .../arvbox/docker/service/keepstore0/run-service   |   4 +
 .../arvbox/docker/service/keepstore1/run-service   |   4 +
 .../arvbox/lib/arvbox/docker/service/postgres/run  |   3 +
 .../lib/arvbox/docker/service/postgres/run-service |   3 +
 .../lib/arvbox/docker/service/ready/run-service    |   3 +
 tools/arvbox/lib/arvbox/docker/service/sdk/run     |   4 +
 .../lib/arvbox/docker/service/sdk/run-service      |   5 ++
 .../arvbox/lib/arvbox/docker/service/slurmctld/run |   3 +
 tools/arvbox/lib/arvbox/docker/service/slurmd/run  |   3 +
 tools/arvbox/lib/arvbox/docker/service/ssh/run     |   3 +
 .../lib/arvbox/docker/service/sso/run-service      |   3 +
 tools/arvbox/lib/arvbox/docker/service/vm/run      |   4 +
 .../lib/arvbox/docker/service/vm/run-service       |   3 +
 .../arvbox/docker/service/websockets/run-service   |   3 +
 .../arvbox/lib/arvbox/docker/service/workbench/run |   4 +
 .../arvbox/docker/service/workbench/run-service    |   3 +
 tools/arvbox/lib/arvbox/docker/waitforpostgres.sh  |   4 +
 tools/crunchstat-summary/MANIFEST.in               |   4 +
 tools/crunchstat-summary/bin/crunchstat-summary    |   3 +
 .../crunchstat_summary/__init__.py                 |   4 +
 .../crunchstat_summary/chartjs.js                  |   4 +
 .../crunchstat_summary/chartjs.py                  |   4 +
 .../crunchstat_summary/command.py                  |   4 +
 .../crunchstat_summary/reader.py                   |   4 +
 .../crunchstat_summary/summarizer.py               |   4 +
 tools/crunchstat-summary/setup.py                  |   3 +
 tools/crunchstat-summary/tests/test_examples.py    |   4 +
 tools/keep-block-check/keep-block-check.go         |   4 +
 tools/keep-block-check/keep-block-check_test.go    |   4 +
 tools/keep-exercise/keep-exercise.go               |   4 +
 tools/keep-rsync/keep-rsync.go                     |   4 +
 tools/keep-rsync/keep-rsync_test.go                |   4 +
 1837 files changed, 8435 insertions(+), 409 deletions(-)
 create mode 100644 apps/workbench/app/assets/javascripts/edit_collection_tags.js
 create mode 100644 apps/workbench/app/views/collections/_show_tag_rows.html.erb
 create mode 100644 apps/workbench/app/views/collections/_show_tags.html.erb
 create mode 100644 apps/workbench/app/views/collections/save_tags.js.erb
 create mode 100644 apps/workbench/app/views/collections/tags.js.erb
 create mode 100644 apps/workbench/test/controllers/trash_items_controller_test.rb
 create mode 100644 doc/images/trash-button-topnav.png
 create mode 100644 doc/user/tutorials/tutorial-keep-collection-lifecycle.html.textile.liquid
 create mode 100644 sdk/cwl/tests/noreuse.cwl
 delete mode 100644 sdk/go/auth/basic_auth_go13.go
 delete mode 100644 sdk/go/auth/basic_auth_go14.go
 delete mode 100644 sdk/go/auth/basic_auth_test.go
 copy services/nodemanager/tests/{fake.cfg.template => fake_azure.cfg.template} (98%)
 copy services/nodemanager/tests/{fake.cfg.template => fake_ec2.cfg.template} (78%)
 rename services/nodemanager/tests/{fake.cfg.template => fake_gce.cfg.template} (77%)

       via  d53ae1523e74c6edcc89e1cd6285d2fe829d92c8 (commit)
       via  5936cf79d596af1c1e4075b9d3d63d341aa4995d (commit)
       via  44c95f99098fa6c6acbfa82d4b6cbc6015eb6e39 (commit)
       via  060d38d627bd1e51dd2b3c6e7de9af6aa7d7b6f3 (commit)
       via  23d6cfd5b41e607c3456011be9af95e5882bd7be (commit)
       via  004c230cb750a3ad4a3d1e3928b266537e6d366e (commit)
       via  cc4e8f68604233d4dd00679fbc8e14aeb6fa7479 (commit)
       via  ec88c9eee4d0e4827e28f015c464adef43773005 (commit)
       via  0f644e242ef37c911ad3dc25aca8135c339de349 (commit)
       via  7041d6b1812a107abe862b9e6194759474028b3e (commit)
       via  13abd32463ba8bb3f281b94a424f51beac8d3825 (commit)
       via  62ed8312acadacf25189ce5d5da0f37c016739dd (commit)
       via  9fb7687e6703fa66ed14f98fe212c6c3b6d8b101 (commit)
       via  2a97a35394b560daa52eef95616429603dfeb8b5 (commit)
       via  622d86f9541c1d7d1971d6e4ad08478ade192212 (commit)
       via  a27e0874320e408124fee837b355995350bbc7ee (commit)
       via  8051c3a14d40f0d410e4ddf54d89a084475d807e (commit)
       via  b02577b15b33f134b0f8481f4da6812d2b6372ba (commit)
       via  5c860fdbf28128e7d11a9dff8b5c30777c2cbfeb (commit)
       via  9ab861df33e29c16450b380a3d5ac7c629edb4d1 (commit)
       via  ef4ca87900bd023849aca62952ad2a27cfe40d34 (commit)
       via  c5a8ad7751e13560a6cde34395ea76f380c8a80d (commit)
       via  47b2e4988e9bfb69ef00de1c900a20f714af5f2f (commit)
       via  6d146b5f5f7fd6310f4ded16851c8cc02037efc8 (commit)
       via  10ae0e5de9277b3dbfce53fb4240778af523a199 (commit)
       via  80459d52161120ae8e33da140984d596271d5195 (commit)
       via  69e9a3e41a8d381adc095718a73a8a99a7943a5a (commit)
       via  7800f12fccea5675d71159ddf7c868f4074f8f56 (commit)
       via  80f755b89c729a2772e9e5f5a6b23f20552f8211 (commit)
       via  d25db7c02aa07e9d4812a029753c2b8606cf35b1 (commit)
       via  50dba76531ad4fdd5ab79598aa192dd3bb1be314 (commit)
       via  d51c47d291aec2609bff80c7ef8bd6417b651e7a (commit)
       via  a4127e018442e1b8053307f376c2d8c66b3279fc (commit)
       via  b6244435a4470fbddc9f13edb4329d563e579e50 (commit)
       via  cffa37b8680c2730934b7f474836312bb7a1fe73 (commit)
       via  aee74220328be12113ea597e593b4ab6f120aeac (commit)
       via  55bdcab45a5e059ecc218099a30ff5ad231a627f (commit)
       via  ecc8ee4e5edabaf7d888f55a99184b1efe4a9060 (commit)
       via  b17b7dd25a7daea501538419fadfd79b46a72aeb (commit)
       via  7415bc3f7239b5c062e3876681265912d8150edd (commit)
       via  2e1d7b1356e2063c2fbd6a1bf26176ebbcb4e63c (commit)
       via  cabba9a1b8046d1c75c302659cc23de59689ce69 (commit)
       via  d53b4de9b3b23d8fec31be0254a9a0ec4355884a (commit)
       via  303650fa703e0661a71ae44fbbfcc1f28f423196 (commit)
       via  e6a720d548ea851e5db9970f013456c8daeb35fc (commit)
       via  e4cb545184144fa761aa9b692597df8d10e110a4 (commit)
       via  55459e4c87f2ff9a2975971cf73b420f8d30bfc2 (commit)
       via  d43dce642a9681a33a5259f5bde05c8d3f3b690e (commit)
       via  3f9fefd28e1da09f006b00406b4a156b8d87d72e (commit)
       via  b7cf3197e2f5823cc67c0d125a8841943dcb9b5c (commit)
       via  8c2b89cb6a34b2f1a4ed672e8a883c680ffca80a (commit)
       via  55063ad6fc06f74392338802dd70cd315abf3a1a (commit)
       via  9318b234cbfae138524e45080f549c277e15776b (commit)
       via  1883b07d5de707066bf996c1526073df323c3991 (commit)
       via  48f4c496e659bc28446bfd5aa2d469d5316d49cb (commit)
       via  e7672a0b679659d6ba90d23b4e102fba747fa9ef (commit)
       via  01c692dd9d29436f98c8550aabd3eb3897ccadb1 (commit)
       via  c38b769bd478214e8d70bc442505a502f501517d (commit)
       via  4b056c34fa04a3b611a0cf5f70e9b8d59b7ef632 (commit)
       via  5bace39d3a7054663ff8b8e79c5ca2a4c3502300 (commit)
      from  441ef97e93a951b349356df96d8a6ef604c6cab7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit d53ae1523e74c6edcc89e1cd6285d2fe829d92c8
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Thu Jun 29 16:43:07 2017 -0300

    11789: Added support for the corner case of needing to use a pathname
    pattern that refers to a file or directory directoy beneath a given
    input dir, the user should use './file-to-exclude.*' to do this.
    Updated test to check for thi new behavior.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>

diff --git a/sdk/python/arvados/commands/put.py b/sdk/python/arvados/commands/put.py
index 9fcd27c..68f63b1 100644
--- a/sdk/python/arvados/commands/put.py
+++ b/sdk/python/arvados/commands/put.py
@@ -168,6 +168,8 @@ using a path-like pattern like 'subdir/*.txt', all text files inside 'subdir'
 directory, relative to the provided input dirs will be excluded.
 When using a filename pattern like '*.txt', any text file will be excluded
 no matter where is placed.
+For the special case of needing to exclude only files or dirs directly below
+the given input directory, you can use a pattern like './exclude_this.gif'.
 You can specify multiple patterns by using this argument more than once.
 """)
 
@@ -920,7 +922,7 @@ _machine_format = "{} {}: {{}} written {{}} total\n".format(sys.argv[0],
 def pathname_match(pathname, pattern):
     name = pathname.split(os.sep)
     # Fix patterns like 'some/subdir/' or 'some//subdir'
-    pat = [x for x in pattern.split(os.sep) if x != '']
+    pat = [x for x in pattern.split(os.sep) if x != '' and x != '.']
     if len(name) != len(pat):
         return False
     for i in range(len(name)):
@@ -1009,35 +1011,37 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr):
     exclude_names = None
     if len(args.exclude) > 0:
         # We're supporting 2 kinds of exclusion patterns:
-        # 1) --exclude '*.jpg'      (file/dir name patterns, will only match
-        #                            the name)
-        # 2) --exclude 'foo/bar'    (file/dir path patterns, will match the
+        # 1)   --exclude '*.jpg'    (file/dir name patterns, will only match
+        #                            the name, wherever the file is on the tree)
+        # 2.1) --exclude 'foo/bar'  (file/dir path patterns, will match the
         #                            entire path, and should be relative to
         #                            any input dir argument)
+        # 2.2) --exclude './*.jpg'  (Special case for excluding files/dirs
+        #                            placed directly underneath the input dir)
         for p in args.exclude:
             # Only relative paths patterns allowed
             if p.startswith(os.sep):
                 logger.error("Cannot use absolute paths with --exclude")
                 sys.exit(1)
             if os.path.dirname(p):
-                # We don't support of path patterns with '.' or '..'
+                # We don't support of path patterns with '..'
                 p_parts = p.split(os.sep)
-                if '.' in p_parts or '..' in p_parts:
+                if '..' in p_parts:
                     logger.error(
-                        "Cannot use path patterns that include '.' or '..'")
+                        "Cannot use path patterns that include or '..'")
                     sys.exit(1)
                 # Path search pattern
                 exclude_paths.append(p)
             else:
                 # Name-only search pattern
                 name_patterns.append(p)
-        # For name only matching, we can combine all patterns into a single regexp,
-        # for better performance.
+        # For name only matching, we can combine all patterns into a single
+        # regexp, for better performance.
         exclude_names = re.compile('|'.join(
             [fnmatch.translate(p) for p in name_patterns]
         )) if len(name_patterns) > 0 else None
-        # Show the user the patterns to be used, just in case they weren't specified inside
-        # quotes and got changed by the shell expansion.
+        # Show the user the patterns to be used, just in case they weren't
+        # specified inside quotes and got changed by the shell expansion.
         logger.info("Exclude patterns: {}".format(args.exclude))
 
     # If this is used by a human, and there's at least one directory to be
diff --git a/sdk/python/tests/test_arv_put.py b/sdk/python/tests/test_arv_put.py
index 802dbdb..b8065ef 100644
--- a/sdk/python/tests/test_arv_put.py
+++ b/sdk/python/tests/test_arv_put.py
@@ -956,15 +956,17 @@ class ArvPutIntegrationTest(run_test_server.TestCaseWithServers,
                 f.write("This is %s" % fname)
         col = self.run_and_find_collection("", ['--no-progress',
                                                 '--exclude', 'subdir/*2.txt',
+                                                '--exclude', './file1.*',
                                                  tmpdir])
         self.assertNotEqual(None, col['uuid'])
         c = arv_put.api_client.collections().get(uuid=col['uuid']).execute()
-        # Only tmpdir/file2.txt should have been uploaded
-        self.assertRegex(c['manifest_text'], r'^.*:file1.txt')
-        self.assertRegex(c['manifest_text'],
-                         r'^\./%s.*:file2.txt' % os.path.basename(tmpdir))
+        # Only tmpdir/file1.txt & tmpdir/subdir/file2.txt should have been excluded
+        self.assertNotRegex(c['manifest_text'],
+                            r'^\./%s.*:file1.txt' % os.path.basename(tmpdir))
         self.assertNotRegex(c['manifest_text'],
                             r'^\./%s/subdir.*:file2.txt' % os.path.basename(tmpdir))
+        self.assertRegex(c['manifest_text'],
+                         r'^\./%s.*:file2.txt' % os.path.basename(tmpdir))
         self.assertRegex(c['manifest_text'], r'^.*:file3.txt')
 
 

commit 5936cf79d596af1c1e4075b9d3d63d341aa4995d
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Thu Jun 29 12:34:59 2017 -0300

    11789: Replaced filter() with list comprehensions.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>

diff --git a/sdk/python/arvados/commands/put.py b/sdk/python/arvados/commands/put.py
index cd55914..9fcd27c 100644
--- a/sdk/python/arvados/commands/put.py
+++ b/sdk/python/arvados/commands/put.py
@@ -456,8 +456,8 @@ class ArvPutUploadJob(object):
         """
         # If there aren't special files to be read, reset total bytes count to zero
         # to start counting.
-        if not any(filter(lambda p: not (os.path.isfile(p) or os.path.isdir(p)),
-                          self.paths)):
+        if not any([p for p in self.paths
+                    if not (os.path.isfile(p) or os.path.isdir(p))]):
             self.bytes_expected = 0
 
         for path in self.paths:
@@ -490,22 +490,20 @@ class ArvPutUploadJob(object):
                         root_relpath = ''
                     # Exclude files/dirs by full path matching pattern
                     if self.exclude_paths:
-                        dirs[:] = list(filter(
-                            lambda d: not any(
-                                [pathname_match(os.path.join(root_relpath, d),
-                                                pat)
-                                 for pat in self.exclude_paths]),
-                            dirs))
-                        files = list(filter(
-                            lambda f: not any(
-                                [pathname_match(os.path.join(root_relpath, f),
-                                                pat)
-                                 for pat in self.exclude_paths]),
-                            files))
+                        dirs[:] = [d for d in dirs
+                                   if not any(pathname_match(
+                                           os.path.join(root_relpath, d), pat)
+                                              for pat in self.exclude_paths)]
+                        files = [f for f in files
+                                 if not any(pathname_match(
+                                         os.path.join(root_relpath, f), pat)
+                                            for pat in self.exclude_paths)]
                     # Exclude files/dirs by name matching pattern
                     if self.exclude_names is not None:
-                        dirs[:] = list(filter(lambda d: not self.exclude_names.match(d), dirs))
-                        files = list(filter(lambda f: not self.exclude_names.match(f), files))
+                        dirs[:] = [d for d in dirs
+                                   if not self.exclude_names.match(d)]
+                        files = [f for f in files
+                                 if not self.exclude_names.match(f)]
                     # Make os.walk()'s dir traversing order deterministic
                     dirs.sort()
                     files.sort()

commit 44c95f99098fa6c6acbfa82d4b6cbc6015eb6e39
Merge: 441ef97 060d38d
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Thu Jun 29 11:48:14 2017 -0300

    11789: Merge branch 'master' into 11789-arvput-exclude-flag
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>


-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list