X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/dcd20d41fde4216345a20ddfa950b40de74b85b5..64e387b2f4f0fe6c4c7bf16232706c7cf194caf0:/services/api/test/functional/arvados/v1/keep_services_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/keep_services_controller_test.rb b/services/api/test/functional/arvados/v1/keep_services_controller_test.rb index 706f73ffda..867ab35e79 100644 --- a/services/api/test/functional/arvados/v1/keep_services_controller_test.rb +++ b/services/api/test/functional/arvados/v1/keep_services_controller_test.rb @@ -1,10 +1,14 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'test_helper' class Arvados::V1::KeepServicesControllerTest < ActionController::TestCase test "search by service_port with < query" do authorize_with :active - get :index, { + get :index, params: { filters: [['service_port', '<', 25107]] } assert_response :success @@ -13,7 +17,7 @@ class Arvados::V1::KeepServicesControllerTest < ActionController::TestCase test "search by service_port with >= query" do authorize_with :active - get :index, { + get :index, params: { filters: [['service_port', '>=', 25107]] } assert_response :success @@ -32,4 +36,33 @@ class Arvados::V1::KeepServicesControllerTest < ActionController::TestCase end end + test "report configured servers if db is empty" do + KeepService.unscoped.all.delete_all + expect_rvz = {} + n = 0 + Rails.configuration.Services.Keepstore.InternalURLs.each do |k,v| + n += 1 + rvz = "%015x" % n + expect_rvz[k.to_s] = rvz + Rails.configuration.Services.Keepstore.InternalURLs[k].Rendezvous = rvz + end + expect_rvz[Rails.configuration.Services.Keepproxy.ExternalURL] = true + refute_empty expect_rvz + authorize_with :active + get :index, + params: {:format => :json}, + headers: auth(:active) + assert_response :success + json_response['items'].each do |svc| + url = "#{svc['service_ssl_flag'] ? 'https' : 'http'}://#{svc['service_host']}:#{svc['service_port']}" + assert_equal true, expect_rvz.has_key?(url), "#{url} does not match any configured service: expecting #{expect_rvz}" + rvz = expect_rvz[url] + if rvz.is_a? String + assert_equal "zzzzz-bi6l4-#{rvz}", svc['uuid'], "exported service UUID should match InternalURLs.*.Rendezvous value" + end + expect_rvz.delete(url) + end + assert_equal({}, expect_rvz, "all configured Keepstore and Keepproxy services should be returned") + end + end