Skip to content

Commit 03ac69c

Browse files
author
Ilja Bobkevic
committed
Strip off API end-point file_uri string
Idea taken from #24 (thank you @hickey)
1 parent 499580b commit 03ac69c

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

lib/puppet_forge_server/backends/directory.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Directory
2323

2424
# Give highest priority to locally hosted modules
2525
@@PRIORITY = 0
26+
@@FILE_PATH = ''
2627
attr_reader :PRIORITY
2728

2829
def initialize(url)
@@ -83,7 +84,7 @@ def get_file_metadata(file_name, options)
8384
file_metadata << {
8485
:metadata => parse_dependencies(PuppetForgeServer::Models::Metadata.new(normalize_metadata(metadata_raw))),
8586
:checksum => options[:with_checksum] == true ? Digest::MD5.file(path).hexdigest : nil,
86-
:path => "/#{Pathname.new(path).relative_path_from(Pathname.new(@module_dir))}"
87+
:path => "/#{Pathname.new(path).relative_path_from(Pathname.new(@module_dir))}".gsub(/^#{@@FILE_PATH}/, '')
8788
}
8889
else
8990
@log.error "Failed reading metadata from #{path}"

lib/puppet_forge_server/backends/proxy.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@
2020
module PuppetForgeServer::Backends
2121
class Proxy
2222

23-
def initialize(url, cache_dir, http_client)
23+
def initialize(url, cache_dir, http_client, file_path)
2424
@url = url
2525
@cache_dir = File.join(cache_dir, Digest::SHA1.hexdigest(@url))
2626
@http_client = http_client
2727
@log = PuppetForgeServer::Logger.get
28+
@file_path = file_path
2829

2930
# Create directory structure for all alphabetic letters
3031
(10...36).each do |i|
@@ -37,7 +38,7 @@ def get_file_buffer(relative_path)
3738
File.join(@cache_dir, file_name[0].downcase, file_name)
3839
path = Dir["#{@cache_dir}/**/#{file_name}"].first
3940
unless File.exist?("#{path}")
40-
buffer = download("/#{relative_path}")
41+
buffer = download("#{@file_path.chomp('/')}/#{relative_path}")
4142
File.open(File.join(@cache_dir, file_name[0].downcase, file_name), 'wb') do |file|
4243
file.write(buffer.read)
4344
end

lib/puppet_forge_server/backends/proxy_v1.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ class ProxyV1 < PuppetForgeServer::Backends::Proxy
2222

2323
# Priority should be lower than v3 API proxies as v3 requires less API calls
2424
@@PRIORITY = 15
25+
@@FILE_PATH = '/api/v1/files'
2526
attr_reader :PRIORITY
2627

2728
def initialize(url, cache_dir, http_client = PuppetForgeServer::Http::HttpClient.new)
28-
super(url, cache_dir, http_client)
29+
super(url, cache_dir, http_client, @@FILE_PATH)
2930
end
3031

3132
def get_metadata(author, name, options = {})
@@ -78,7 +79,7 @@ def get_module_metadata(modules, options)
7879
{
7980
:metadata => parse_dependencies(PuppetForgeServer::Models::Metadata.new(raw_metadata)),
8081
:checksum => options[:with_checksum] ? Digest::MD5.hexdigest(File.read(get_file_buffer(release['file']))) : nil,
81-
:path => "#{release['file']}",
82+
:path => "#{release['file']}".gsub(/^#{@@FILE_PATH}/, ''),
8283
:tags => tags
8384
}
8485
end

lib/puppet_forge_server/backends/proxy_v3.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ module PuppetForgeServer::Backends
2020
class ProxyV3 < PuppetForgeServer::Backends::Proxy
2121

2222
@@PRIORITY = 10
23+
@@FILE_PATH = '/v3/files'
2324
attr_reader :PRIORITY
2425

2526
def initialize(url, cache_dir, http_client = PuppetForgeServer::Http::HttpClient.new)
26-
super(url, cache_dir, http_client)
27+
super(url, cache_dir, http_client, @@FILE_PATH)
2728
end
2829

2930
def get_metadata(author, name, options = {})
@@ -77,7 +78,7 @@ def get_release_metadata(releases)
7778
{
7879
:metadata => parse_dependencies(PuppetForgeServer::Models::Metadata.new(normalize_metadata(element['metadata']))),
7980
:checksum => element['file_md5'],
80-
:path => element['file_uri'],
81+
:path => element['file_uri'].gsub(/^#{@@FILE_PATH}/, ''),
8182
:tags => (element['tags'] + (element['metadata']['tags'] ? element['metadata']['tags'] : [])).flatten.uniq,
8283
:deleted_at => element['deleted_at']
8384
}

0 commit comments

Comments
 (0)