Skip to content

Commit e20fdf0

Browse files
committed
#37, add feature to purge old tarball es revisions
1 parent 5067c93 commit e20fdf0

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

attributes/default.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
default['elasticsearch']['install_method'] = 'package' # options: package tarball
88
default['elasticsearch']['install_java'] = true
9+
default['elasticsearch']['tarball_purge'] = false
910

1011
# cookbook for configuration files template resources
1112
default['elasticsearch']['cookbook'] = 'elasticsearch-cluster'

recipes/tarball.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,20 @@
8383
mode 0755
8484
notifies :restart, 'service[elasticsearch]', :delayed if node['elasticsearch']['notify_restart']
8585
end
86+
87+
# purge older versions
88+
ruby_block 'purge-old-tarball' do
89+
block do
90+
require 'fileutils'
91+
installed_versions = Dir.entries(node['elasticsearch']['parent_dir']).reject { |a| a !~ /^elasticsearch-/ }.sort
92+
old_versions = installed_versions - ["elasticsearch-#{node['elasticsearch']['version']}"]
93+
94+
old_versions.each do |v|
95+
v = ::File.join(node['elasticsearch']['parent_dir'], v)
96+
FileUtils.rm_rf Dir.glob(v)
97+
puts "deleted older C* tarball archive #{v}"
98+
Chef::Log.warn("deleted older C* tarball archive #{v}")
99+
end
100+
end
101+
only_if { node['elasticsearch']['tarball_purge'] }
102+
end

0 commit comments

Comments
 (0)