[ARVADOS] updated: 050be6a5be43ab503820955dbca2751ca368063c
Git user
git at public.curoverse.com
Wed Jun 14 15:48:48 EDT 2017
Summary of changes:
.licenseignore | 46 ++
apps/workbench/app/assets/images/trash-icon.png | Bin 0 -> 18381 bytes
.../workbench/app/assets/javascripts/filterable.js | 3 +-
.../app/assets/javascripts/select_modal.js | 1 +
.../app/assets/javascripts/selection.js.erb | 4 +
.../app/controllers/application_controller.rb | 7 +
.../controllers/container_requests_controller.rb | 92 ++-
.../app/controllers/keep_disks_controller.rb | 1 +
.../workbench/app/controllers/search_controller.rb | 2 +
.../app/controllers/trash_items_controller.rb | 88 +++
apps/workbench/app/controllers/users_controller.rb | 1 +
.../app/controllers/workflows_controller.rb | 4 +
apps/workbench/app/helpers/application_helper.rb | 8 +
.../app/helpers/pipeline_instances_helper.rb | 2 +-
apps/workbench/app/helpers/provenance_helper.rb | 73 +-
apps/workbench/app/models/arvados_base.rb | 12 +
apps/workbench/app/models/arvados_resource_list.rb | 19 +
apps/workbench/app/models/collection.rb | 3 +
apps/workbench/app/models/container.rb | 4 +-
apps/workbench/app/models/container_request.rb | 4 +-
apps/workbench/app/models/container_work_unit.rb | 44 +-
apps/workbench/app/models/job.rb | 2 +-
apps/workbench/app/models/pipeline_instance.rb | 7 +-
apps/workbench/app/models/proxy_work_unit.rb | 41 +-
apps/workbench/app/models/work_unit.rb | 4 +
apps/workbench/app/models/workflow.rb | 8 +
.../app/views/application/_breadcrumbs.html.erb | 7 +
.../application/_show_text_with_locators.html.erb | 31 +
.../_extra_tab_line_buttons.html.erb | 50 +-
.../_show_provenance.html.erb | 4 +-
.../_show_recent.html.erb | 24 +-
.../container_requests/_show_recent_rows.html.erb | 36 +
.../app/views/container_requests/index.html.erb | 11 +
.../app/views/projects/_show_dashboard.html.erb | 24 +-
.../trash_items/_create_new_object_button.html.erb | 1 +
.../views/trash_items/_show_recent_trash.html.erb | 54 ++
.../views/trash_items/_show_trash_rows.html.erb | 32 +
.../app/views/trash_items/_untrash_item.html.erb | 7 +
.../workbench/app/views/trash_items/index.html.erb | 1 +
.../untrash_items.js.erb} | 3 +-
.../app/views/users/_show_activity.html.erb | 2 +-
.../views/work_units/_component_detail.html.erb | 97 ++-
.../views/work_units/_show_all_processes.html.erb | 2 +-
.../app/views/work_units/_show_child.html.erb | 5 +-
.../app/views/work_units/_show_status.html.erb | 19 +-
.../app/views/work_units/_show_table_data.html.erb | 14 +
.../app/views/workflows/_show_definition.html.erb | 48 ++
.../app/views/workflows/_show_recent.html.erb | 65 ++
apps/workbench/app/views/workflows/show.html.erb | 20 +
apps/workbench/config/routes.rb | 5 +
apps/workbench/fpm-info.sh | 9 +-
.../controllers/application_controller_test.rb | 2 +-
.../container_requests_controller_test.rb | 96 ++-
.../test/controllers/search_controller_test.rb | 23 +
.../test/controllers/workflows_controller_test.rb | 12 +
.../test/integration/container_requests_test.rb | 40 ++
apps/workbench/test/integration/trash_test.rb | 79 +++
apps/workbench/test/integration/work_units_test.rb | 41 ++
.../test/unit/arvados_resource_list_test.rb | 8 +
apps/workbench/test/unit/link_test.rb | 3 +
apps/workbench/test/unit/pipeline_instance_test.rb | 3 +
apps/workbench/test/unit/work_unit_test.rb | 7 +-
build/check-copyright-notices | 201 ++++++
build/{libcloud-pin => libcloud-pin.sh} | 0
.../ubuntu1604/Dockerfile | 2 +-
build/run-build-packages-one-target.sh | 8 +
build/run-build-packages-python-and-ruby.sh | 2 +-
build/run-build-packages.sh | 2 +-
build/run-library.sh | 8 +-
build/run-tests.sh | 131 ++--
doc/Rakefile | 3 +-
doc/api/methods/groups.html.textile.liquid | 1 +
...nstall-manual-prerequisites.html.textile.liquid | 11 +-
doc/install/migrate-docker19.html.textile.liquid | 9 +-
doc/start/index.html.textile.liquid.bkup | 50 --
doc/user/cwl/cwl-extensions.html.textile.liquid | 17 +-
doc/user/cwl/cwl-run-options.html.textile.liquid | 20 +
doc/user/cwl/cwl-runner.html.textile.liquid | 2 +-
doc/user/cwl/cwl-style.html.textile.liquid | 5 +
sdk/cli/bin/crunch-job | 8 +-
sdk/cwl/arvados_cwl/__init__.py | 76 ++-
sdk/cwl/arvados_cwl/arv-cwl-schema.yml | 35 +
sdk/cwl/arvados_cwl/arvcontainer.py | 120 +++-
sdk/cwl/arvados_cwl/arvjob.py | 9 +-
sdk/cwl/arvados_cwl/arvworkflow.py | 5 +-
sdk/cwl/arvados_cwl/crunch_script.py | 8 +-
sdk/cwl/arvados_cwl/fsaccess.py | 7 +-
sdk/cwl/arvados_cwl/pathmapper.py | 81 ++-
sdk/cwl/arvados_cwl/runner.py | 28 +-
sdk/cwl/setup.py | 9 +-
sdk/cwl/test_with_arvbox.sh | 14 +-
.../cwl/tests/collection_per_tool/a.txt | 0
.../cwl/tests/collection_per_tool/b.txt | 0
.../cwl/tests/collection_per_tool/c.txt | 0
.../collection_per_tool/collection_per_tool.cwl | 13 +
.../collection_per_tool_packed.cwl | 45 ++
sdk/cwl/tests/collection_per_tool/step1.cwl | 15 +
sdk/cwl/tests/collection_per_tool/step2.cwl | 15 +
sdk/cwl/tests/test_container.py | 253 +++++--
sdk/cwl/tests/test_job.py | 2 +-
sdk/cwl/tests/test_pathmapper.py | 23 +-
sdk/cwl/tests/test_submit.py | 164 +++--
sdk/cwl/tests/wf/expect_packed.cwl | 4 +-
sdk/cwl/tests/wf/submit_wf_packed.cwl | 2 +-
sdk/go/arvados/client.go | 19 +-
sdk/go/arvados/container.go | 1 +
sdk/go/arvadosclient/arvadosclient.go | 98 +--
sdk/go/arvadosclient/arvadosclient_test.go | 25 +-
sdk/go/crunchrunner/crunchrunner.go | 66 +-
sdk/go/crunchrunner/crunchrunner_test.go | 51 +-
sdk/go/dispatch/throttle_test.go | 29 +-
sdk/go/keepclient/block_cache.go | 4 +
sdk/go/keepclient/discover.go | 199 ++++--
sdk/go/keepclient/discover_test.go | 17 +-
sdk/go/keepclient/hashcheck.go | 10 +-
sdk/go/keepclient/keepclient.go | 187 ++++--
sdk/go/keepclient/keepclient_test.go | 37 +-
sdk/go/keepclient/support.go | 87 +--
sdk/go/manifest/manifest.go | 1 -
sdk/python/arvados/__init__.py | 55 +-
sdk/python/arvados/_normalize_stream.py | 5 +-
sdk/python/arvados/_ranges.py | 16 +-
sdk/python/arvados/api.py | 21 +-
sdk/python/arvados/arvfile.py | 344 ++++++----
sdk/python/arvados/cache.py | 9 +-
sdk/python/arvados/collection.py | 108 +--
sdk/python/arvados/commands/_util.py | 2 -
sdk/python/arvados/commands/arv_copy.py | 24 +-
sdk/python/arvados/commands/get.py | 22 +-
sdk/python/arvados/commands/keepdocker.py | 11 +-
sdk/python/arvados/commands/ls.py | 5 +-
sdk/python/arvados/commands/migrate19.py | 21 +-
sdk/python/arvados/commands/put.py | 111 ++-
sdk/python/arvados/commands/run.py | 83 +--
sdk/python/arvados/commands/ws.py | 5 +-
sdk/python/arvados/crunch.py | 1 +
sdk/python/arvados/errors.py | 4 +-
sdk/python/arvados/events.py | 31 +-
sdk/python/arvados/keep.py | 104 +--
sdk/python/arvados/retry.py | 8 +-
sdk/python/arvados/safeapi.py | 14 +-
sdk/python/arvados/stream.py | 30 +-
sdk/python/arvados/timer.py | 4 +-
sdk/python/arvados/util.py | 8 +-
sdk/python/bin/arv-get | 2 +-
sdk/python/setup.py | 9 +-
sdk/python/tests/arvados_testutil.py | 77 ++-
sdk/python/tests/keepstub.py | 130 ++--
sdk/python/tests/manifest_examples.py | 5 +-
.../tests/performance/performance_profiler.py | 14 +-
sdk/python/tests/performance/test_a_sample.py | 7 +-
sdk/python/tests/run_test_server.py | 18 +-
sdk/python/tests/test_api.py | 27 +-
sdk/python/tests/test_arv_copy.py | 17 +-
sdk/python/tests/test_arv_get.py | 81 ++-
sdk/python/tests/test_arv_keepdocker.py | 39 +-
sdk/python/tests/test_arv_ls.py | 25 +-
sdk/python/tests/test_arv_normalize.py | 25 +-
sdk/python/tests/test_arv_put.py | 107 ++-
sdk/python/tests/test_arv_run.py | 17 +-
sdk/python/tests/test_arv_ws.py | 16 +-
sdk/python/tests/test_arvfile.py | 419 ++++++++----
sdk/python/tests/test_benchmark_collections.py | 11 +-
sdk/python/tests/test_cache.py | 20 +-
sdk/python/tests/test_collections.py | 438 ++++++++----
sdk/python/tests/test_errors.py | 21 +-
sdk/python/tests/test_events.py | 52 +-
sdk/python/tests/test_keep_client.py | 164 +++--
sdk/python/tests/test_keep_locator.py | 20 +-
sdk/python/tests/test_pipeline_template.py | 3 +-
sdk/python/tests/test_retry.py | 15 +-
sdk/python/tests/test_retry_job_helpers.py | 8 +-
sdk/python/tests/test_stream.py | 57 +-
sdk/python/tests/test_util.py | 6 +-
sdk/ruby/lib/arvados.rb | 23 +-
sdk/ruby/lib/arvados/keep.rb | 6 +-
services/api/.gitignore | 3 +-
services/api/Gemfile | 53 +-
services/api/Gemfile.lock | 279 ++++----
services/api/Rakefile | 6 -
.../api/app/controllers/application_controller.rb | 46 +-
.../arvados/v1/collections_controller.rb | 21 +-
.../arvados/v1/containers_controller.rb | 9 +
.../controllers/arvados/v1/groups_controller.rb | 38 +-
.../arvados/v1/keep_services_controller.rb | 1 +
.../app/controllers/arvados/v1/nodes_controller.rb | 6 +-
.../arvados/v1/repositories_controller.rb | 17 +-
.../controllers/arvados/v1/schema_controller.rb | 14 +-
.../app/controllers/arvados/v1/users_controller.rb | 2 +-
.../api/app/controllers/database_controller.rb | 4 +-
.../app/controllers/user_sessions_controller.rb | 3 +-
.../api/app/models/api_client_authorization.rb | 8 +-
services/api/app/models/arvados_model.rb | 122 +++-
services/api/app/models/collection.rb | 6 +-
services/api/app/models/container.rb | 136 +++-
services/api/app/models/container_request.rb | 4 +
services/api/app/models/job.rb | 101 ++-
services/api/app/models/link.rb | 5 -
services/api/app/models/log.rb | 2 +-
services/api/app/models/pipeline_instance.rb | 4 +
services/api/app/models/pipeline_template.rb | 4 +
services/api/app/models/user.rb | 63 +-
services/api/app/models/virtual_machine.rb | 6 +-
services/api/app/models/workflow.rb | 4 +
services/api/config/application.default.yml | 71 +-
services/api/config/application.rb | 31 +-
.../api/config/environments/development.rb.example | 3 -
.../api/config/environments/production.rb.example | 2 +-
services/api/config/environments/test.rb.example | 5 +-
services/api/config/initializers/eventbus.rb | 38 +-
services/api/config/initializers/load_config.rb | 1 +
.../api/config/initializers/noop_deep_munge.rb | 9 -
.../config/initializers/permit_all_parameters.rb | 1 +
services/api/config/initializers/time_format.rb | 2 +
services/api/config/routes.rb | 29 +-
...0170319063406_serialized_columns_accept_null.rb | 5 +
...1_add_created_by_job_task_index_to_job_tasks.rb | 5 +
...0170419173712_add_object_owner_index_to_logs.rb | 5 +
...esting_container_index_to_container_requests.rb | 5 +
services/api/db/structure.sql | 36 +-
services/api/fpm-info.sh | 2 +-
services/api/lib/can_be_an_owner.rb | 41 +-
services/api/lib/create_ancestor_view.sql | 14 +
services/api/lib/create_superuser_token.rb | 4 +-
services/api/lib/crunch_dispatch.rb | 2 +-
services/api/lib/eventbus.rb | 358 ----------
services/api/lib/has_uuid.rb | 14 +-
services/api/lib/load_param.rb | 2 +-
services/api/lib/log_reuse_info.rb | 16 +
services/api/lib/serializers.rb | 6 +
.../api/lib/tasks/delete_old_container_logs.rake | 2 +-
services/api/lib/tasks/delete_old_job_logs.rake | 2 +-
services/api/lib/whitelist_update.rb | 15 +-
.../test/fixtures/api_client_authorizations.yml | 7 +
services/api/test/fixtures/collections.yml | 2 +-
services/api/test/fixtures/container_requests.yml | 35 +-
services/api/test/fixtures/containers.yml | 8 +
services/api/test/fixtures/jobs.yml | 19 +
.../arvados/v1/collections_controller_test.rb | 47 +-
.../arvados/v1/containers_controller_test.rb | 23 +
.../arvados/v1/groups_controller_test.rb | 62 ++
.../arvados/v1/job_reuse_controller_test.rb | 20 +
.../arvados/v1/keep_services_controller_test.rb | 6 +-
.../arvados/v1/schema_controller_test.rb | 34 +
.../functional/arvados/v1/users_controller_test.rb | 1 +
.../arvados/v1/virtual_machines_controller_test.rb | 4 +-
.../test/functional/database_controller_test.rb | 2 +-
.../api_client_authorizations_scopes_test.rb | 6 +-
.../api/test/integration/crunch_dispatch_test.rb | 2 +-
.../api/test/integration/database_reset_test.rb | 2 -
services/api/test/integration/errors_test.rb | 2 +-
services/api/test/integration/groups_test.rb | 13 +
...{noop_deep_munge.rb => noop_deep_munge_test.rb} | 29 +-
services/api/test/integration/pipeline_test.rb | 2 +-
.../api/test/integration/reader_tokens_test.rb | 2 +-
services/api/test/integration/websocket_test.rb | 742 ---------------------
services/api/test/test_helper.rb | 26 +-
services/api/test/unit/arvados_model_test.rb | 76 ++-
services/api/test/unit/container_test.rb | 30 +-
.../api/test/unit/create_superuser_token_test.rb | 2 +-
services/api/test/unit/crunch_dispatch_test.rb | 2 +-
services/api/test/unit/job_test.rb | 41 +-
services/api/test/unit/user_test.rb | 12 +-
services/api/test/unit/workflow_test.rb | 8 +-
.../crunch-dispatch-slurm/crunch-dispatch-slurm.go | 26 +-
.../crunch-dispatch-slurm_test.go | 98 ++-
services/crunch-run/crunchrun.go | 165 ++++-
services/crunch-run/crunchrun_test.go | 121 +++-
services/crunch-run/logging.go | 234 ++++++-
services/crunch-run/logging_test.go | 43 ++
services/fuse/tests/test_tmp_collection.py | 13 +
services/keep-balance/integration_test.go | 9 +-
services/keep-web/cache.go | 259 +++++++
services/keep-web/cache_test.go | 104 +++
services/keep-web/handler.go | 38 +-
services/keep-web/handler_test.go | 31 +-
services/keep-web/main.go | 10 +
services/keep-web/server_test.go | 14 +-
services/keep-web/status_test.go | 46 ++
services/keep-web/usage.go | 20 +
services/keepproxy/keepproxy.go | 144 ++--
services/keepproxy/keepproxy_test.go | 61 +-
services/keepproxy/proxy_client.go | 19 +
services/keepstore/azure_blob_volume.go | 5 +
services/keepstore/handlers.go | 52 +-
services/keepstore/keepstore.go | 1 -
services/keepstore/mounts_test.go | 104 +++
services/keepstore/pull_worker.go | 87 +--
services/keepstore/pull_worker_integration_test.go | 40 +-
services/keepstore/pull_worker_test.go | 234 +++----
services/keepstore/s3_volume.go | 5 +
services/keepstore/trash_worker.go | 12 +-
services/keepstore/trash_worker_test.go | 29 +-
services/keepstore/volume.go | 65 ++
services/keepstore/volume_test.go | 4 +
services/keepstore/volume_unix.go | 77 +++
services/keepstore/work_queue_test.go | 22 +-
.../nodemanager/arvnodeman/computenode/__init__.py | 85 ++-
.../arvnodeman/computenode/dispatch/__init__.py | 65 +-
.../arvnodeman/computenode/dispatch/slurm.py | 6 +-
.../arvnodeman/computenode/driver/__init__.py | 22 +-
.../arvnodeman/computenode/driver/azure.py | 1 -
services/nodemanager/arvnodeman/config.py | 20 +-
services/nodemanager/arvnodeman/daemon.py | 59 +-
services/nodemanager/arvnodeman/jobqueue.py | 62 +-
services/nodemanager/arvnodeman/launcher.py | 13 +-
services/nodemanager/arvnodeman/nodelist.py | 23 +-
.../nodemanager/arvnodeman/test}/__init__.py | 0
.../nodemanager/arvnodeman/test/fake_driver.py | 127 ++++
services/nodemanager/arvnodeman/timedcallback.py | 4 +-
services/nodemanager/doc/azure.example.cfg | 2 +
services/nodemanager/doc/ec2.example.cfg | 2 +
services/nodemanager/doc/gce.example.cfg | 2 +
.../azure.example.cfg => tests/fake.cfg.template} | 24 +-
services/nodemanager/tests/integration_test.py | 360 ++++++++++
.../nodemanager/tests/test_computenode_dispatch.py | 22 +-
.../tests/test_computenode_dispatch_slurm.py | 8 +-
.../tests/test_computenode_driver_azure.py | 13 -
.../tests/test_computenode_driver_ec2.py | 13 -
services/nodemanager/tests/test_daemon.py | 26 +-
services/nodemanager/tests/test_jobqueue.py | 42 +-
services/ws/config.go | 25 +-
services/ws/event_source.go | 9 +-
services/ws/server.go | 5 +-
tools/arvbox/bin/arvbox | 2 +-
tools/arvbox/lib/arvbox/docker/Dockerfile.base | 6 +-
tools/keep-block-check/keep-block-check.go | 14 +-
tools/keep-block-check/keep-block-check_test.go | 13 +-
tools/keep-exercise/keep-exercise.go | 9 +-
tools/keep-rsync/keep-rsync.go | 14 +-
tools/keep-rsync/keep-rsync_test.go | 149 ++---
vendor/.gitignore | 3 +
vendor/vendor.json | 370 ++++++++++
333 files changed, 9086 insertions(+), 4215 deletions(-)
create mode 100644 .licenseignore
create mode 100644 apps/workbench/app/assets/images/trash-icon.png
create mode 100644 apps/workbench/app/controllers/trash_items_controller.rb
create mode 100644 apps/workbench/app/views/application/_show_text_with_locators.html.erb
copy apps/workbench/app/views/{jobs => container_requests}/_show_provenance.html.erb (52%)
copy apps/workbench/app/views/{pipeline_instances => container_requests}/_show_recent.html.erb (61%)
create mode 100644 apps/workbench/app/views/container_requests/_show_recent_rows.html.erb
create mode 100644 apps/workbench/app/views/container_requests/index.html.erb
create mode 100644 apps/workbench/app/views/trash_items/_create_new_object_button.html.erb
create mode 100644 apps/workbench/app/views/trash_items/_show_recent_trash.html.erb
create mode 100644 apps/workbench/app/views/trash_items/_show_trash_rows.html.erb
create mode 100644 apps/workbench/app/views/trash_items/_untrash_item.html.erb
create mode 100644 apps/workbench/app/views/trash_items/index.html.erb
copy apps/workbench/app/views/{projects/remove_items.js.erb => trash_items/untrash_items.js.erb} (58%)
create mode 100644 apps/workbench/app/views/work_units/_show_table_data.html.erb
create mode 100644 apps/workbench/app/views/workflows/_show_definition.html.erb
create mode 100644 apps/workbench/app/views/workflows/_show_recent.html.erb
create mode 100644 apps/workbench/app/views/workflows/show.html.erb
create mode 100644 apps/workbench/test/integration/trash_test.rb
create mode 100755 build/check-copyright-notices
rename build/{libcloud-pin => libcloud-pin.sh} (100%)
delete mode 100644 doc/start/index.html.textile.liquid.bkup
rename services/api/log/.gitkeep => sdk/cwl/tests/collection_per_tool/a.txt (100%)
copy tools/crunchstat-summary/tests/__init__.py => sdk/cwl/tests/collection_per_tool/b.txt (100%)
copy tools/crunchstat-summary/tests/__init__.py => sdk/cwl/tests/collection_per_tool/c.txt (100%)
create mode 100644 sdk/cwl/tests/collection_per_tool/collection_per_tool.cwl
create mode 100644 sdk/cwl/tests/collection_per_tool/collection_per_tool_packed.cwl
create mode 100644 sdk/cwl/tests/collection_per_tool/step1.cwl
create mode 100644 sdk/cwl/tests/collection_per_tool/step2.cwl
mode change 100755 => 100644 sdk/python/arvados/commands/ls.py
delete mode 100644 services/api/config/initializers/noop_deep_munge.rb
create mode 100644 services/api/config/initializers/permit_all_parameters.rb
create mode 100644 services/api/db/migrate/20170319063406_serialized_columns_accept_null.rb
create mode 100644 services/api/db/migrate/20170419173031_add_created_by_job_task_index_to_job_tasks.rb
create mode 100644 services/api/db/migrate/20170419173712_add_object_owner_index_to_logs.rb
create mode 100644 services/api/db/migrate/20170419175801_add_requesting_container_index_to_container_requests.rb
create mode 100644 services/api/lib/create_ancestor_view.sql
delete mode 100644 services/api/lib/eventbus.rb
create mode 100644 services/api/lib/log_reuse_info.rb
rename services/api/test/integration/{noop_deep_munge.rb => noop_deep_munge_test.rb} (63%)
delete mode 100644 services/api/test/integration/websocket_test.rb
create mode 100644 services/keep-web/cache.go
create mode 100644 services/keep-web/cache_test.go
create mode 100644 services/keep-web/status_test.go
create mode 100644 services/keepproxy/proxy_client.go
create mode 100644 services/keepstore/mounts_test.go
copy {sdk/cwl/tests => services/nodemanager/arvnodeman/test}/__init__.py (100%)
create mode 100644 services/nodemanager/arvnodeman/test/fake_driver.py
copy services/nodemanager/{doc/azure.example.cfg => tests/fake.cfg.template} (95%)
create mode 100755 services/nodemanager/tests/integration_test.py
create mode 100644 vendor/.gitignore
create mode 100644 vendor/vendor.json
discards 3bb2699f6d418b508dd8bf35cec06f9f54ac6bba (commit)
via 050be6a5be43ab503820955dbca2751ca368063c (commit)
via 156f7186528045a58628c58f3b4b48fcb3825cd5 (commit)
via 0bd8810e6ea29ab242472b9dae11c621cf50953c (commit)
via 3c44c82acb3dbf50acd75f0c979d8a18ee11dbd0 (commit)
via 803d4fd3eff1d5c0d4cb9793fb06e1117039beae (commit)
via 2796844aee26155b5c78e7c69830652f51f7342e (commit)
via ec7510c680ee2065d6372fef6a340ef754dbe724 (commit)
via 9ae2b6b3427f131fc61f574a2061111c9626bf6c (commit)
via cd1a869f36d2a04c59fd995b83d12d5a0b529e19 (commit)
via 4ffb10314b3c3bc5883463c9bce14036cde374ff (commit)
via 85f5272570db52619b99f11c879c475743f36aee (commit)
via d4461f9c637e915d66aad807997e9909300f2f20 (commit)
via 3f0ec839af28e56eb94bc9507ab59df1e670e59f (commit)
via 123153139bbee3674c81325653d87fa19ffbe0e4 (commit)
via 3b3c3a0869c2cf528b9e1c45c969bbbd47f6446e (commit)
via 87c9678022eb027f8d7f02129c1ec052205387d8 (commit)
via b457758cefa151d377eb9074c31ae1e27a04d62c (commit)
via 6dd8a072ec2e305df687f72dd294d760ae6c8e23 (commit)
via abd90a9194482bb75b471afc0f11fba8bce786c7 (commit)
via 7899dbfa16983e230aa26766d01182cfb27259d1 (commit)
via d66b42e150030edff5ddb211d76d03d4bcd572ec (commit)
via cac20b7dd2177edebc0a4f8087032d1143bd524e (commit)
via 2fa4de30af88afd7bcac2f603497dcbe36e48429 (commit)
via 92b2d910cc7bc824ce74ed81976a746da73525fa (commit)
via d3be8a76e5d9a921fbb7798cb0a705b918d20add (commit)
via 0e3369b7179c4e483faf681e67279d762feaa33c (commit)
via b7a20a386bb6bf582c4bc92d8718b883417d4c48 (commit)
via aa12c56d26cb72824ddd2399e17e846cd9d9b483 (commit)
via 829f6add084f40546abbe2ba16fcb4e9e5643fc0 (commit)
via 1595481c3e4cc42cfa5a47bbe501eb6e6f83db9f (commit)
via d7bc150a11260ba93d3403ef4c49b12baf2a93a0 (commit)
via 590135864c4a977dddd3e42330d8b8608f916570 (commit)
via 29cb16bdd726b09f8cded0d245ed6a72c62eaf8b (commit)
via 7e0409e3b5e2fd80f7a74feb719dbc41c2193ef6 (commit)
via 9503aabc4f07b94f7877c0f782b6246176368f72 (commit)
via 039753cc37d512be4dcffad85332b66f2165169a (commit)
via 72e22b49ec2721d3a1369da768d3d74fa9c079c3 (commit)
via 9d894536b8a7044fdfa168f81a38c3408e6cd7b4 (commit)
via d22400822b3489c621e5dbd902749b1a547ca579 (commit)
via f7b0474852fa8f270605c4cb5eeaf85c910c421e (commit)
via 478d5dbf9a4ee280122db2a208b91d8ad97e3b99 (commit)
via 6246cacc17e8b90519143e717b7241e527678be9 (commit)
via eb21778470992713458dc42e4a115bd0a619c5de (commit)
via a15a137c593d24649e2960471d7273acad695186 (commit)
via f2fae587a47ae4e1344d6054960136f935b1449b (commit)
via b745c25cb15077f4f5cd658a6d59392c48bc8add (commit)
via 46580c9d21578ec9f0638c9cb464703c7ede00b3 (commit)
via 0940739d41d71154937354696634a2989a9db9fc (commit)
via 29665e2d9a543bffb237d148c3484c03b03e30aa (commit)
via 4daf12ad8cb2f74c3f3d72eafef7ed7a0621a4ac (commit)
via f1aed11fd3a5e204a2cf2e4fc5f099179e877eb6 (commit)
via 6fef82432952b78f61c7be80820e88804b3a47d7 (commit)
via aa552a3337c1a63d1638c39cb01ab03b0b9009cc (commit)
via 87ea4388edb977d246b09b78d9d4bfa5c2ba5170 (commit)
via b42d7d9ed4640296ae5d01d26268c4fdba1ca10c (commit)
via 9332a5837c291a5825fb0ac273515093b0dacee9 (commit)
via f9ff1c5444f7030fa0b372446bd40d4feed203c8 (commit)
via cc77c62e148a632c5b690c275fd9fbf659ad2715 (commit)
via 55315b668b8fa04572a44fd7db6598478f54130a (commit)
via 0a6adabd77bf483186a29a7cffef38866a5ee8e0 (commit)
via 0560a5812377315a92c8a4e9b41a68677832ea65 (commit)
via 695a100d4bd3bf4f5534c7e489c118c2917bf35a (commit)
via eace27b5fe2e945d68ef2d617fbae8f23f2b808a (commit)
via 81aa936c50bda0257d62dd59e45d5afba73a4bac (commit)
via dcd20d41fde4216345a20ddfa950b40de74b85b5 (commit)
via cb230b07e0125d819991bc74a1f528740068157d (commit)
via a10eb3ebf97a29687c6f43d705e30fb0349364d2 (commit)
via 51549f93489f5d57f71b7767528ee7dec9079fb6 (commit)
via 5f8a7ee855778644abf70e7058317891738d2ce1 (commit)
via 5d03f6499055ef109ca2c8d5d59941b25de1fa47 (commit)
via fd4bdb760eb47013b8b60b40859ba7f004ee8383 (commit)
via efcfd2cdc9a9ed6ab3af54e9a4e149d4bdf1f8d3 (commit)
via f834a9841fe27c18bc31e58636ec1bcdb833b54b (commit)
via 09794d996eca79b85d3ac0c21a4a43c65a51d0d7 (commit)
via 0f5295ae31362eefe182f3a2329b3903d6f82a3b (commit)
via ea47e67af0e7528f0bcb23f3b34019b308eaa68a (commit)
via c5e4c7027338235435e9698057847686baaee6cc (commit)
via 41372eb0088174d02505f657f0fa2dabbc845791 (commit)
via 75e00445b6de230493e9ee37483dd4c469db29b1 (commit)
via e4c7e6b368cf6d922db341580a2402a07c6cb079 (commit)
via 88abf688d7545fc663e0422f0c586107d4c56e5a (commit)
via 6c40c1c5b000b2eb0967df0f7ebaf613393501bc (commit)
via 916cf89b440fd13a9b9c055d817b34d339442ea3 (commit)
via 6d9ac912d421951ec363e40fbcfde2428aa2f8d9 (commit)
via 5a625a53394fa99ef7fb44ab63104b8195d963df (commit)
via 9ff2df8cfa1f0798c22e4b3c6ef91d4677961295 (commit)
via 7c7dc19ffa0a20fff6d97e51c874bfaca9596b24 (commit)
via 554873d2fb3aa095caaa6fece1c2321008a85b24 (commit)
via 7a98a4695a031c4b7b07d7244f3f293db7ebe0fc (commit)
via 63cfe7a9b391e1a07c6c6c8b0fab10b1c875f1be (commit)
via fd1b1b760f96e5c86e70dd8eb2e629b55f55fe55 (commit)
via a84b665349051a06df5728f435203c8353b5795a (commit)
via 27355f62088566a9388972e128bfb8ba77790e9a (commit)
via 75c5b123e0b4cbfebed9b15364a97c2209f94740 (commit)
via 4d0d27f83183b6659a570ae1fc07f95aefe0b23e (commit)
via 65622f423c2ee35250856657b06118481d53edc8 (commit)
via 741a9b3912c382b25507ca76fae15ddac020f302 (commit)
via 1cdeb90e271f2a0c50d3552ff702b8e6f9489c74 (commit)
via fc10c21d75b15e36c4f861fdd17bf985ca83d888 (commit)
via 9da81b40a1c0e65f2459106a4718e4adcf7551c4 (commit)
via 028e052db597498ee5c1412b606fa178c621b3ca (commit)
via 31ef294c700811eae8ade8dfc5fcb7ec40d1ad2e (commit)
via 5931243d745188851c8240e3e766d97aafdf935c (commit)
via b5d352d6099b60db5dcdd9183dcab3e8e17d729e (commit)
via 8e1efc4c74f86a986dd0c6f15f53777d0d2bf0bb (commit)
via 6fe6390690471cee8ba23984e3560fc4ced8b180 (commit)
via 505b5c4d23da212bf285b3279a756b4f02d75567 (commit)
via 23c8dd0d911c4b238169f399ff455f2dab9f0b4f (commit)
via 1ceeafd5411b47834b836019dfd21d4050158171 (commit)
via e3da56d96e191df11444877ed1989bd8f34bfa5a (commit)
via 7c03ff7b9ddac8dc232a910364fcecd32f86e03d (commit)
via 9d6fb27b6a0ef28062be37efdea20d1a4c7079d3 (commit)
via f7a665dcd8dfe96b49e63f3caa352f5e5f8b19a1 (commit)
via b436b04a6e0cd28eaa465bb928eea3195b114322 (commit)
via 3cd9054aa2699473f1af45c165441d7276162b46 (commit)
via dbd91c317d54da7123bee4f2d496b440b2ba9393 (commit)
via d0811968704eb02e3e98e46345fadf22cf95b5ec (commit)
via 0da65aef99133cb76661f56f2adac83a77ad8ac9 (commit)
via 4dac499d30988fd8289a40ad4128d6d471037180 (commit)
via d0b58511f396325bf083463d460567bf6f76e468 (commit)
via 5223e68fa0d1f1fc52c7285fa6844d7932ba9acb (commit)
via 79b826befbc0b62a822e2d0c922e5c4ea0a3bb7c (commit)
via d094ae4ee58f26e0585445eccb3be2d019ab020f (commit)
via 8ffcfd1523d2a023c0286976a1aed50fb70dea3a (commit)
via 9a7ea56065ed47ef114d569f137ff50d1efffc48 (commit)
via 932a318673b17b63a2f2d99a6ba170c908ef3b20 (commit)
via e578f043c4d3b45a08f15d365adea0386228a4bf (commit)
via 1d77dec0f7bc1cca34d52288bd39ecd0a79be250 (commit)
via d451eabbcbb8d5885fb30c2c341d93204a008596 (commit)
via 456dde006228871c522597abbc5fe8006e44ad4d (commit)
via bee4fa82c15b2188c2105fff3b52c305b38f04a6 (commit)
via 180074677191e4f30f90e8b8390245ab356b1c3f (commit)
via 6eae76355f346740cc50ddba4656239c507461ac (commit)
via f60885adec1fe9a7b92f30ffbd4f5bb112e1aeae (commit)
via 72a4000d8dc81879afae18ca440ab2ffaf712823 (commit)
via df6578e918d8c29baf314e671c28a96aea1c1d00 (commit)
via 4a1df4f3aed07a31da8570363b5eaceccf4dffa8 (commit)
via b310fc04b9e60b974f4bfc2c86a5c45ecd7c65f2 (commit)
via 8645888f12c25edaaac8e03fb5691cfcfbcdb9b2 (commit)
via 3b12ef6b6d7ff6852f6109ab71dbec382322a686 (commit)
via 43dbdec9f0f6361e4705671bbdade34cd18adefa (commit)
via dd58470216d6a416e4d831a3b9c25bfdaa255fff (commit)
via 67fbf00f0d868384f1585f2473b5f89455001638 (commit)
via 2e83bfa0e38b87632871f91cead42c9ead3d7bb7 (commit)
via ccc2ef472f5048059194e67b973d663c07816de9 (commit)
via 8045ed8ae35f2436cb3330de028294654af91c7b (commit)
via 89bf20191626c26dba2fcbdb4d660cd7c4063168 (commit)
via b22ff6242148a9b37baef6c74701fa85a8765adf (commit)
via a9b15a2f041744c8fac8c0b12fa8b61d1a7292f8 (commit)
via 138eedbea2658ef397c7a58ce48d6f06077ba140 (commit)
via 83b73a4718f09b106f225d45f08e10ae92ce3f38 (commit)
via cee8f888b442448b2bffe243da2e9cc5dcf29b04 (commit)
via 303424c3f3ed01f65c9f880ff1ff32bc7a46621b (commit)
via cad24bba2240b47f59bc5719a035e85ff5eb60ef (commit)
via 1e7d0d5fe2d2ec5c4fdbbe18d047ab70d8ae5db1 (commit)
via 49a9c33ea6119c42ad3d2d585ed7b2f9e4339132 (commit)
via fe7467555e7d6843bea4ede99bd07c1476df7d0d (commit)
via 642e59798974a4c3bb0ecfebd3fa790c912d1187 (commit)
via d956fd4fa88796c80edff99d4b1dcf97cbd0011d (commit)
via dfe5c5a6a288f59ffed7268458e1a09f26594215 (commit)
via d95ccc6bbbf94e957b939ca9d9aea71cda345944 (commit)
via c182087b563ddbb40fde2b1d0c185af481df3bc2 (commit)
via 8ac1775086e88da003b530210be1acb4c0f2c648 (commit)
via 02d1074b356837f1a06a25ac3dc353ecf541b444 (commit)
via d121e087ad1b4e91f869dbd57534c6d6ce51d19d (commit)
via 370036888e75b509ebf84ba8337273f7b9146f37 (commit)
via d77b362ffa44f0fd48cb7127ca34d6d676fad8ca (commit)
via 627fbeb0406fcdd9cdc9e90a6e9529f48dc37321 (commit)
via df55660fc8748a317219043153f0bb54150086a8 (commit)
via 84906c7124ab9707b5ccca94c83471fa551d9992 (commit)
via 865d1b22bb42a6c89ca9aa9a3513f3c61c6547c7 (commit)
via b1b7a0be3c789795675e731c8c64bee3cb6d718c (commit)
via 37470b030384ebe8a73e6d1e725cbde4abb924da (commit)
via b3f88934721fc97973b40786cae97e55e84b31d5 (commit)
via 513b7af1bfe31c0056129abebf60671810a0ef40 (commit)
via 6e5079ff9a0349c57ab2cf06398413018a921cc0 (commit)
via 78390940029ab08efecab923615c545b9da922b4 (commit)
via e9481fd0320a8f0dbecaa93eadbe3143c98bac53 (commit)
via 80407a6b686d5038bf89bbe12978ceb633e27332 (commit)
via fbc576b76977938cf7b742f9770ab90559136dc8 (commit)
via 867c69d1443b44311ab35f58304b304750c38066 (commit)
via 7a4bee5299767c8491bdfe7efaa8a936f2c2bf6a (commit)
via f0e917d2305c66cb7120125aaf6592ce2b9e3855 (commit)
via 9d33e0c4f98da668b23b85c54d20d22fe4b0f342 (commit)
via 42f5f3a29761ac9a943530157da376c798a4ac6d (commit)
via 9eff4af096f60b302abc9ad591f8b5fed45945a4 (commit)
via c4b5194c18567d470bb44c6eae29743ccaaa748d (commit)
via 8cc51c761385bd6acc5dbaf7e95994e916ca0d0d (commit)
via 74544f439360e3ece1d7609d76eb47bb4cf41faf (commit)
via 38de76ceaabe6f1b522a538a27dfeb2f58c5fb69 (commit)
via f26f70d0a60798065c5f7a5cb91b95587cc9e9ef (commit)
via aceb2d1ed239fa82fcb8bb352b632a8d92251dac (commit)
via f5fbc48810d1397df9e6244c16cf07c05162d36a (commit)
via b9b4502bcddeccd794614bf6979d643f9f350877 (commit)
via a340487a7d406e73e51479a765a3d08bdb92b8d0 (commit)
via 50c67a3eee468bcced060d5c868d243dcaff5837 (commit)
via 94b92f075dbfb60a25fbe28e5741a553ac4985fd (commit)
via eee2c470dfa879c769eccb515861419a6b900101 (commit)
via 795bf007cbe24775bd348fb40fc5c28d93c8f23d (commit)
via 34f9129a3d7d2a625455fccbd01c94fc18f6685a (commit)
via 1903e0e26b3677d9686e1d19cea897690945e3ed (commit)
via bbe86c4a80d53807b325b46dd51557a7a01670ae (commit)
via 953a9210c382e96063aee4aae69147bcc344cc50 (commit)
via 209dbf15bd9aa7ba6e01721caab7da7c1a9b0bbd (commit)
via 61a8873440a505d1483a04354b8d1f2089e76e39 (commit)
via 8690785168e12635ce35614c02d557fe77a3fe25 (commit)
via ed56c26720184ca3d07f452faf014e177f1a2c2f (commit)
via 0d5962b720872b8f4cbd6bc0a3f44d896bff7daf (commit)
via 2aaef36d5b642e8e2b0bcd9bdca0a25217e49590 (commit)
via 8794708d1e16935173f6b20c551fdd661b60883d (commit)
via c70fbca19235ebff6ab560ced462496cea7d2f72 (commit)
via 86c4a20bcf282407f92cb3f3e0a022de79107aca (commit)
via 75953fd324f2629f282f6b98e96dc1cef8bc2da4 (commit)
via 8c9b3ded23d4594d2185056032e8f0bf22dd57e1 (commit)
via 93e4548df0ba8e98589dea7cdde60a851a2d9c2f (commit)
via 9cd1bd27bada41cd13fb9813144fe694a67c2d00 (commit)
via 7f1e7f793bd1b5efa73df51b3070c5acb8fcdc82 (commit)
via bc65e5b981806594fde9f4c40bf5aa7d8e48b040 (commit)
via fb5d279228a7adcafd858d9e137accd8010bb382 (commit)
via 7bb1d40eed9436c2f7fbd5b11106f6fd8f020441 (commit)
via a309f8c5b4842075d6c83f99a8f2a1e1016976f5 (commit)
via 3fa8a8a4142aac0fc6d3900b3f77de347b76268b (commit)
via 97d759d73e24017c9cab74325d866960389c11a5 (commit)
via a795e5e02791cb7920aaded26bfa83a7ace1f386 (commit)
via 02b75a37c98f3357ba079d01166576153032a238 (commit)
via 411109e1c30d61bce39f29851838540e0a5787e5 (commit)
via 8b6d154d2a1e89bbabb8f7730d37bffb54d4de6d (commit)
via 303d374c370f334426570864258df6364b9f3f0b (commit)
via 6ad31a32b13094ce162a2175956232403b13693f (commit)
via 209c2259a8bf0218e585da037a04e2d9d79400ee (commit)
via a5c53dceed8480e667249fc5fee3349bbaf20ec8 (commit)
via 62a0bbe9c1f6e3376b25d0f415302eb7dcdf55f3 (commit)
via a7bd5fa6c4353745260398eaa61c5b857975d222 (commit)
via 4644e14f4158e3fa288abf6d979d2526606e5615 (commit)
via c22bd85568bdef0358a82bb20e4995477c7d24ac (commit)
via 96b33e5ac77dbd0a003b428d5531431f3e999bef (commit)
via 9456885954b0bff02721bbb14da296be212efdc4 (commit)
via ba917d72d48615cdd0c6da87d41b6bd0f9f26666 (commit)
via f8675ad473b45387b1286c6b7a41edf36148ebac (commit)
via 40ce7856e2426dc7381bf493eacf2fa42a9774b5 (commit)
via 4bc2f36b8e475b0dc1145fa27e665cdd8c85f809 (commit)
via 47f29d75759db7e4d81203e110257f1a471f82e7 (commit)
via 8e0303a592671af3578af904370d226f4991e635 (commit)
via 4c1d34eee72603b850bea8d5dc95c225e644954f (commit)
via 79aeb557d94681fb7e55321aeee2e20df1430b30 (commit)
via 8ee2f83955b1b71571aa428335340f505c3c2264 (commit)
via 537ff1dfe42c8a1c076ea31a137801cab8e95b96 (commit)
via 4e32a5d047ab832e7399dedd7b5dd5f8fc364367 (commit)
via 2c60e15078452202ff58eac99d44920448fb7b9a (commit)
via dd69c4bad124d39f876ec6fb0e733e2db289a4bd (commit)
via 575b2f04b80a8bb2cf5ab61ce80a94d5fe017aa3 (commit)
via 5a649613ade7f4bb9c80bbfec62604698383c1d1 (commit)
via e49882e535f1464673d547ba37c636ec1eb8d0ab (commit)
via 78408743bab09078a7361620fc6a6be524fdac73 (commit)
via 08e9c6aff46e182b9cd14fab9d42d21b2d7c6902 (commit)
via c4a0f7a714586e61ad844de58837a20c76eda2a8 (commit)
via 75a76c083c8f257c33ad31582aac7a86bc866bb5 (commit)
via 3652f3ed82e994c9eea74ba1afb4aa3c11ebd697 (commit)
via 4cacfe7a9566d7ea6f53be24daf83cf9e441aebb (commit)
via 3f285d4c2555aa57e9b64c9890bbb494cdf46a0f (commit)
via aa6a63fb550222ecb8353585ab7e19a2c1d261e4 (commit)
via ee434dea5db0b02fe762ff80b2270cf268e84378 (commit)
via 9bf790498c20c9f8ab9bffbf9c8e5311864bd91e (commit)
via 8976780c3b66178ab0baf6e305dcc6d72277f815 (commit)
via b29ca38e4409fe0149aea28a0e26a84d56ccca17 (commit)
via b20770d7e5a4ba0a974a7b98fce87b81aead95d9 (commit)
via f21a495d7723e72ea61c62293d56aff1a65c130c (commit)
via 3b11d2b570d9c3f2a18886d82fb0224562c56f61 (commit)
via b58953e9b4c54757db68dd8661aeb170635643b2 (commit)
via d4eead3501dfe0f002e95574b91d835ed792d92e (commit)
via cb109bfddd08bd8136b75e90b681e4af3d60ea30 (commit)
via 74d98b5f5cfee651eebfd8c63842a08241dcd736 (commit)
via 5cd02331394595a6e64f19c2cc14c9955c9266dd (commit)
via 7ea93a3e137a3375daa76073ddbd582deb22141c (commit)
via 50a1f82945a564e16b564c9cab009dac8ec78a37 (commit)
via 3b4325c210516d1f61838fb26e06e0a11c31ce6d (commit)
via 007d2919fc56632bc957d90378ed7a5d3b14aa3c (commit)
via f389a552e9b81de0e2030fe2fddc4852b33f63cc (commit)
via d23bc7c1abe6b81ae279298bf606f44c0d99f7fa (commit)
via 4259263d270a5e377009d20835a463551c708d82 (commit)
via e018237856b7bdd61e46468696bf3783a8f745df (commit)
via 1bfda34f36f2cf2064460f169f195fa5b2fe305a (commit)
via 4218f74266f3fee7c618c887bea6a804005c89b9 (commit)
via 2516e999249684e82e55c6519b54114764193963 (commit)
via 39755f7642bf974e6e2e1cf3828b5240f489566c (commit)
via 6fd54bd2d821535231c6b7596146b301232e8976 (commit)
via e42bf96609791323ca21aff9768e31e809cc9439 (commit)
via e4f03346d4498a77d252d2ffb08d1e0246785b5e (commit)
via a4a8d41f6ccd1a0a54f99fb80f3d725922c08ee1 (commit)
via f10431fe2de1037c3c0d51d8238cecf6c1206703 (commit)
via 11208178d6724a93663139565e9dad96ee7f10a3 (commit)
via ffb304afad93f50fd6ee43ecda6584dd0ac000c4 (commit)
via 5ca261ee945cfea279f6df0364c8311e83cebb44 (commit)
via dd0786de66c5decb8581cb092afb405eb390bca9 (commit)
via 8ed7b6dd5d4df93a3f37096afe6d6f81c2a7ef6e (commit)
via d66c9f93da79b8bfdffdb1684f19ac388c31ce97 (commit)
via f682de562d9c857616f81d48d5cd915748725197 (commit)
via 787e77b30ed6f01ebf3ea74f4212888accf41ecf (commit)
via 8dd7e323798d36e3182c12868c6f1f3dd0eabf96 (commit)
via c3aa32a866ac5a833675888ca8106ea4a6581bc4 (commit)
via 8de338d1178abb71addc344382657d3826d7f0bb (commit)
via 3c4b14cf8bbfcea51fefa5d74a0c522547e0bcf4 (commit)
via 1586823b65c7ec7656626e491a31f3f9516a4a56 (commit)
via c64d7e1d5d1879187e1c4002445fab1d3c7951a0 (commit)
via 1885991dd79a75034f7650cccef16ebe3fd71959 (commit)
via 001757381fd370a563599ca70ca9b451a71e9726 (commit)
via 65616466b97a92e382f8e432b14ffc3711b95491 (commit)
via e24a892b920fd8cddf091a3c15acba1ab27f510d (commit)
via fa0ccc4c50e9c141bcd40f12f3047aea3226c0ca (commit)
via 35dde4022e317536642646366ff01578bf904fb6 (commit)
via 3f8f2a9b9d1ccb1e4e696607ef015de0524da519 (commit)
via fe29b56aecc9b5e277dd9a956fb05867827c91c9 (commit)
via 43a6204d0292fc4a41c370a2b77a84bc778fbdae (commit)
via 7f9839be2facf7e5bf3106dab0859da5d971f31e (commit)
via 9350a0562776be66a099dce1c3e825b32f5a8907 (commit)
via 23825c0b5ecf436b29a36a1c27efe1120485827e (commit)
via e54bce82515daeef450f53aa93d3acae397bfa5f (commit)
via 607fe087f6167061714a524dd53cbbc21b974973 (commit)
via fca805a18c671ccbb03cef640c15172d1f02ffe3 (commit)
via 974799e09498bc5fa27ba2e269a72f8ae5173793 (commit)
via 613155d587da60dbe04c7635649b1f3694938adc (commit)
via be4852ec32e5eeed1af9a62017cfc39ed66ac186 (commit)
via fe45b1b66c730f2546d78a7899375707c0816518 (commit)
via 18f3b51a1795922a5c5c595b5b3fb5ce12978c64 (commit)
via 6f62739bee508c9b2b8c4ce2f2593fe1714cfda6 (commit)
via 4d012b23a4ac88f433986054fc0085ee6714b5b3 (commit)
via c6452ff3cf71462a46c3d7584696e0948dcce4dc (commit)
via ed375727b95e6f1cd56c599a177bbd7979e1cf78 (commit)
via 70166077b0f77780441df216232390f0d09ad31a (commit)
via fb72bf49a923ba3f25defa749efc2d49353414b7 (commit)
via 5d00ecb0932f86e4d2aced3d9258b96522ef38bd (commit)
via d2ebb8fe6bdf4b33ec2aeea314efb5e4df22eebb (commit)
via fea486f94bb5cc8f51d9563eafc172b6ba2aec57 (commit)
via 43d1a5d0b9272f6e57a3d0afd59b956054ff4d7a (commit)
via d694a717acb2e577afa396aea140e5284b7f763d (commit)
via 712968da0c8575de1ac6968772999c2439636e2a (commit)
via e56ae6aad06c37d5512537047871d7363dd97620 (commit)
via 59b27bcb7fe510ff351dd9d8f71b1d4b56d131b5 (commit)
via e39a7d5704932cbec606e85cdca50aa38a1ed053 (commit)
via 88a25d414025c64231f977a9383fd6a69cf6246a (commit)
via 72900c01e197d602e79fda8d306b17fd1e32a3ea (commit)
via 6a7edde0c5b906c58a7e739f2d0c612c67f63dc5 (commit)
via 41a7f3914a6ced0fd374bd903470fb4fc91ea5e4 (commit)
via e289b9ad5959a76795681ca95d310bad2288656a (commit)
via 3843210bdf340751795b8ce9903cf712661b94e7 (commit)
via b92089c1674dcc99184a36b7094ac72ffc787922 (commit)
via 3acd5d7f73c24a2ea2d686588be44efb9ac056b2 (commit)
via f5f5de0ae41e12738a380c422417d5a5e5af7f09 (commit)
via e8317521741c3814e824e209f75edf23636e32ff (commit)
via 318c49002aea966128a9d37ab29e601a104d79bb (commit)
via f517c9897428fd3c50a269b494b6b912cae291df (commit)
via 65da23323c06079612db9285e0ab2bd1ac9ea253 (commit)
via 8c948701e887e96f05ffaf0adaec9da9f2533f72 (commit)
via b075d1be1377760f5d8497a29f63c8e416cd5378 (commit)
via 8c5f2973a5c5f042d1d12aef1c470b37519fd416 (commit)
via edfc619e6189c5407d16798c75aaace08a13536d (commit)
via 90209af8fa35bc99c9821db0c815404d1234ef31 (commit)
via 88c241d7c4fbfadb951f370bf2706db687adad75 (commit)
via ac3bafbcbc8e6d6c6b3be13e3e29b7ab7cf4ad7a (commit)
via 137ebf94ff14837c9df773533ea86e821469bda9 (commit)
via fed8ee006cdfc2029f287c656b184f3ce7507847 (commit)
via 260e85a9d9cf2c20313bcf2edb63da57bdd3a69f (commit)
via e7b46691f98bf4e7edcf1ea3b98a677273d70b3b (commit)
via c5c09df38966595b4f27c402d1e9ae5500d6d201 (commit)
via 30146198f24c70941d95af714e036ff3c451626c (commit)
via 455f862a19fe0bcc8ac3c6e685a96faf747ae623 (commit)
via 8622b46a4a6c127a1927d9c2e54febec6a5bf503 (commit)
via 4344941f8410ed21befead8d6b8d2471d291032f (commit)
via 95e2bdda5afc3ffc6afb2f08ea6d7cba8f8d62f1 (commit)
via 629557aa041a80f0704b02e7c679b2f01d9c0be2 (commit)
via f2f8340b18430738a9527f05e707dd8f03508cc0 (commit)
via ad7294edfcc59c3e67548328a88c9e689c3ae2cf (commit)
via 3ef580c47029ff0fbf959b044f29c183f41cb609 (commit)
via 4ccbea9ef440a7e4252b0df5e710dcb767831c60 (commit)
via 9dabca0eedbc9f842d542fea3463a441140d590c (commit)
via 6e577058389e70fd575580c3e11a122396140700 (commit)
via c043e133b2646037ed630d571e91dbf77344f855 (commit)
via 93c92875aaebe5b06f8dbfe2822b59a772895c08 (commit)
via bf5d77baad2071af6eea514c76b4892cec4974a0 (commit)
via 04bd6b08b9ac13d29ac05c9281850d430d71066d (commit)
via 840b855ff0317e66f4176ae0f23e9785f72267b4 (commit)
via 1220e2184449ccab288fa41de4749fb029cd317b (commit)
via 17b80c32a5b177ee8c5f32b81dd0889f3399eee8 (commit)
via 9905d124877e5695053cce388d3680c667815de5 (commit)
via fd65e0be3f55d48b9d573921ca0757fc51a1dd81 (commit)
via 35c2572761bb060aa1c12f417f97aa9e1ccbe7eb (commit)
via a93d95d85ea15c7afd70657abf60635c29043c89 (commit)
via 3a0d849c08f750dca1d6a40153c0107001769c6d (commit)
via 2b3b54becbce29efdf4c53787c4aa6d666900ef0 (commit)
via f1fb39153bc234b49ca77674a29abc029b12774a (commit)
via 31d31c010bb6b5170e3962fdd50c6d393cfe6076 (commit)
via f4661a02245a35f8d223693a5aecaae87083fb16 (commit)
via 52c6f13db207030bdbe063665c0dd524007db828 (commit)
via 0ecea550fde014578e71004360b700cdfeae4909 (commit)
via 7116da151dc8bfd5ac1a9b016b2ed6e4c35572f7 (commit)
via bef5d901f00648e703bb6a3ad58fa481a610ffd7 (commit)
via b04638275cff9b393e1bc04136d44f361b999cf8 (commit)
via c39ba5193005a4e9f619901f8348f11fada88df0 (commit)
via 2333472a4f517a227278f028bbbc4e72687c0e71 (commit)
via 5180238a10bd15302a1c15b9a428f2fdeeabdf4e (commit)
via bfc9660a8b2467893baf131b20e83e76c41ae438 (commit)
via aed7702a67426dfd9d24b512c90df8e909162179 (commit)
via 9aa83ad7b4de05dd2818885ed34111d4dcf322ea (commit)
via 3c34e713aa343d56c7cea00a9c998b06dbf411d6 (commit)
via 65e339856daf4b5c3a4a810cd3a5f1a8e386dc8c (commit)
via 151df8c3b177e4971bfbdf68c87d89599dbe0812 (commit)
via e7284afa8ccb95994dcd2009015cafc6180e7187 (commit)
via 82c40aa7d30cd8e68e2a1bdc0bd8bf03cdfea029 (commit)
via 38a4b3c43a8a6cff5a00624436b8eaa5cbfbc76b (commit)
via f79536fda9dc40f480383caa69a35663702b2ba4 (commit)
via c14ae0edcb3c386e50f46218184e8dabcbc20a37 (commit)
via 04951581a941697d68cdaf9af6661c3c412f1bce (commit)
via 5e4bf6836d9762ef5552111776dcbade99f2e680 (commit)
via 67ba19113789346005aa61d4234bc33c8677a85c (commit)
via 9609f9a5a4776671f571f765a179506d26df56da (commit)
via 03188ad6eb14ee3dcd6bdf74198624c9358936c5 (commit)
via a501e1d874f01acc318e7963837fbeb58a29f744 (commit)
via b9d004b5369b99b216e66cb7d4a9505792276613 (commit)
via f2c1db3480befa2c29a742313465e7cc9f2635b1 (commit)
via 84737fbdeecd9d9707bef0dde8762d370fba02cb (commit)
via ebc9ff19a20c49da45f39379d148b6dc4ccec8e2 (commit)
via db7e17f830ac3707d7222d73c2f70f1d726a724c (commit)
via 0c5cb575c6915778dc6b2de6348bdc32121434eb (commit)
via 0b8673b62cd9717fcf7e3bbb608ae07018093d6f (commit)
via 06e1c2317d969fb5872cf1f2c29adaac7e0ef251 (commit)
via de083a9fec0ca08afda5a9369c6cd32dbdcd0965 (commit)
via f5d09a4904e609b5df20edd0194a9f1ade40c28a (commit)
via f6b16b5ae75469167dbea08d69692d5f53dd9c84 (commit)
via a603d0f7b685a93b88ea29336dd2b512e63b4508 (commit)
via 9b976cfbcb62729a672315107ac4868e0dc2f815 (commit)
via 83f3b04387aff7f033b99a6421e4d38478f09c17 (commit)
via 62be7d11e2b54d06e4d0c7c6ae12656bfe00637f (commit)
via 0d5be4fa36006459e1579f087b695904e4f32ee3 (commit)
via 77d9c05d89dabc9e9e9a15f46cd12c8ad61ed64e (commit)
via 9e3fd2fa437e2f3dab220a96fbe22ec5b250421d (commit)
via 4a8883858028d4068b52710acd9c349108b6fc7c (commit)
via 56b51a9e60da1531d40685525a563bef91f17876 (commit)
via 249b3abab7da1abd531195ed0cd58760bf10774b (commit)
via f54096601d61d3d3016317c4b80b3e1a701af869 (commit)
via e5d948386bad766d481b17c06bc2c3147c42cde5 (commit)
via 4ef817417f439188bea95a51d86acf21ad4f6d37 (commit)
via 0487aeb518af7f4ba4a7b0ae17d42805dcdc3805 (commit)
via 46f6db136c5820555109963f5382b449aff617ce (commit)
via e8074a3ca07250640c30f49cdefbbbe76a4a7885 (commit)
via 864099344286a29d0552cd59f579f65e2aaf5c92 (commit)
via c633f38b9b53c30082407b1f1d9d8c7738c9d680 (commit)
via d761fb1e9d9e39626eded4b1e4804b0fc3d5d8c8 (commit)
via 6d9cf49ee3e11d9ca87c8113222c6dd742597a5f (commit)
via adac4b967382c280022d202d56d7fee41764ef35 (commit)
via cb37170128fa9b1f1c98bb3270328e0969719141 (commit)
via cd708c67b92f2c094e33584bb1fc2c6b4640fb90 (commit)
via 04f38e70e1a6b23b00eb3684dbefce0ab64ec638 (commit)
via 991d037e7b4741450dff745d22b0758170fe4ed9 (commit)
via 82f763b628589918d0e421b4f5fb4c00c179a628 (commit)
via 41e9f18dc873c0260b5d32523e9b34ea41040f22 (commit)
via a81a5f35357a099750f0ba3f65885d14a757349d (commit)
via 0e0c1400b57d5de8aa8c18dd4897527f905a4b42 (commit)
via 0199da877b222c751a31d70a6617b92c2a56fe70 (commit)
via 7fde9a0a090e5f092b946f7569f1350778a47574 (commit)
via d1af87de56519cad7ae3c95d636c3c54f37c260b (commit)
via 8e48567442d2d40bd9f6230f243f75cdbbe03bb1 (commit)
via de259910871b7a01ecc199722ea26e6b335ca55e (commit)
via fbce7b14ac2ed443a3054262c16689cbebc16f61 (commit)
via e61df48303291900581ef4a64dcf97864598c5f4 (commit)
via 5e46c19fa6f037d41bd196a5418066f9fbe3bdb3 (commit)
via f69e114cf6dbe51525e98ca30a52ef3dd4341167 (commit)
via 9b823dc4b56a3bda5d095a4b3549ea2c0b024fd8 (commit)
via d8fef944b2691e8d77df4185f297f205c4975b21 (commit)
via e1e05845b74ce70712e414830f992ce57d7a8453 (commit)
via 78ff2a600b29f05f522f8e8818967dac88394fd6 (commit)
via 7fd4aa96f997a133d31b3df88a8d2f4820c5b881 (commit)
via fb7bb4c8f17a49abab40e42b7a0101cac7478d60 (commit)
via 8d9b12f2a87ffd7183d3a36ca32ee1c7e701a0e2 (commit)
via d42ec212e992a83f8e7fc48b59fb3daf58a62787 (commit)
via c066a2e6d064a270638baea8f8b0d106f5903e0f (commit)
via c36272a5f83ba70980160c4cb205bdfb8a1c660b (commit)
via 045bace65c2395b6efe9f3d8c93bec74196f58e1 (commit)
via 7c6852e1b3675b3c1de7e9792373333cb752d40d (commit)
via dfd8c4bbd6f126b90d436e9d242cd30e15e70d2e (commit)
via de4df7f80c531ab16e59ea36671a8efa9e6ff33d (commit)
via 126dd750f48654cb3b1a4e53c5b7d337003e112f (commit)
via 30dbddd3b311653652fa731dbff950aba0712301 (commit)
via ab314b9ea3618c71556a6a5f6dd7c769beaf2737 (commit)
via 390af6a13f7c8974329aecc2f23fbfa81f8e298b (commit)
via 9090c60b28de593b8bb2ce606a9ab35b62b57608 (commit)
via 84ad215752fde4291070143411a945fa7a94241c (commit)
via c9a361f7fd3b1cf7f4959e9b0292d0f495d82771 (commit)
via 05d453ec38b10a022ea6db77867957e7115b9b35 (commit)
via 09dcf71e59907c2eaf4b94918c63da07193481a4 (commit)
via 099a8c62fcb0905855ddf243a3deddc7398c3c10 (commit)
via fe446e10da189d3d3e0ea5f19061389cc2200a08 (commit)
via 6498c7751cd0305a28494df45a70965ccc6c3737 (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (3bb2699f6d418b508dd8bf35cec06f9f54ac6bba)
\
N -- N -- N (050be6a5be43ab503820955dbca2751ca368063c)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
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 050be6a5be43ab503820955dbca2751ca368063c
Author: Tom Clegg <tom at curoverse.com>
Date: Wed Apr 19 10:44:21 2017 -0400
11283: Fix "available slot number" query.
Fixes repetitive queries and excessive Postgres and Rails log
messages:
2017-04-10 16:39:09 UTC [4734-1] arvados at arvados_test ERROR: duplicate key value violates unique constraint "index_nodes_on_slot_number"
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_nodes_on_slot_number"
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curoverse.com>
diff --git a/services/api/app/models/node.rb b/services/api/app/models/node.rb
index 82ea0ac..f04fa70 100644
--- a/services/api/app/models/node.rb
+++ b/services/api/app/models/node.rb
@@ -104,17 +104,19 @@ class Node < ArvadosModel
# Assign slot_number
if self.slot_number.nil?
- try_slot = 1
- begin
- self.slot_number = try_slot
+ while true
+ n = self.class.available_slot_number
+ if n.nil?
+ raise "No available node slots"
+ end
+ self.slot_number = n
begin
self.save!
break
rescue ActiveRecord::RecordNotUnique
- try_slot += 1
+ # try again
end
- raise "No available node slots" if try_slot == Rails.configuration.max_compute_nodes
- end while true
+ end
end
# Assign hostname
@@ -136,6 +138,19 @@ class Node < ArvadosModel
protected
+ def self.available_slot_number
+ connection.exec_query('SELECT n FROM generate_series(1, $1) AS slot(n)
+ LEFT JOIN nodes ON n=slot_number
+ WHERE slot_number IS NULL
+ LIMIT 1',
+ # query label:
+ 'Node.available_slot_number',
+ # [col_id, val] for $1 vars:
+ [['max_compute_nodes',
+ Rails.configuration.max_compute_nodes]],
+ ).rows.first.andand.first
+ end
+
def ensure_ping_secret
self.info['ping_secret'] ||= rand(2**256).to_s(36)
end
diff --git a/services/api/test/unit/node_test.rb b/services/api/test/unit/node_test.rb
index 2330e7c..e3bd753 100644
--- a/services/api/test/unit/node_test.rb
+++ b/services/api/test/unit/node_test.rb
@@ -128,9 +128,8 @@ class NodeTest < ActiveSupport::TestCase
test "ping two nodes one with no hostname and one with hostname and check hostnames" do
# ping node with no hostname and expect it set with config format
node = ping_node(:new_with_no_hostname, {})
- slot_number = node.slot_number
refute_nil node.slot_number
- assert_equal "compute#{slot_number}", node.hostname
+ assert_equal "compute#{node.slot_number}", node.hostname
# ping node with a hostname and expect it to be unchanged
node2 = ping_node(:new_with_custom_hostname, {})
@@ -191,4 +190,22 @@ class NodeTest < ActiveSupport::TestCase
assert_equal '10.5.5.5', n1.ip_address
end
end
+
+ test 'run out of slots' do
+ Rails.configuration.max_compute_nodes = 3
+ act_as_system_user do
+ Node.destroy_all
+ (1..4).each do |i|
+ n = Node.create!
+ args = { ip: "10.0.0.#{i}", ping_secret: n.info['ping_secret'] }
+ if i <= Rails.configuration.max_compute_nodes
+ n.ping(args)
+ else
+ assert_raises do
+ n.ping(args)
+ end
+ end
+ end
+ end
+ end
end
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list