ike-artifactory 0.0.1pre2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e54d885ec980d2c49686b6f3395adbf7ab854b433823bd0a4fdf903e9887db8b
4
- data.tar.gz: e4af791e8b3751311af406bd43d29589de074b7bb2284f81195631782af8dd6e
3
+ metadata.gz: a820f721d21028a9d6e4d848c616a57688933f42278c3627ae8235feaacebe9a
4
+ data.tar.gz: 14e3cc59825373d278aeec0a3abbd9d531128c69c3ec437e3a5f279e4f2b7a04
5
5
  SHA512:
6
- metadata.gz: 4fdd3f97640d59e1bd33f1c66d0b16a6fdf94c7c3f76ff7c4b8ae0e8a7190fe7608498f5023f2e89220aa4a955653154e43219949e3cca14ba566ff456297a61
7
- data.tar.gz: 383af6127fec80f4974c3ba60baafcabe6ceea00a2f514ef588325ff27f85e51b9341ef334b71d86b32d9f6dd0e8909f01ae06521058663a1bb82206a105ab72
6
+ metadata.gz: 7be6653e88945813562d1e4245738f49adafc1e8db2a379fffafea1cc3bab0398f7d25b227084409762b1fae6c6755c460a831847b1dd459db2b1fa8f4ee41b6
7
+ data.tar.gz: 257097d4b827de943bb3acaf4a29c6a08aaf19b1084a03f3036754bfdceeebd5c3f4e4bacf4cb310a7b9e8451388dedc6a80abcbb982a8512ded45fdd0a615b7
data/bin/cleaner.rb CHANGED
@@ -5,13 +5,20 @@ $:.unshift(File.expand_path('../../lib', __FILE__))
5
5
  require 'ike_artifactory'
6
6
 
7
7
  actually_delete = false
8
- if ARGV[0] == '--actually-delete'
9
- ARGV.shift
10
- actually_delete = true
8
+ delete_empty_path = false
9
+ while ARGV[0] =~ /^--/ do
10
+ arg = ARGV.shift
11
+ if arg == '--actually-delete'
12
+ actually_delete = true
13
+ end
14
+
15
+ if arg == '--delete-empty-path'
16
+ delete_empty_path = true
17
+ end
11
18
  end
12
19
 
13
20
  unless [7,8].include?(ARGV.count)
14
- STDERR.puts "Usage: $0 [--actually-delete] artifactory_url repo_key username password application_list image_exclude_list days_to_keep [most_recent_images_to_keep]"
21
+ STDERR.puts "Usage: $0 [--actually-delete] [--delete-empty-path] artifactory_url repo_key username password application_list image_exclude_list days_to_keep [most_recent_images_to_keep]"
15
22
  exit 1
16
23
  end
17
24
 
@@ -52,6 +59,7 @@ apps.each do |app|
52
59
  puts "Cleaning #{app}"
53
60
  cleaner = IKE::Artifactory::DockerCleaner.new(
54
61
  actually_delete: actually_delete,
62
+ delete_empty_path: delete_empty_path,
55
63
  repo_host: artifactory_url,
56
64
  repo_key: repo_key,
57
65
  folder: app,
@@ -79,7 +79,13 @@ module IKE
79
79
  def fetch(path, method: :get, prefix: nil)
80
80
  retval = nil # Work around Object#stub stomping on return values
81
81
 
82
- prefix ||= "#{server}/artifactory/api/storage/#{repo_key}"
82
+ prefix ||=
83
+ case method
84
+ when :delete
85
+ "#{server}/artifactory/#{repo_key}"
86
+ else
87
+ "#{server}/artifactory/api/storage/#{repo_key}"
88
+ end
83
89
 
84
90
  RestClient::Request.execute(
85
91
  :method => method,
@@ -15,10 +15,11 @@ module IKE
15
15
  attr_reader :most_recent_images # is not tested
16
16
  attr_reader :logger # is not tested. Used for testing
17
17
  attr_reader :actually_delete
18
+ attr_reader :delete_empty_path
18
19
 
19
20
  def initialize(repo_host:, repo_key:, folder:, days_old:,
20
21
  tags_to_exclude:, user:, password:, most_recent_images:,
21
- log_level: ::Logger::INFO, actually_delete: false)
22
+ log_level: ::Logger::INFO, actually_delete: false, delete_empty_path: false)
22
23
 
23
24
  @repo_host = repo_host
24
25
  @repo_key = repo_key
@@ -27,7 +28,8 @@ module IKE
27
28
  @tags_to_exclude = tags_to_exclude || []
28
29
  @most_recent_images = most_recent_images
29
30
 
30
- @actually_delete = actually_delete
31
+ @actually_delete = actually_delete
32
+ @delete_empty_path = delete_empty_path
31
33
 
32
34
  @client = IKE::Artifactory::Client.new(
33
35
  :server => repo_host,
@@ -75,6 +77,14 @@ module IKE
75
77
  end
76
78
  deleted_images.append(tag)
77
79
  end
80
+ if delete_empty_path && deleted_images.length() == tags.length()
81
+ logger.info "#{logger_prefix}: removing empty path #{folder}"
82
+ if actually_delete
83
+ client.delete_object "#{folder}"
84
+ else
85
+ logger.info("#{logger_prefix}: Not actually deleting #{folder} because actually_delete is falsy")
86
+ end
87
+ end
78
88
  deleted_images
79
89
  end
80
90
  end
@@ -1,5 +1,5 @@
1
1
  module IKE
2
2
  module Artifactory
3
- VERSION = "0.0.1pre2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ike-artifactory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1pre2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Marden
8
8
  - Jack Newton
9
9
  - Vicente Ramos Garcia
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-11-10 00:00:00.000000000 Z
13
+ date: 2022-03-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -91,7 +91,7 @@ licenses:
91
91
  - MIT
92
92
  metadata:
93
93
  allowed_push_host: https://rubygems.org
94
- post_install_message:
94
+ post_install_message:
95
95
  rdoc_options: []
96
96
  require_paths:
97
97
  - lib
@@ -102,12 +102,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - ">"
105
+ - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 1.3.1
107
+ version: '0'
108
108
  requirements: []
109
109
  rubygems_version: 3.1.6
110
- signing_key:
110
+ signing_key:
111
111
  specification_version: 4
112
112
  summary: Provides an object-oriented interface to Artifactory API.
113
113
  test_files: []