|
28 | 28 | end |
29 | 29 |
|
30 | 30 | cc_cfg = (link("cloud_controller_internal").p("cc") rescue {}) |
31 | | - |
32 | 31 | unless cc_cfg.is_a?(Hash) |
33 | 32 | raise "cc link did not return a Hash, got: #{cc_cfg.class}" |
34 | 33 | end |
35 | 34 |
|
| 35 | + overrides = p("blobstore_benchmark.cc_overrides", {}) |
| 36 | + unless overrides.is_a?(Hash) |
| 37 | + raise "blobstore_benchmark.cc_overrides must be a Hash, got: #{overrides.class}" |
| 38 | + end |
| 39 | + |
| 40 | + if cc_cfg.respond_to?(:deep_merge) |
| 41 | + cc_cfg = cc_cfg.deep_merge(overrides) |
| 42 | + else |
| 43 | + merge_overwrite = lambda do |base, extra| |
| 44 | + extra.each do |k, v| |
| 45 | + if base[k].is_a?(Hash) && v.is_a?(Hash) |
| 46 | + merge_overwrite.call(base[k], v) |
| 47 | + else |
| 48 | + base[k] = v |
| 49 | + end |
| 50 | + end |
| 51 | + base |
| 52 | + end |
| 53 | + cc_cfg = merge_overwrite.call(cc_cfg, overrides) |
| 54 | + end |
| 55 | + |
36 | 56 | %w[resource_pool buildpacks packages droplets].each do |k| |
37 | 57 | section = cc_cfg[k] |
38 | 58 | next unless section.is_a?(Hash) |
|
72 | 92 | db_hash['ca_cert_path'] = '/var/vcap/jobs/blobstore_benchmark/config/certs/db_ca.crt' |
73 | 93 | end |
74 | 94 |
|
75 | | - logging_level = p("cc.logging_level", cc_cfg["logging_level"] || cc_cfg.dig("logging", "level") || "error") |
| 95 | + benchmark_logging_level = p("blobstore_benchmark.logging_level", "info") |
| 96 | + benchmark_stdout_sink = p("blobstore_benchmark.stdout_sink_enabled", false) |
76 | 97 |
|
77 | 98 | final = { |
78 | 99 | 'pid_filename' => '/var/vcap/sys/run/blobstore_benchmark/blobstore_benchmark.pid', |
|
82 | 103 | 'logging' => { |
83 | 104 | 'file' => '/var/vcap/sys/log/blobstore_benchmark/blobstore_benchmark.log', |
84 | 105 | 'syslog' => 'vcap.cloud_controller_ng', |
85 | | - 'level' => logging_level.to_s, |
| 106 | + 'level' => benchmark_logging_level.to_s, |
| 107 | + |
86 | 108 | 'max_retries' => p("cc.logging_max_retries", cc_cfg["logging_max_retries"] || 0), |
87 | 109 | 'format' => { |
88 | 110 | 'timestamp' => (cc_cfg.dig("logging", "format", "timestamp") || |
89 | 111 | link("cloud_controller_internal").p("cc.logging.format.timestamp", "rfc3339")) |
90 | 112 | }, |
91 | | - 'stdout_sink_enabled' => p('cc.stdout_logging_enabled', false) |
| 113 | + 'stdout_sink_enabled' => benchmark_stdout_sink |
92 | 114 | }, |
93 | 115 |
|
94 | 116 | 'db' => db_hash, |
95 | | - |
96 | | - 'storage_cli_config_file_resource_pool' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_resource_pool.json', |
97 | | - 'storage_cli_config_file_buildpacks' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_buildpacks.json', |
98 | | - 'storage_cli_config_file_packages' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_packages.json', |
99 | | - 'storage_cli_config_file_droplets' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_droplets.json', |
100 | 117 | } |
101 | 118 |
|
| 119 | + mode = p("blobstore_benchmark.mode") |
| 120 | + |
| 121 | + # Only configure storage-cli JSON config paths when running storage-cli mode |
| 122 | + if mode == "storage-cli" |
| 123 | + final.merge!( |
| 124 | + 'storage_cli_config_file_resource_pool' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_resource_pool.json', |
| 125 | + 'storage_cli_config_file_buildpacks' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_buildpacks.json', |
| 126 | + 'storage_cli_config_file_packages' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_packages.json', |
| 127 | + 'storage_cli_config_file_droplets' => '/var/vcap/jobs/blobstore_benchmark/config/storage_cli_config_droplets.json', |
| 128 | + ) |
| 129 | + end |
| 130 | + |
102 | 131 | deep_merge_without_overwrite(final, cc_cfg) |
103 | 132 | %> |
104 | 133 | --- |
|
0 commit comments