From bdb4d7378e12318153637990f01a7844905c1869 Mon Sep 17 00:00:00 2001 From: Katharina Przybill <30441792+kathap@users.noreply.github.com> Date: Thu, 27 Mar 2025 16:42:21 +0100 Subject: [PATCH 1/2] Keep /v2/info endpoint when v2 is disabled --- app/controllers/runtime/info_controller.rb | 20 +++++++++++++++++++ .../runtime/info_controller_spec.rb | 19 ++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/app/controllers/runtime/info_controller.rb b/app/controllers/runtime/info_controller.rb index 810baad4401..574d4cfe2f1 100644 --- a/app/controllers/runtime/info_controller.rb +++ b/app/controllers/runtime/info_controller.rb @@ -4,6 +4,26 @@ class InfoController < RestController::BaseController get '/v2/info', :read def read + unless @config.get(:temporary_enable_v2) + return Oj.dump({ + name: @config.get(:info, :name), + build: @config.get(:info, :build), + support: 'CF API v2 is disabled', + version: @config.get(:info, :version), + description: @config.get(:info, :description), + authorization_endpoint: @config.get(:login, :url), + token_endpoint: config.get(:uaa, :url), + min_cli_version: @config.get(:info, :min_cli_version), + min_recommended_cli_version: @config.get(:info, :min_recommended_cli_version), + app_ssh_endpoint: @config.get(:info, :app_ssh_endpoint), + app_ssh_host_key_fingerprint: @config.get(:info, :app_ssh_host_key_fingerprint), + app_ssh_oauth_client: @config.get(:info, :app_ssh_oauth_client), + doppler_logging_endpoint: @config.get(:doppler, :url), + api_version: '', + osbapi_version: VCAP::CloudController::Constants::OSBAPI_VERSION + }, mode: :compat) + end + info = { name: @config.get(:info, :name), build: @config.get(:info, :build), diff --git a/spec/unit/controllers/runtime/info_controller_spec.rb b/spec/unit/controllers/runtime/info_controller_spec.rb index b2499fcb480..791c3f8a2a1 100644 --- a/spec/unit/controllers/runtime/info_controller_spec.rb +++ b/spec/unit/controllers/runtime/info_controller_spec.rb @@ -61,6 +61,25 @@ module VCAP::CloudController expect(hash['min_recommended_cli_version']).to eq('min_recommended_cli_version') end + it 'returns limited info when cc.temporary_enable_v2 is disabled' do + TestConfig.override(temporary_enable_v2: false) + + get '/v2/info' + hash = Oj.load(last_response.body) + expect(hash['name']).to eq(TestConfig.config[:info][:name]) + expect(hash['build']).to eq(TestConfig.config[:info][:build]) + expect(hash['support']).to eq('CF API v2 is disabled') + expect(hash['version']).to eq(TestConfig.config[:info][:version]) + expect(hash['description']).to eq(TestConfig.config[:info][:description]) + expect(hash['authorization_endpoint']).to eq(TestConfig.config[:login][:url]) + expect(hash['token_endpoint']).to eq(TestConfig.config[:uaa][:url]) + expect(hash['app_ssh_endpoint']).to eq(TestConfig.config[:info][:app_ssh_endpoint]) + expect(hash['app_ssh_host_key_fingerprint']).to eq(TestConfig.config[:info][:app_ssh_host_key_fingerprint]) + expect(hash['app_ssh_oauth_client']).to eq(TestConfig.config[:info][:app_ssh_oauth_client]) + expect(hash['api_version']).to eq('') + expect(hash['osbapi_version']).to eq(VCAP::CloudController::Constants::OSBAPI_VERSION) + end + describe 'custom fields' do context 'without custom fields in config' do before { TestConfig.override(info: {}) } From 20095b56f25fa34d86f08000900255b4f07b2103 Mon Sep 17 00:00:00 2001 From: Katharina Przybill <30441792+kathap@users.noreply.github.com> Date: Tue, 1 Apr 2025 09:24:00 +0200 Subject: [PATCH 2/2] code refactoring --- app/controllers/runtime/info_controller.rb | 25 +++++----------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/app/controllers/runtime/info_controller.rb b/app/controllers/runtime/info_controller.rb index 574d4cfe2f1..0869cf43e50 100644 --- a/app/controllers/runtime/info_controller.rb +++ b/app/controllers/runtime/info_controller.rb @@ -4,26 +4,6 @@ class InfoController < RestController::BaseController get '/v2/info', :read def read - unless @config.get(:temporary_enable_v2) - return Oj.dump({ - name: @config.get(:info, :name), - build: @config.get(:info, :build), - support: 'CF API v2 is disabled', - version: @config.get(:info, :version), - description: @config.get(:info, :description), - authorization_endpoint: @config.get(:login, :url), - token_endpoint: config.get(:uaa, :url), - min_cli_version: @config.get(:info, :min_cli_version), - min_recommended_cli_version: @config.get(:info, :min_recommended_cli_version), - app_ssh_endpoint: @config.get(:info, :app_ssh_endpoint), - app_ssh_host_key_fingerprint: @config.get(:info, :app_ssh_host_key_fingerprint), - app_ssh_oauth_client: @config.get(:info, :app_ssh_oauth_client), - doppler_logging_endpoint: @config.get(:doppler, :url), - api_version: '', - osbapi_version: VCAP::CloudController::Constants::OSBAPI_VERSION - }, mode: :compat) - end - info = { name: @config.get(:info, :name), build: @config.get(:info, :build), @@ -48,6 +28,11 @@ def read info[:user] = user.guid if user + unless @config.get(:temporary_enable_v2) + info[:support] = 'CF API v2 is disabled' + info[:api_version] = '' + end + Oj.dump(info, mode: :compat) end end