From 8bd0adc9743fa9237f14ff8707e4ee20302a6d4e Mon Sep 17 00:00:00 2001 From: Mischa Taylor Date: Sat, 11 Jan 2025 17:21:39 -0500 Subject: [PATCH] Add support for managing file blob stores --- cookbooks/boxcutter_sonatype/attributes/default.rb | 8 +++++++- cookbooks/boxcutter_sonatype/libraries/default.rb | 11 +++++++++++ .../boxcutter_sonatype_test/recipes/default.rb | 10 +++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/cookbooks/boxcutter_sonatype/attributes/default.rb b/cookbooks/boxcutter_sonatype/attributes/default.rb index 9cc3bf7..436daf4 100644 --- a/cookbooks/boxcutter_sonatype/attributes/default.rb +++ b/cookbooks/boxcutter_sonatype/attributes/default.rb @@ -22,6 +22,12 @@ }, 'properties' => { }, - 'blobstores' => {}, + 'blobstores' => { + 'default' => { + 'name' => 'default', + 'type' => 'file', + 'path' => 'default', + } + }, 'repositories' => {}, } diff --git a/cookbooks/boxcutter_sonatype/libraries/default.rb b/cookbooks/boxcutter_sonatype/libraries/default.rb index 8828050..f21ef74 100644 --- a/cookbooks/boxcutter_sonatype/libraries/default.rb +++ b/cookbooks/boxcutter_sonatype/libraries/default.rb @@ -377,6 +377,15 @@ def self.repository_delete(node, repository_name) puts "MISCHA: DELETE response body: #{response.body}" end + def self.blobstore_create_file_payload(blobstore_name, blobstore_config) + payload = { + 'name' => blobstore_name, + 'path' => blobstore_config['path'], + } + + payload.to_json + end + def self.blobstore_create_s3_payload(blobstore_name, blobstore_config) payload = { 'name' => blobstore_name, @@ -405,6 +414,8 @@ def self.blobstore_create(node, blobstore_name, blobstore_config) uri = URI.parse("http://localhost:8081/service/rest/v1/blobstores/#{blobstore_type}") case blobstore_config['type'] + when 'file' + payload = blobstore_create_file_payload(blobstore_name, blobstore_config) when 's3' payload = blobstore_create_s3_payload(blobstore_name, blobstore_config) end diff --git a/cookbooks/boxcutter_sonatype/test/cookbooks/boxcutter_sonatype_test/recipes/default.rb b/cookbooks/boxcutter_sonatype/test/cookbooks/boxcutter_sonatype_test/recipes/default.rb index ad44a38..d65d936 100644 --- a/cookbooks/boxcutter_sonatype/test/cookbooks/boxcutter_sonatype_test/recipes/default.rb +++ b/cookbooks/boxcutter_sonatype/test/cookbooks/boxcutter_sonatype_test/recipes/default.rb @@ -5,10 +5,18 @@ node.run_state['boxcutter_sonatype'] ||= {} node.run_state['boxcutter_sonatype']['nexus_repository'] ||= {} node.run_state['boxcutter_sonatype']['nexus_repository']['admin_username'] = 'admin' -node.run_state['boxcutter_sonatype']['nexus_repository']['admin_password'] = 'Superseekret63' + node.run_state['boxcutter_sonatype']['nexus_repository']['admin_password'] = 'Superseekret63' # node.run_state['boxcutter_sonatype']['nexus_repository']['admin_username'] = 'chef' # node.run_state['boxcutter_sonatype']['nexus_repository']['admin_password'] = 'sucre-canonize-ROADSTER-bashful' +node.default['boxcutter_sonatype']['nexus_repository']['blobstores'] = { + 'default' => { + 'name' => 'default', + 'type' => 'file', + 'path' => 'default', + } +} + node.default['boxcutter_sonatype']['nexus_repository']['repositories'] = { 'testy-hosted' => { 'name' => 'testy-hosted',