[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