Skip to content

Commit aeae57e

Browse files
author
vgolubev
committed
Allow to configure releases and shared folder names
Add 'current' and shared folder to previous version exclude filter for the cases, when versioned folder are stored in the same parent folder, as the shared one
1 parent 1b7f860 commit aeae57e

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

providers/deploy.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ def delete_current_if_forcing!
336336
level :info
337337
end
338338

339-
directory ::File.join(new_resource.deploy_to, 'releases', artifact_version) do
339+
directory ::File.join(new_resource.deploy_to, new_resource.releases_name, artifact_version) do
340340
recursive true
341341
action :delete
342342
end
@@ -370,7 +370,7 @@ def delete_previous_versions!
370370
action :delete
371371
end
372372

373-
directory ::File.join(new_resource.deploy_to, 'releases', version.basename) do
373+
directory ::File.join(new_resource.deploy_to, new_resource.releases_name, version.basename) do
374374
recursive true
375375
action :delete
376376
end
@@ -503,7 +503,7 @@ def is_current_using_symlinks?
503503
#
504504
# @return [String] the artifacts release path
505505
def get_release_path
506-
::File.join(new_resource.deploy_to, "releases", artifact_version)
506+
::File.join(new_resource.deploy_to, new_resource.releases_name, artifact_version)
507507
end
508508

509509
# Searches the releases directory and returns an Array of version folders. After
@@ -512,11 +512,13 @@ def get_release_path
512512
#
513513
# @return [Array] the mtime sorted array of currently installed versions
514514
def get_previous_version_paths
515-
versions = Dir[::File.join(new_resource.deploy_to, "releases", '**')].collect do |v|
515+
versions = Dir[::File.join(new_resource.deploy_to, new_resource.releases_name, '**')].collect do |v|
516516
Pathname.new(v)
517517
end
518518

519-
versions.reject! { |v| v.basename.to_s == get_current_release_version }
519+
exclude_filter = [get_current_release_version, 'current', new_resource.shared_name]
520+
521+
versions.reject! { |v| exclude_filter.include?(v.basename.to_s) }
520522

521523
versions.sort_by(&:mtime)
522524
end

providers/file.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ def load_current_resource
7878
end
7979
else
8080
remote_file_resource.run_action(:create)
81+
run_proc :after_download if @remote_file_resource.updated_by_last_action?
8182
end
8283
raise Chef::Artifact::ArtifactChecksumError unless checksum_valid?
8384
write_checksum if Chef::Artifact.from_nexus?(file_location) || Chef::Artifact.from_s3?(file_location)

resources/deploy.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
attribute :artifact_location, :kind_of => String
3030
attribute :artifact_checksum, :kind_of => String
3131
attribute :deploy_to, :kind_of => String, :required => true
32+
attribute :shared_name, :kind_of => String, :default => 'shared'
33+
attribute :releases_name, :kind_of => String, :default => 'releases'
3234
attribute :download_retries, :kind_of => Integer, :default => 1
3335
attribute :version, :kind_of => String, :required => true
3436
attribute :owner, :kind_of => String, :required => true, :regex => Chef::Config[:user_valid_regex]
@@ -72,5 +74,5 @@ def current_path
7274
end
7375

7476
def shared_path
75-
::File.join(self.deploy_to, "shared")
77+
::File.join(self.deploy_to, self.shared_name)
7678
end

0 commit comments

Comments
 (0)