[ARVADOS] updated: 2.1.0-2419-gac2ea4ef1
Git user
git at public.arvados.org
Thu May 5 15:26:54 UTC 2022
Summary of changes:
...heck_controller.rb => management_controller.rb} | 20 ++-
.../app/controllers/work_units_controller.rb | 1 +
apps/workbench/app/models/repository.rb | 9 +-
apps/workbench/config/arvados_config.rb | 6 +
apps/workbench/config/routes.rb | 3 +-
.../test/integration/repositories_browse_test.rb | 3 -
build/run-build-packages.sh | 4 +-
build/run-tests.sh | 15 +-
.../arvados-server/arvados-git-httpd.service | 4 +-
cmd/arvados-server/cmd.go | 4 +
...arvados-controller.service => keep-web.service} | 4 +-
doc/_config.yml | 1 +
doc/admin/management-token.html.textile.liquid | 2 +-
doc/architecture/index.html.textile.liquid | 2 +-
doc/images/Arvados_arch.svg | 2 +-
...nstall-manual-prerequisites.html.textile.liquid | 2 +-
.../install-shell-server.html.textile.liquid | 2 +-
.../rnaseq-cwl-training.html.textile.liquid} | 6 +-
lib/boot/supervisor.go | 4 +-
lib/cmd/cmd.go | 2 +-
lib/config/deprecated.go | 2 +-
lib/config/load.go | 2 +-
lib/controller/rails_restart_test.go | 22 +--
lib/install/deps.go | 2 -
lib/service/cmd.go | 44 +++++-
sdk/go/arvados/collection.go | 28 ++++
sdk/go/arvados/config.go | 22 +--
sdk/go/arvadosclient/arvadosclient.go | 5 +-
sdk/go/health/aggregator_test.go | 1 +
sdk/python/tests/run_test_server.py | 23 ++-
.../arvados/v1/management_controller.rb | 3 +
.../arvados/v1/management_controller_test.rb | 2 +
services/arv-git-httpd/.gitignore | 1 -
services/arv-git-httpd/arvados-git-httpd.service | 23 ---
services/arv-git-httpd/main.go | 77 ---------
services/arv-git-httpd/server.go | 36 -----
.../{arv-git-httpd => githttpd}/auth_handler.go | 59 +++----
.../auth_handler_test.go | 19 ++-
services/githttpd/cmd.go | 32 ++++
.../{arv-git-httpd => githttpd}/git_handler.go | 11 +-
.../git_handler_test.go | 7 +-
.../{arv-git-httpd => githttpd}/gitolite_test.go | 8 +-
.../integration_test.go | 17 +-
.../{arv-git-httpd => githttpd}/server_test.go | 19 +--
services/keep-web/cache.go | 25 ++-
services/keep-web/cache_test.go | 23 ++-
services/keep-web/cadaver_test.go | 10 +-
services/keep-web/doc.go | 7 +-
services/keep-web/handler.go | 104 +++++-------
services/keep-web/handler_test.go | 176 ++++++++++-----------
services/keep-web/keep-web.service | 25 ---
services/keep-web/main.go | 129 +++------------
services/keep-web/ranges_test.go | 4 +-
services/keep-web/s3.go | 30 ++--
services/keep-web/s3_test.go | 29 ++--
services/keep-web/s3aws_test.go | 4 +-
services/keep-web/server.go | 45 ------
services/keep-web/server_test.go | 173 ++++++++++++++------
services/keep-web/status_test.go | 8 +-
services/keep-web/webdav.go | 2 +-
services/keep-web/webdav_test.go | 2 +-
tools/arvbox/lib/arvbox/docker/Dockerfile.demo | 4 -
tools/arvbox/lib/arvbox/docker/cluster-config.sh | 4 +-
tools/arvbox/lib/arvbox/docker/common.sh | 1 -
.../docker/service/arv-git-httpd/run-service | 10 +-
.../docker/service/composer/log/main/.gitstub | 0
.../lib/arvbox/docker/service/composer/log/run | 1 -
.../arvbox/lib/arvbox/docker/service/composer/run | 8 -
.../lib/arvbox/docker/service/composer/run-service | 24 ---
.../lib/arvbox/docker/service/keep-web/run-service | 5 +-
.../arvbox/docker/service/keepproxy/run-service | 4 +-
.../arvbox/docker/service/workbench2/run-service | 2 -
72 files changed, 630 insertions(+), 790 deletions(-)
rename apps/workbench/app/controllers/{healthcheck_controller.rb => management_controller.rb} (54%)
copy lib/install/arvados.service => cmd/arvados-server/arvados-git-httpd.service (90%)
copy cmd/arvados-server/{arvados-controller.service => keep-web.service} (89%)
copy doc/user/{reference/cookbook.html.textile.liquid => cwl/rnaseq-cwl-training.html.textile.liquid} (50%)
delete mode 100644 services/arv-git-httpd/.gitignore
delete mode 100644 services/arv-git-httpd/arvados-git-httpd.service
delete mode 100644 services/arv-git-httpd/main.go
delete mode 100644 services/arv-git-httpd/server.go
rename services/{arv-git-httpd => githttpd}/auth_handler.go (85%)
rename services/{arv-git-httpd => githttpd}/auth_handler_test.go (91%)
create mode 100644 services/githttpd/cmd.go
rename services/{arv-git-httpd => githttpd}/git_handler.go (82%)
rename services/{arv-git-httpd => githttpd}/git_handler_test.go (94%)
rename services/{arv-git-httpd => githttpd}/gitolite_test.go (94%)
rename services/{arv-git-httpd => githttpd}/integration_test.go (90%)
rename services/{arv-git-httpd => githttpd}/server_test.go (87%)
delete mode 100644 services/keep-web/keep-web.service
delete mode 100644 services/keep-web/server.go
delete mode 100644 tools/arvbox/lib/arvbox/docker/service/composer/log/main/.gitstub
delete mode 120000 tools/arvbox/lib/arvbox/docker/service/composer/log/run
delete mode 100755 tools/arvbox/lib/arvbox/docker/service/composer/run
delete mode 100755 tools/arvbox/lib/arvbox/docker/service/composer/run-service
via ac2ea4ef187f7df369551a8cfa047fed8a1a2ba9 (commit)
via 3b2568c566f7db8f56ba3425b21a4f7fcb46a083 (commit)
via 9aa380dbc94f9fb8be43e3fb691dadfcbefff94c (commit)
via 10fc5ae4d7c95bef5056fa06e708320b149a47d3 (commit)
via d1327c97644d4243f6618f84e6e798c44e0629ae (commit)
via 1b7900632c69ff1bd8d87540675cc8ed9180b8df (commit)
via 9981ff866420c0650b62544dd33638652671af60 (commit)
via 210878bd23b49384963592e94b6434cf98e5c881 (commit)
via faafa402de5c24e329dd0f8b2ff0fad57d660601 (commit)
via 9acc8cb9cd9ca4429712b0d31b647e9a6ecf2d96 (commit)
via 20afa36708e2cd0958e84a74fac7e128b6a7a67d (commit)
via ae92d144610446849eb568247a44f02ae985c281 (commit)
via fd2b6e7da193847a9c649d8d19a2831c2e419961 (commit)
via e452de85c00c35855132f2208cd9b41ceb2e588c (commit)
via 01a3368db1de44656e82fbc066e85ae4feb5eb75 (commit)
via fa1d4769d034905590166de6dd16eeb5475e68b0 (commit)
via ca1c68a7718a44c950f7d61e13a4ecf96da899b6 (commit)
via 7efc3ad80d4b78a708d9ba2a0442b41e4889b68c (commit)
via e57b58c8e652d859c8008c9d3ec6873edc231c34 (commit)
via 6fc3e8d44c1bf825f7c3727bab1fef81d2518288 (commit)
via 00f65f60e69326839447f431146312481db05f01 (commit)
via 0a98e961b638af177b6e0aebf63f1388cb2b3498 (commit)
from 35bb2d98244d40106c0493385f90cdd198c91447 (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 ac2ea4ef187f7df369551a8cfa047fed8a1a2ba9
Merge: 3b2568c56 d1327c976
Author: Tom Clegg <tom at curii.com>
Date: Thu May 5 11:25:13 2022 -0400
18794: Merge branch 'main'
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>
diff --cc cmd/arvados-server/cmd.go
index 9e02d45b6,e4bd39002..342446a81
--- a/cmd/arvados-server/cmd.go
+++ b/cmd/arvados-server/cmd.go
@@@ -21,7 -21,8 +21,9 @@@ import
"git.arvados.org/arvados.git/lib/install"
"git.arvados.org/arvados.git/lib/lsf"
"git.arvados.org/arvados.git/lib/recovercollection"
+ "git.arvados.org/arvados.git/sdk/go/health"
+ "git.arvados.org/arvados.git/services/githttpd"
+ keepweb "git.arvados.org/arvados.git/services/keep-web"
"git.arvados.org/arvados.git/services/keepproxy"
"git.arvados.org/arvados.git/services/keepstore"
"git.arvados.org/arvados.git/services/ws"
commit 3b2568c566f7db8f56ba3425b21a4f7fcb46a083
Author: Tom Clegg <tom at curii.com>
Date: Thu May 5 11:23:56 2022 -0400
18794: Wait up to 10s for rails to notice config change.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>
diff --git a/lib/controller/rails_restart_test.go b/lib/controller/rails_restart_test.go
index 75dd22b4a..bb307d321 100644
--- a/lib/controller/rails_restart_test.go
+++ b/lib/controller/rails_restart_test.go
@@ -13,6 +13,7 @@ import (
"net/http"
"net/url"
"os"
+ "strings"
"time"
"git.arvados.org/arvados.git/lib/config"
@@ -72,14 +73,17 @@ func (s *railsRestartSuite) TestConfigReload(c *check.C) {
newhash := fmt.Sprintf("%x", sha256.Sum256(append(confdata, '\n')))
c.Logf("newhash %s", newhash)
- // Wait 2s to give RailsAPI's 1 Hz reload_config thread time
- // to poll and hit restart.txt
- time.Sleep(2 * time.Second)
-
- resp, err = hc.Do(req)
- c.Assert(err, check.IsNil)
- c.Check(resp.StatusCode, check.Equals, http.StatusOK)
- body, err = ioutil.ReadAll(resp.Body)
- c.Assert(err, check.IsNil)
+ // Wait for RailsAPI's 1 Hz reload_config thread to poll and
+ // hit restart.txt
+ for deadline := time.Now().Add(10 * time.Second); time.Now().Before(deadline); time.Sleep(time.Second) {
+ resp, err = hc.Do(req)
+ c.Assert(err, check.IsNil)
+ c.Check(resp.StatusCode, check.Equals, http.StatusOK)
+ body, err = ioutil.ReadAll(resp.Body)
+ c.Assert(err, check.IsNil)
+ if strings.Contains(string(body), newhash) {
+ break
+ }
+ }
c.Check(string(body), check.Matches, `(?ms).*`+newhash+`.*`)
}
commit 9aa380dbc94f9fb8be43e3fb691dadfcbefff94c
Author: Tom Clegg <tom at curii.com>
Date: Thu May 5 10:53:53 2022 -0400
18794: Add version metric to RailsAPI.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>
diff --git a/services/api/app/controllers/arvados/v1/management_controller.rb b/services/api/app/controllers/arvados/v1/management_controller.rb
index 55a00d346..8f37960ef 100644
--- a/services/api/app/controllers/arvados/v1/management_controller.rb
+++ b/services/api/app/controllers/arvados/v1/management_controller.rb
@@ -37,6 +37,9 @@ arvados_config_load_timestamp_seconds{sha256="#{Rails.configuration.SourceSHA256
# HELP arvados_config_source_timestamp_seconds Timestamp of config file when it was loaded.
# TYPE arvados_config_source_timestamp_seconds gauge
arvados_config_source_timestamp_seconds{sha256="#{Rails.configuration.SourceSHA256}"} #{Rails.configuration.SourceTimestamp.to_f}
+# HELP arvados_version_running Indicated version is running.
+# TYPE arvados_version_running gauge
+arvados_version_running{version="#{AppVersion.package_version}"} 1
EOF
end
diff --git a/services/api/test/functional/arvados/v1/management_controller_test.rb b/services/api/test/functional/arvados/v1/management_controller_test.rb
index 5b34f9fef..6d27bccfc 100644
--- a/services/api/test/functional/arvados/v1/management_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/management_controller_test.rb
@@ -47,6 +47,8 @@ class Arvados::V1::ManagementControllerTest < ActionController::TestCase
m = @response.body.match(/\narvados_config_load_timestamp_seconds{sha256="#{hash}"} (.*?)\n/)
assert_operator m[1].to_f, :>, mtime.utc.to_f
assert_operator m[1].to_f, :<, Time.now.utc.to_f
+
+ assert_match /\narvados_version_running{version="#{Regexp.escape AppVersion.package_version}"} 1\n/, @response.body
end
test "metrics disabled" do
commit 10fc5ae4d7c95bef5056fa06e708320b149a47d3
Author: Tom Clegg <tom at curii.com>
Date: Thu May 5 10:53:32 2022 -0400
18794: Add version and config metrics to workbench1.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>
diff --git a/apps/workbench/app/controllers/healthcheck_controller.rb b/apps/workbench/app/controllers/management_controller.rb
similarity index 54%
rename from apps/workbench/app/controllers/healthcheck_controller.rb
rename to apps/workbench/app/controllers/management_controller.rb
index 691bef8ee..4c8b52f66 100644
--- a/apps/workbench/app/controllers/healthcheck_controller.rb
+++ b/apps/workbench/app/controllers/management_controller.rb
@@ -2,7 +2,9 @@
#
# SPDX-License-Identifier: AGPL-3.0
-class HealthcheckController < ApplicationController
+require 'app_version'
+
+class ManagementController < ApplicationController
skip_around_action :thread_clear
skip_around_action :set_thread_api_token
skip_around_action :require_thread_api_token
@@ -28,7 +30,21 @@ class HealthcheckController < ApplicationController
end
end
- def ping
+ def metrics
+ render content_type: 'text/plain', plain: <<~EOF
+# HELP arvados_config_load_timestamp_seconds Time when config file was loaded.
+# TYPE arvados_config_load_timestamp_seconds gauge
+arvados_config_load_timestamp_seconds{sha256="#{Rails.configuration.SourceSHA256}"} #{Rails.configuration.LoadTimestamp.to_f}
+# HELP arvados_config_source_timestamp_seconds Timestamp of config file when it was loaded.
+# TYPE arvados_config_source_timestamp_seconds gauge
+arvados_config_source_timestamp_seconds{sha256="#{Rails.configuration.SourceSHA256}"} #{Rails.configuration.SourceTimestamp.to_f}
+# HELP arvados_version_running Indicated version is running.
+# TYPE arvados_version_running gauge
+arvados_version_running{version="#{AppVersion.package_version}"} 1
+EOF
+ end
+
+ def health
resp = {"health" => "OK"}
render json: resp
end
diff --git a/apps/workbench/config/arvados_config.rb b/apps/workbench/config/arvados_config.rb
index 7cc46d298..86b4a4753 100644
--- a/apps/workbench/config/arvados_config.rb
+++ b/apps/workbench/config/arvados_config.rb
@@ -21,6 +21,7 @@ require 'open3'
# Load the defaults, used by config:migrate and fallback loading
# legacy application.yml
+load_time = Time.now.utc
defaultYAML, stderr, status = Open3.capture3("arvados-server", "config-dump", "-config=-", "-skip-legacy", stdin_data: "Clusters: {xxxxx: {}}")
if !status.success?
puts stderr
@@ -30,6 +31,8 @@ confs = YAML.load(defaultYAML, deserialize_symbols: false)
clusterID, clusterConfig = confs["Clusters"].first
$arvados_config_defaults = clusterConfig
$arvados_config_defaults["ClusterID"] = clusterID
+$arvados_config_defaults["SourceTimestamp"] = Time.rfc3339(confs["SourceTimestamp"])
+$arvados_config_defaults["SourceSHA256"] = confs["SourceSHA256"]
if ENV["ARVADOS_CONFIG"] == "none"
# Don't load config. This magic value is set by packaging scripts so
@@ -45,6 +48,8 @@ else
clusterID, clusterConfig = confs["Clusters"].first
$arvados_config_global = clusterConfig
$arvados_config_global["ClusterID"] = clusterID
+ $arvados_config_global["SourceTimestamp"] = Time.rfc3339(confs["SourceTimestamp"])
+ $arvados_config_global["SourceSHA256"] = confs["SourceSHA256"]
else
# config-dump failed, assume we will be loading from legacy
# application.yml, initialize with defaults.
@@ -55,6 +60,7 @@ end
# Now make a copy
$arvados_config = $arvados_config_global.deep_dup
+$arvados_config["LoadTimestamp"] = load_time
# Declare all our configuration items.
arvcfg = ConfigLoader.new
diff --git a/apps/workbench/config/routes.rb b/apps/workbench/config/routes.rb
index ffc09ac93..0bf8dffc6 100644
--- a/apps/workbench/config/routes.rb
+++ b/apps/workbench/config/routes.rb
@@ -130,7 +130,8 @@ Rails.application.routes.draw do
root :to => 'projects#index'
- match '/_health/ping', to: 'healthcheck#ping', via: [:get]
+ match '/_health/:check', to: 'management#health', via: [:get]
+ match '/metrics', to: 'management#metrics', via: [:get]
get '/tests/mithril', to: 'tests#mithril'
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list