From f72d0779dfe661b59477be47dbeb132b265ebbbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Wed, 14 Jan 2026 09:39:30 +0100 Subject: [PATCH 01/10] feat: debug flag added for storage-cli --- .../blobstore/storage_cli/storage_cli_client.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index e42a66dab54..f22cbae58d0 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -25,7 +25,7 @@ class StorageCliClient < BaseClient 'Google' => 'gcs' }.freeze - IMPLEMENTED_PROVIDERS = %w[AzureRM aliyun].freeze + IMPLEMENTED_PROVIDERS = %w[AzureRM aliyun Google].freeze def initialize(directory_key:, resource_type:, root_dir:, min_size: nil, max_size: nil) raise 'Missing resource_type' if resource_type.nil? @@ -44,6 +44,7 @@ def initialize(directory_key:, resource_type:, root_dir:, min_size: nil, max_siz @min_size = min_size || 0 @max_size = max_size @storage_type = PROVIDER_TO_STORAGE_CLI_STORAGETYPE[@provider] + @debug = true end def fetch_config(resource_type) @@ -167,11 +168,18 @@ def ensure_bucket_exists private + def cli_log_file + file = VCAP::CloudController::Config.config.get(:logging, :file) + log_dir = File.dirname(file) + File.join(log_dir, 'storage_cli.log') + end + def run_cli(command, *args, allow_exit_code_three: false) logger.info("running storage-cli: #{@cli_path} -c #{@config_file} #{command} #{args.join(' ')}") begin - stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, command, *args) + stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, '-l', cli_log_file, command, *args) + logger.info("[DEBUG] storage-cli: #{stderr}") if @debug rescue StandardError => e raise BlobstoreError.new(e.inspect) end From 7bdc2b9eb104b0b59f8cf714e4dc3d9581ed8e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Wed, 14 Jan 2026 15:14:45 +0100 Subject: [PATCH 02/10] feat: request_id and user_guid added into logs as data --- .../blobstore/storage_cli/storage_cli_client.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index f22cbae58d0..d9c57492dac 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -179,7 +179,12 @@ def run_cli(command, *args, allow_exit_code_three: false) begin stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, '-l', cli_log_file, command, *args) - logger.info("[DEBUG] storage-cli: #{stderr}") if @debug + if @debug + log_data = { request_guid: ::VCAP::Request.current_id, user_guid: ::VCAP::CloudController::SecurityContext.current_user_guid }.compact + stderr.split("\n").each do |line| + logger.debug("[DEBUG] storage-cli: #{line}", log_data) + end + end rescue StandardError => e raise BlobstoreError.new(e.inspect) end From c153655daeec81a0e9bc45ca27c7aa82ac701024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Wed, 14 Jan 2026 17:21:47 +0100 Subject: [PATCH 03/10] fix: log_data removed - we don't need to set since request_id already set in request.rb by either vcap_request_context_setter.rb or by logging_context_job.rb - user_guid is also available in request.rb but only set by security_context_setter.rb so not available in jobs context --- .../blobstore/storage_cli/storage_cli_client.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index d9c57492dac..8dc2b01ed18 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -180,9 +180,8 @@ def run_cli(command, *args, allow_exit_code_three: false) begin stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, '-l', cli_log_file, command, *args) if @debug - log_data = { request_guid: ::VCAP::Request.current_id, user_guid: ::VCAP::CloudController::SecurityContext.current_user_guid }.compact stderr.split("\n").each do |line| - logger.debug("[DEBUG] storage-cli: #{line}", log_data) + logger.debug("[DEBUG] storage-cli: #{line}") end end rescue StandardError => e From 35074160f148b7ac4ab4fe6a55ac932a304c0d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Thu, 15 Jan 2026 09:21:11 +0100 Subject: [PATCH 04/10] fix: log level set to info --- .../blobstore/storage_cli/storage_cli_client.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index 8dc2b01ed18..0b1e82951c5 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -181,7 +181,7 @@ def run_cli(command, *args, allow_exit_code_three: false) stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, '-l', cli_log_file, command, *args) if @debug stderr.split("\n").each do |line| - logger.debug("[DEBUG] storage-cli: #{line}") + logger.info("[DEBUG] storage-cli: #{line}") end end rescue StandardError => e From cb8b25475e384f5ff7b874bcf4d6bda89512d195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Tue, 20 Jan 2026 14:43:41 +0100 Subject: [PATCH 05/10] feat: storage_cli_flag_options string added into config --- config/cloud_controller.yml | 1 + .../blobstore/storage_cli/storage_cli_client.rb | 16 +++++++++++----- .../config_schemas/api_schema.rb | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/config/cloud_controller.yml b/config/cloud_controller.yml index 27c889b724c..3819aa30d2d 100644 --- a/config/cloud_controller.yml +++ b/config/cloud_controller.yml @@ -325,6 +325,7 @@ storage_cli_config_file_droplets: config/storage_cli_config_droplets.json storage_cli_config_file_packages: config/storage_cli_config_packages.json storage_cli_config_file_buildpacks: config/storage_cli_config_buildpacks.json storage_cli_config_file_resource_pool: config/storage_cli_config_resource_pool.json +storage_cli_flag_options: '-log-level warn -log-file /tmp/storage_cli.log' newrelic_enabled: false diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index 0b1e82951c5..05dbdc57b20 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -174,15 +174,21 @@ def cli_log_file File.join(log_dir, 'storage_cli.log') end + def additional_flags + flags_string = VCAP::CloudController::Config.config.get(:storage_cli_flag_options) + return [] if flags_string.nil? || flags_string.empty? + + flags_string.split + end + def run_cli(command, *args, allow_exit_code_three: false) logger.info("running storage-cli: #{@cli_path} -c #{@config_file} #{command} #{args.join(' ')}") begin - stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, '-l', cli_log_file, command, *args) - if @debug - stderr.split("\n").each do |line| - logger.info("[DEBUG] storage-cli: #{line}") - end + stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, *additional_flags, command, *args) + stderr.split("\n").each do |line| + logger.debug("[DEBUG] storage-cli: #{line}") + logger.info("[DEBUG] storage-cli: #{line}") end rescue StandardError => e raise BlobstoreError.new(e.inspect) diff --git a/lib/cloud_controller/config_schemas/api_schema.rb b/lib/cloud_controller/config_schemas/api_schema.rb index 86d264b54a3..969ef0e640b 100644 --- a/lib/cloud_controller/config_schemas/api_schema.rb +++ b/lib/cloud_controller/config_schemas/api_schema.rb @@ -100,6 +100,7 @@ class ApiSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, + optional(:storage_cli_flag_options) => String, newrelic_enabled: bool, From 7b822f5c88e976374d571f31c8199cd08c6a0790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Tue, 20 Jan 2026 16:36:45 +0100 Subject: [PATCH 06/10] feat: storage_cli_flag_optionals added into schemas --- config/cloud_controller.yml | 2 +- .../blobstore/storage_cli/storage_cli_client.rb | 6 +++--- lib/cloud_controller/config_schemas/api_schema.rb | 2 +- lib/cloud_controller/config_schemas/clock_schema.rb | 1 + .../config_schemas/deployment_updater_schema.rb | 1 + lib/cloud_controller/config_schemas/worker_schema.rb | 1 + 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/config/cloud_controller.yml b/config/cloud_controller.yml index 3819aa30d2d..dda22da1523 100644 --- a/config/cloud_controller.yml +++ b/config/cloud_controller.yml @@ -325,7 +325,7 @@ storage_cli_config_file_droplets: config/storage_cli_config_droplets.json storage_cli_config_file_packages: config/storage_cli_config_packages.json storage_cli_config_file_buildpacks: config/storage_cli_config_buildpacks.json storage_cli_config_file_resource_pool: config/storage_cli_config_resource_pool.json -storage_cli_flag_options: '-log-level warn -log-file /tmp/storage_cli.log' +storage_cli_flag_optionals: '-log-level warn -log-file /tmp/storage_cli.log' newrelic_enabled: false diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index 05dbdc57b20..f574e74a9c7 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -175,20 +175,20 @@ def cli_log_file end def additional_flags - flags_string = VCAP::CloudController::Config.config.get(:storage_cli_flag_options) + flags_string = VCAP::CloudController::Config.config.get(:storage_cli_flag_optionals) return [] if flags_string.nil? || flags_string.empty? flags_string.split end def run_cli(command, *args, allow_exit_code_three: false) - logger.info("running storage-cli: #{@cli_path} -c #{@config_file} #{command} #{args.join(' ')}") + logger.info("running storage-cli: #{@cli_path} -s #{@storage_type} -c #{@config_file} #{additional_flags.join(' ')} #{command} #{args.join(' ')}") begin stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, *additional_flags, command, *args) stderr.split("\n").each do |line| + logger.info("[INFO] storage-cli: #{line}") logger.debug("[DEBUG] storage-cli: #{line}") - logger.info("[DEBUG] storage-cli: #{line}") end rescue StandardError => e raise BlobstoreError.new(e.inspect) diff --git a/lib/cloud_controller/config_schemas/api_schema.rb b/lib/cloud_controller/config_schemas/api_schema.rb index 969ef0e640b..a644585e9fa 100644 --- a/lib/cloud_controller/config_schemas/api_schema.rb +++ b/lib/cloud_controller/config_schemas/api_schema.rb @@ -100,7 +100,7 @@ class ApiSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, - optional(:storage_cli_flag_options) => String, + optional(:storage_cli_flag_optionals) => String, newrelic_enabled: bool, diff --git a/lib/cloud_controller/config_schemas/clock_schema.rb b/lib/cloud_controller/config_schemas/clock_schema.rb index 14c9952c0eb..2b8c55d9183 100644 --- a/lib/cloud_controller/config_schemas/clock_schema.rb +++ b/lib/cloud_controller/config_schemas/clock_schema.rb @@ -54,6 +54,7 @@ class ClockSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, + optional(:storage_cli_flag_optionals) => String, newrelic_enabled: bool, diff --git a/lib/cloud_controller/config_schemas/deployment_updater_schema.rb b/lib/cloud_controller/config_schemas/deployment_updater_schema.rb index 267cb8acc8c..cfbf3bb8780 100644 --- a/lib/cloud_controller/config_schemas/deployment_updater_schema.rb +++ b/lib/cloud_controller/config_schemas/deployment_updater_schema.rb @@ -19,6 +19,7 @@ class DeploymentUpdaterSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, + optional(:storage_cli_flag_optionals) => String, readiness_port: { deployment_updater: Integer diff --git a/lib/cloud_controller/config_schemas/worker_schema.rb b/lib/cloud_controller/config_schemas/worker_schema.rb index ad5e0b574e9..226da95c6a7 100644 --- a/lib/cloud_controller/config_schemas/worker_schema.rb +++ b/lib/cloud_controller/config_schemas/worker_schema.rb @@ -46,6 +46,7 @@ class WorkerSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, + optional(:storage_cli_flag_optionals) => String, newrelic_enabled: bool, From 4fde4e469eef7e01f5c7ceda34b9bde74578904b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Wed, 21 Jan 2026 09:18:40 +0100 Subject: [PATCH 07/10] refactor: extra flag option paratmeter renamed to storage_cli_optional_flags --- config/cloud_controller.yml | 1 - .../blobstore/storage_cli/storage_cli_client.rb | 2 +- lib/cloud_controller/config_schemas/api_schema.rb | 2 +- lib/cloud_controller/config_schemas/clock_schema.rb | 2 +- .../config_schemas/deployment_updater_schema.rb | 2 +- lib/cloud_controller/config_schemas/worker_schema.rb | 2 +- 6 files changed, 5 insertions(+), 6 deletions(-) diff --git a/config/cloud_controller.yml b/config/cloud_controller.yml index dda22da1523..27c889b724c 100644 --- a/config/cloud_controller.yml +++ b/config/cloud_controller.yml @@ -325,7 +325,6 @@ storage_cli_config_file_droplets: config/storage_cli_config_droplets.json storage_cli_config_file_packages: config/storage_cli_config_packages.json storage_cli_config_file_buildpacks: config/storage_cli_config_buildpacks.json storage_cli_config_file_resource_pool: config/storage_cli_config_resource_pool.json -storage_cli_flag_optionals: '-log-level warn -log-file /tmp/storage_cli.log' newrelic_enabled: false diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index f574e74a9c7..70d17f65397 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -175,7 +175,7 @@ def cli_log_file end def additional_flags - flags_string = VCAP::CloudController::Config.config.get(:storage_cli_flag_optionals) + flags_string = VCAP::CloudController::Config.config.get(:storage_cli_optional_flags) return [] if flags_string.nil? || flags_string.empty? flags_string.split diff --git a/lib/cloud_controller/config_schemas/api_schema.rb b/lib/cloud_controller/config_schemas/api_schema.rb index a644585e9fa..26cc02896eb 100644 --- a/lib/cloud_controller/config_schemas/api_schema.rb +++ b/lib/cloud_controller/config_schemas/api_schema.rb @@ -100,7 +100,7 @@ class ApiSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, - optional(:storage_cli_flag_optionals) => String, + optional(:storage_cli_optional_flags) => String, newrelic_enabled: bool, diff --git a/lib/cloud_controller/config_schemas/clock_schema.rb b/lib/cloud_controller/config_schemas/clock_schema.rb index 2b8c55d9183..602a6b4883f 100644 --- a/lib/cloud_controller/config_schemas/clock_schema.rb +++ b/lib/cloud_controller/config_schemas/clock_schema.rb @@ -54,7 +54,7 @@ class ClockSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, - optional(:storage_cli_flag_optionals) => String, + optional(:storage_cli_optional_flags) => String, newrelic_enabled: bool, diff --git a/lib/cloud_controller/config_schemas/deployment_updater_schema.rb b/lib/cloud_controller/config_schemas/deployment_updater_schema.rb index cfbf3bb8780..9b332aa8fae 100644 --- a/lib/cloud_controller/config_schemas/deployment_updater_schema.rb +++ b/lib/cloud_controller/config_schemas/deployment_updater_schema.rb @@ -19,7 +19,7 @@ class DeploymentUpdaterSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, - optional(:storage_cli_flag_optionals) => String, + optional(:storage_cli_optional_flags) => String, readiness_port: { deployment_updater: Integer diff --git a/lib/cloud_controller/config_schemas/worker_schema.rb b/lib/cloud_controller/config_schemas/worker_schema.rb index 226da95c6a7..054fccf4c30 100644 --- a/lib/cloud_controller/config_schemas/worker_schema.rb +++ b/lib/cloud_controller/config_schemas/worker_schema.rb @@ -46,7 +46,7 @@ class WorkerSchema < VCAP::Config optional(:storage_cli_config_file_packages) => String, optional(:storage_cli_config_file_resource_pool) => String, optional(:storage_cli_config_file_droplets) => String, - optional(:storage_cli_flag_optionals) => String, + optional(:storage_cli_optional_flags) => String, newrelic_enabled: bool, From d03daedd1471b607c4c2a8679aba68a7a8426d11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Wed, 21 Jan 2026 12:27:58 +0100 Subject: [PATCH 08/10] refactor: cli_log_file function is removed --- config/cloud_controller.yml | 1 + .../blobstore/storage_cli/storage_cli_client.rb | 6 ------ 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/config/cloud_controller.yml b/config/cloud_controller.yml index 27c889b724c..bdb1f9108f5 100644 --- a/config/cloud_controller.yml +++ b/config/cloud_controller.yml @@ -325,6 +325,7 @@ storage_cli_config_file_droplets: config/storage_cli_config_droplets.json storage_cli_config_file_packages: config/storage_cli_config_packages.json storage_cli_config_file_buildpacks: config/storage_cli_config_buildpacks.json storage_cli_config_file_resource_pool: config/storage_cli_config_resource_pool.json +storage_cli_optional_flags: "" newrelic_enabled: false diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index 70d17f65397..ff3e27b9289 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -168,12 +168,6 @@ def ensure_bucket_exists private - def cli_log_file - file = VCAP::CloudController::Config.config.get(:logging, :file) - log_dir = File.dirname(file) - File.join(log_dir, 'storage_cli.log') - end - def additional_flags flags_string = VCAP::CloudController::Config.config.get(:storage_cli_optional_flags) return [] if flags_string.nil? || flags_string.empty? From aa0bda2c6559ab32b9521927e11942073bfd00c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Wed, 21 Jan 2026 14:38:13 +0100 Subject: [PATCH 09/10] test: unit tests for additional_flags function are added --- .../storage_cli/storage_cli_client_spec.rb | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/spec/unit/lib/cloud_controller/blobstore/storage_cli/storage_cli_client_spec.rb b/spec/unit/lib/cloud_controller/blobstore/storage_cli/storage_cli_client_spec.rb index eb55275a8fd..5c088b88030 100644 --- a/spec/unit/lib/cloud_controller/blobstore/storage_cli/storage_cli_client_spec.rb +++ b/spec/unit/lib/cloud_controller/blobstore/storage_cli/storage_cli_client_spec.rb @@ -49,7 +49,7 @@ module Blobstore expect do StorageCliClient.new(directory_key: 'dummy-key', root_dir: 'dummy-root', resource_type: 'droplets') - end.to raise_error(RuntimeError, 'Unimplemented provider: UnknownProvider, implemented ones are: AzureRM, aliyun') + end.to raise_error(RuntimeError, 'Unimplemented provider: UnknownProvider, implemented ones are: AzureRM, aliyun, Google') droplets_cfg.close! end @@ -90,7 +90,7 @@ module Blobstore end end - allow(Steno).to receive(:logger).and_return(double(info: nil, error: nil)) + allow(Steno).to receive(:logger).and_return(double(info: nil, error: nil, debug: nil)) end after do @@ -266,7 +266,7 @@ def build_client(resource_type) tmp_cfg.path end end - allow(Steno).to receive(:logger).and_return(double(info: nil, error: nil)) + allow(Steno).to receive(:logger).and_return(double(info: nil, error: nil, debug: nil)) end after { tmp_cfg.close! } @@ -284,6 +284,28 @@ def build_client(resource_type) let(:deletable_blob) { StorageCliBlob.new('deletable-blob') } let(:dest_path) { File.join(Dir.mktmpdir, SecureRandom.uuid) } + describe 'optional flags' do + context 'when there is no extra flags' do + before do + allow(VCAP::CloudController::Config.config).to receive(:get).with(:storage_cli_optional_flags).and_return('') + end + + it('returns empty list') { + expect(client.send(:additional_flags)).to eq([]) + } + end + + context 'when there is extra flags' do + before do + allow(VCAP::CloudController::Config.config).to receive(:get).with(:storage_cli_optional_flags).and_return('-log-level warn -log-file some/path/storage-cli.log') + end + + it('returns empty list') { + expect(client.send(:additional_flags)).to eq(['-log-level', 'warn', '-log-file', 'some/path/storage-cli.log']) + } + end + end + describe '#exists?' do context 'when the blob exists' do before { allow(client).to receive(:run_cli).with('exists', any_args).and_return([nil, instance_double(Process::Status, exitstatus: 0)]) } From 3eb2cc78b0708641a1ba5295ac3d2b5b7653e5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20=C3=96zer?= Date: Thu, 22 Jan 2026 11:17:13 +0100 Subject: [PATCH 10/10] fix: extra debug logging and unused debug attribute are removed --- .../blobstore/storage_cli/storage_cli_client.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb index ff3e27b9289..0a61be4305b 100644 --- a/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb +++ b/lib/cloud_controller/blobstore/storage_cli/storage_cli_client.rb @@ -44,7 +44,6 @@ def initialize(directory_key:, resource_type:, root_dir:, min_size: nil, max_siz @min_size = min_size || 0 @max_size = max_size @storage_type = PROVIDER_TO_STORAGE_CLI_STORAGETYPE[@provider] - @debug = true end def fetch_config(resource_type) @@ -182,7 +181,6 @@ def run_cli(command, *args, allow_exit_code_three: false) stdout, stderr, status = Open3.capture3(@cli_path, '-s', @storage_type, '-c', @config_file, *additional_flags, command, *args) stderr.split("\n").each do |line| logger.info("[INFO] storage-cli: #{line}") - logger.debug("[DEBUG] storage-cli: #{line}") end rescue StandardError => e raise BlobstoreError.new(e.inspect)