class Arvados::V1::KeepServicesController < ApplicationController
+ skip_before_filter :find_object_by_uuid, only: :accessable
+ skip_before_filter :render_404_if_no_object, only: :accessable
+
def find_objects_for_index
# all users can list all keep services
@objects = model_class.where('1=1')
end
def accessable
+ puts "Hello world"
if request.headers['X-Keep-Proxy-Required']
@objects = model_class.where('service_type=?', 'proxy')
else
@objects = model_class.where('service_type=?', 'disk')
end
+ puts "Rendering list now"
+
render_list
end
service_host: keep1.qr1hi.arvadosapi.com
service_port: 25107
service_ssl_flag: false
- service_type: disk
\ No newline at end of file
+ service_type: disk
+
+proxy:
+ uuid: zzzzz-bi6l4-h0a0xwut9qa6g3a
+ owner_uuid: zzzzz-tpzed-d9tiejq69daie8f
+ service_host: keep.qr1hi.arvadosapi.com
+ service_port: 25333
+ service_ssl_flag: true
+ service_type: proxy
--- /dev/null
+require 'test_helper'
+
+class KeepProxyTest < ActionDispatch::IntegrationTest
+ test "request keep disks" do
+ get "/arvados/v1/keep_services/accessable", {:format => :json}, auth(:active)
+ assert_response :success
+ services = json_response['items']
+
+ assert_equal 2, services.length
+ assert_equal 'disk', services[0]['service_type']
+ assert_equal 'disk', services[1]['service_type']
+
+ get "/arvados/v1/keep_services/accessable", {:format => :json}, auth(:active).merge({'HTTP_X_KEEP_PROXY_REQUIRED' => true})
+ assert_response :success
+ services = json_response['items']
+
+ assert_equal 1, services.length
+
+ assert_equal "zzzzz-bi6l4-h0a0xwut9qa6g3a", services[0]['uuid']
+ assert_equal "keep.qr1hi.arvadosapi.com", services[0]['service_host']
+ assert_equal 25333, services[0]['service_port']
+ assert_equal true, services[0]['service_ssl_flag']
+ assert_equal 'proxy', services[0]['service_type']
+ end
+end