kindredgroup / puppet-forge-server

Private Puppet forge server supports local files and both v1 and v3 API proxies
69 stars 44 forks source link

Error fetching modules by proxying official puppet forge and using librarian-puppet #9

Closed mathieuboniface closed 9 years ago

mathieuboniface commented 9 years ago

Our Puppetfile (pointing to puppet-forge-server)

forge "http://puppet-library.fr.corp.company.com"

mod "puppetlabs/apache", ">= 3.3.0"

stdout from librarian-puppet install --verbose

[...]
[Librarian] Querying Forge API for module puppetlabs-apache: http://puppet-library.fr.corp.company.com/api/v1/releases.json?module=puppetlabs/apache
/Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:84:in `rescue in api_call': Error requesting http://puppet-library.fr.corp.company.com/api/v1/releases.json?module=puppetlabs/apache: 500 Internal Server Error  (OpenURI::HTTPError)
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:76:in `api_call'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:53:in `api_data'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:22:in `get_versions'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo.rb:15:in `versions'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo.rb:42:in `manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge.rb:152:in `manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/dependency.rb:155:in `cache_manifests!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/dependency.rb:151:in `manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:160:in `block in resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:173:in `block (2 levels) in scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:187:in `block in scope_checking_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:231:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:186:in `scope_checking_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:172:in `block in scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:231:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:171:in `scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:159:in `resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:65:in `do_resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:50:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver.rb:23:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/action/resolve.rb:31:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/action/resolve.rb:8:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/cli.rb:104:in `resolve!'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/cli.rb:68:in `install'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `block (2 levels) in bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:31:in `returning_status'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `block in bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:47:in `with_environment'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/bin/librarian-puppet:7:in `<top (required)>'
    from /usr/bin/librarian-puppet:23:in `load'
    from /usr/bin/librarian-puppet:23:in `<main>'

Standard output on server side (puppet-forge-server installed on RHEL 6, ruby 193 from scl)

[...]
- -> /api/v1/releases.json?module=puppetlabs/apache
2015-04-23 15:27:50 - TypeError - can't convert String into Integer:
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:25:in `[]'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:25:in `block (2 levels) in get_releases'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:24:in `map'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:24:in `block in get_releases'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:20:in `map'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:20:in `get_releases'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/app/version1.rb:49:in `block in <class:Version1>'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:in `block in compile!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `[]'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `block (3 levels) in route!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:993:in `route_eval'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `block (2 levels) in route!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1014:in `block in process_route'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `catch'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `process_route'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:972:in `block in route!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `each'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `route!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1084:in `block in dispatch!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `block in invoke'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1081:in `dispatch!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `block in call!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `block in invoke'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `call!'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:894:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-1.6.0/lib/rack/commonlogger.rb:33:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:218:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-1.6.0/lib/rack/logger.rb:15:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:211:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-1.6.0/lib/rack/head.rb:13:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/show_exceptions.rb:21:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:181:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/sinatra-1.4.6/lib/sinatra/base.rb:2021:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:152:in `block in call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:96:in `block in recognize'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:82:in `optimized_each'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:95:in `recognize'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:141:in `call'
    /opt/rh/ruby193/root/usr/local/share/gems/gems/rack-1.6.0/lib/rack/handler/webrick.rb:89:in `service'
    /opt/rh/ruby193/root/usr/share/ruby/webrick/httpserver.rb:138:in `service'
    /opt/rh/ruby193/root/usr/share/ruby/webrick/httpserver.rb:94:in `run'
    /opt/rh/ruby193/root/usr/share/ruby/webrick/server.rb:191:in `block in start_thread'localhost - - [23/Apr/2015:15:27:48 CEST] "GET /api/v1/releases.json?module=puppetlabs/apache HTTP/1.1" 500 154381

Do you have any idea to workaround that issue ?

i11 commented 9 years ago

Thanks for reporting! Would you mind running librarian with --no-use-v1-api for me? I was less focused on v1 API to be honest, so there might be some bugs left. Never the less it should be fixed and I will look into it a bit later through out the day.

mathieuboniface commented 9 years ago

Thanks for your quick reply.

With --no-use-v1-api, the same error come from librarian-puppet, no error on server side.

Stdout from librarian-puppet install --verbose --no-use-v1-api

/Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v3.rb:23:in `[]': no implicit conversion of String into Integer (TypeError)
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v3.rb:23:in `block in dependencies'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v3.rb:23:in `map'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v3.rb:23:in `dependencies'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge.rb:145:in `fetch_dependencies'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/manifest.rb:100:in `fetch_dependencies!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/manifest.rb:89:in `fetched_dependencies'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/manifest.rb:46:in `dependencies'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/manifest.rb:63:in `exclude_dependencies!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:68:in `block in do_resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:162:in `block (3 levels) in resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:195:in `block in scope_checking_manifest'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:231:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:194:in `scope_checking_manifest'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:161:in `block (2 levels) in resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:219:in `block in map_find'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:218:in `each'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:218:in `map_find'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:160:in `block in resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:173:in `block (2 levels) in scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:187:in `block in scope_checking_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:231:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:186:in `scope_checking_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:172:in `block in scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:231:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:171:in `scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:159:in `resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:65:in `do_resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:50:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver.rb:23:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/action/resolve.rb:31:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/action/resolve.rb:8:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/cli.rb:104:in `resolve!'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/cli.rb:68:in `install'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `block (2 levels) in bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:31:in `returning_status'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `block in bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:47:in `with_environment'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/bin/librarian-puppet:7:in `<top (required)>'
    from /usr/bin/librarian-puppet:23:in `load'
    from /usr/bin/librarian-puppet:23:in `<main>'

On server side (puppet-forge-serve), I get a lot of "json-style" output :

- -> /v3/modules/puppetlabs-apache
[2015-04-23 16:10:47] ERROR  Requested releases count is more than 1:
[{:uri=>"/v3/releases/puppetlabs-apache-0.0.4", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.0.4", "project_page"=>"https://github.com/puppetlabs/puppetlabs-apache", "description"=>"Installs, configures, and manages Apache virtual hosts, web services, and modules.", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"]]}, :version=>"0.0.4", :tags=>["apache", "debian", "web", "virtualhost", "passenger", "proxy", "ubuntu", "ssl", "rhel", "apache2", "httpd", "centos", "wsgi", "virtual-host"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.0.4.tar.gz", :file_md5=>"5d1d4ec6ce20986d4be3a4bd0ecba07a"}, {:uri=>"/v3/releases/puppetlabs-apache-0.1.1", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.1.1", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.1.1", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.1.1.tar.gz", :file_md5=>"b00db93a5ee05c20207bbadcf85af2d6"}, {:uri=>"/v3/releases/puppetlabs-apache-0.2.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.2.0", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.2.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.2.0.tar.gz", :file_md5=>"e7edaffc2d96a3d0ac629006ec12b117"}, {:uri=>"/v3/releases/puppetlabs-apache-0.2.1", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.2.1", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.2.1", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.2.1.tar.gz", :file_md5=>"8c8f4d98653673a2563372c3f8e5dfcb"}, {:uri=>"/v3/releases/puppetlabs-apache-0.2.2", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.2.2", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.2.2", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.2.2.tar.gz", :file_md5=>"1f95ea71528835d562c99366cea3d649"}, {:uri=>"/v3/releases/puppetlabs-apache-0.3.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.3.0", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.3.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.3.0.tar.gz", :file_md5=>"306d26a53b2ee31a1c51a9ee801aa3c8"}, {:uri=>"/v3/releases/puppetlabs-apache-0.4.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.4.0", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.4.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.4.0.tar.gz", :file_md5=>"996659ad952e1729f286524e4dba4c04"}, {:uri=>"/v3/releases/puppetlabs-apache-0.5.0-rc1", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.5.0-rc1", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.5.0-rc1", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.5.0-rc1.tar.gz", :file_md5=>"f62139bda531ac4c8f55ecf09f77d0e9"}, {:uri=>"/v3/releases/puppetlabs-apache-0.6.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.6.0", "dependencies"=>[["puppetlabs/firewall", ">= 0.0.4"], ["puppetlabs/stdlib", ">= 2.2.1"]]}, :version=>"0.6.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.6.0.tar.gz", :file_md5=>"89fa11aef710c060e0bf9f9ff2cae455"}, {:uri=>"/v3/releases/puppetlabs-apache-0.7.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.7.0", "dependencies"=>[["puppetlabs/stdlib", ">= 2.2.1"], ["ripienaar/concat", ">= 0.2.0"]]}, :version=>"0.7.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.7.0.tar.gz", :file_md5=>"c8ab994e2dcee7681acda5538ba4ce0b"}, {:uri=>"/v3/releases/puppetlabs-apache-0.8.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.8.0", "dependencies"=>[["puppetlabs/stdlib", ">= 2.2.1"], ["ripienaar/concat", ">= 0.2.0"]]}, :version=>"0.8.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.8.0.tar.gz", :file_md5=>"d77e65d987d670d5dac2538e2c98c0b5"}, {:uri=>"/v3/releases/puppetlabs-apache-0.8.1", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.8.1", "dependencies"=>[["puppetlabs/stdlib", ">= 2.2.1"], ["ripienaar/concat", ">= 0.2.0"]]}, :version=>"0.8.1", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.8.1.tar.gz", :file_md5=>"debec531e3b92b356b6d01dbb9a8d6d4"}, {:uri=>"/v3/releases/puppetlabs-apache-0.9.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.9.0", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"0.9.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.9.0.tar.gz", :file_md5=>"97ab32e19f65dbe6d7f42b3e5c3ada8e"}, {:uri=>"/v3/releases/puppetlabs-apache-0.10.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.10.0", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"0.10.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.10.0.tar.gz", :file_md5=>"4036f35903264c9b6e3289455cfee225"}, {:uri=>"/v3/releases/puppetlabs-apache-0.11.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"0.11.0", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"0.11.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-0.11.0.tar.gz", :file_md5=>"3737dc1cb48253b73073ad5b061bedf5"}, {:uri=>"/v3/releases/puppetlabs-apache-1.0.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.0.0", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"1.0.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.0.0.tar.gz", :file_md5=>"7901f07df74b22c5fbe00b511215e1a5"}, {:uri=>"/v3/releases/puppetlabs-apache-1.0.1", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.0.1", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"1.0.1", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.0.1.tar.gz", :file_md5=>"2dae3bfc6ad74494414927ad21e79837"}, {:uri=>"/v3/releases/puppetlabs-apache-1.1.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.1.0", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"1.1.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.1.0.tar.gz", :file_md5=>"5c1b1b57a06744f9e74f172d2f116530"}, {:uri=>"/v3/releases/puppetlabs-apache-1.1.1", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.1.1", "dependencies"=>[["puppetlabs/concat", ">= 1.0.0"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"1.1.1", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.1.1.tar.gz", :file_md5=>"de76efd495ada7c5092cee3767a057d2"}, {:uri=>"/v3/releases/puppetlabs-apache-1.2.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.2.0", "dependencies"=>[["puppetlabs/concat", ">= 1.1.1"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"1.2.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.2.0.tar.gz", :file_md5=>"77b6f3cd103d03325e104d5d10d2f2ef"}, {:uri=>"/v3/releases/puppetlabs-apache-1.3.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.3.0", "dependencies"=>[["puppetlabs/concat", ">= 1.1.1"], ["puppetlabs/stdlib", ">= 2.4.0"]]}, :version=>"1.3.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.3.0.tar.gz", :file_md5=>"5761c9a5b164b8e93453ece04e4c275b"}, {:uri=>"/v3/releases/puppetlabs-apache-1.4.0", :module=>{:uri=>"/v3/modules/puppetlabs-apache", :name=>"apache", :owner=>{:username=>"puppetlabs", :uri=>"/v3/users/puppetlabs"}}, :metadata=>{"author"=>"puppetlabs", "name"=>"puppetlabs-apache", "version"=>"1.4.0", "dependencies"=>[["puppetlabs/concat", ">= 1.1.1 < 2.0.0"], ["puppetlabs/stdlib", ">= 2.4.0 < 5.0.0"]]}, :version=>"1.4.0", :tags=>["puppetlabs", "apache"], :file_uri=>"/v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.4.0.tar.gz", :file_md5=>"d7ca24141ecaafb58321d5356e3bcee8"}]
10.16.203.2, 10.5.8.174 - - [23/Apr/2015:16:10:47 +0200] "GET /v3/releases/puppetlabs-apache-1.4.0 HTTP/1.1" 200 755 1.3364
localhost - - [23/Apr/2015:16:10:46 CEST] "GET /v3/releases/puppetlabs-apache-1.4.0 HTTP/1.1" 200 755
mathieuboniface commented 9 years ago

To complete, when I use the official forge into Puppetfile : forge "https://forgeapi.puppetlabs.com"

I have no error, the dependencies are well resolved, and all modules are installed in the proper directory.

i11 commented 9 years ago

Are you sure the Puppetfile is exactly the same when your try the official forge? I couldn't find puppetlabs-apache 3.3.0 module for example. Also I couldn't really reproduce the error you got with v1 API.

In case of v3 API it seems like a similar error, but on the other side. The json payload you see in the log might be normal in some rare cases. It's basically pointing out that for a specific release request there were several different modules found.

The trace leads to metadata dependency parsing issue. Assuming the module is stored internally, would you mind sharing the metadata.json of the apache module you're trying to fetch? At least the dependencies part of it.

mathieuboniface commented 9 years ago

I've made new tests using basic configuration (no proxy, local install of puppet-forge-server)

First, I try to install puppetlabs/stdlib, and it works : Puppetfile :

forge "http://localhost:9292/"
mod "puppetlabs/stdlib"

Librarian outpout :

👻  ~/tmp $ librarian-puppet clean && librarian-puppet install --verbose
[Librarian] Ruby Version: 2.0.0
[Librarian] Ruby Platform: universal.x86_64-darwin14
[Librarian] Rubygems Version: 2.0.14
[Librarian] Librarian Version: 0.6.2
[Librarian] Librarian Adapter: puppet
[Librarian] Librarian Adapter Version: 2.1.0
[Librarian] Project: /Users/m/tmp
[Librarian] Specfile: Puppetfile
[Librarian] Lockfile: Puppetfile.lock
[Librarian] Git: /opt/local/bin/git
[Librarian] Git Version: 2.3.5
[Librarian] Git Environment Variables:
[Librarian]   (empty)
[Librarian] Pre-Cached Sources:
[Librarian] Post-Cached Sources:
[Librarian]   [:forge, "http://localhost:9292/", {}]
[Librarian] Resolving puppetlabs-stdlib (>= 0) <http://localhost:9292/>
[Librarian]   Checking manifests
[Librarian] Querying Forge API for module puppetlabs-stdlib: http://localhost:9292/api/v1/releases.json?module=puppetlabs/stdlib
[Librarian]   Module puppetlabs-stdlib found versions: 4.6.0, 4.5.1, 4.5.0, 4.4.0, 4.3.2, 4.3.0, 4.2.2, 4.2.1, 4.2.0, 4.1.0, 3.2.2, 3.2.1, 3.2.0, 3.1.1, 3.1.0, 3.0.1, 3.0.0, 2.6.0, 2.5.1, 2.5.0, 2.4.0, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.1, 2.2.0, 2.1.3, 2.0.0, 1.1.0, 1.0.0, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2, 0.1.1
[Librarian]     Checking puppetlabs-stdlib/4.6.0 <http://localhost:9292/>
[Librarian]       Resolved puppetlabs-stdlib (>= 0) <http://localhost:9292/> at puppetlabs-stdlib/4.6.0 <http://localhost:9292/>
[Librarian]   Resolved puppetlabs-stdlib (>= 0) <http://localhost:9292/>
[Librarian] Bouncing Puppetfile.lock
[Librarian] Install: dependencies resolved
[Librarian] Installing puppetlabs-stdlib/4.6.0 <http://localhost:9292/>
[Librarian] Executing puppet module install for puppetlabs-stdlib 4.6.0: puppet module install --version 4.6.0 --target-dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-stdlib/4.6.0 --module_repository http://localhost:9292/ --modulepath /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-stdlib/4.6.0 --module_working_dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-stdlib/4.6.0 --ignore-dependencies puppetlabs-stdlib

puppet-forge-server output :

[2015-04-24 14:45:46] INFO  Detecting API version for http://forge.puppetlabs.com...
[2015-04-24 14:45:47] INFO   +- Daemonizing: false
[2015-04-24 14:45:47] INFO   |- Port: 9292
[2015-04-24 14:45:47] INFO   |- Host: default
[2015-04-24 14:45:47] INFO   |- Pidfile: default
[2015-04-24 14:45:47] INFO   |- Server: default
[2015-04-24 14:45:47] INFO   `- Backends:
[2015-04-24 14:45:47] INFO      - #<PuppetForgeServer::Backends::ProxyV1:0x007faf0a967358 @url="http://forge.puppetlabs.com", @cache_dir="/var/folders/pd/msryyljd39sbhcj89yl93fsc0000gn/T/puppet-forge-server/cache/75a31f1d6f1ef6eb63b4479b3512ee1508209a7f", @http_client=#<PuppetForgeServer::Http::HttpClient:0x007faf0a967330>>
[2015-04-24 14:45:47] INFO  WEBrick 1.3.1
[2015-04-24 14:45:47] INFO  ruby 2.0.0 (2014-05-08) [universal.x86_64-darwin14]
[2015-04-24 14:45:47] INFO  WEBrick::HTTPServer#start: pid=6002 port=9292
127.0.0.1 - - [24/Apr/2015 14:46:04] "GET /api/v1/releases.json?module=puppetlabs/stdlib HTTP/1.1" 200 4621 1.2107
localhost - - [24/Apr/2015:14:46:03 CEST] "GET /api/v1/releases.json?module=puppetlabs/stdlib HTTP/1.1" 200 4621
- -> /api/v1/releases.json?module=puppetlabs/stdlib
127.0.0.1 - - [24/Apr/2015 14:46:07] "GET /v3/releases?module=puppetlabs-stdlib HTTP/1.1" 200 17351 1.3507
localhost - - [24/Apr/2015:14:46:06 CEST] "GET /v3/releases?module=puppetlabs-stdlib HTTP/1.1" 200 17351
- -> /v3/releases?module=puppetlabs-stdlib
127.0.0.1 - - [24/Apr/2015 14:46:07] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-stdlib-4.6.0.tar.gz HTTP/1.1" 200 119320 0.0013
localhost - - [24/Apr/2015:14:46:07 CEST] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-stdlib-4.6.0.tar.gz HTTP/1.1" 200 119320
- -> /v3/files/system/releases/p/puppetlabs/puppetlabs-stdlib-4.6.0.tar.gz

Now trying to fetch puppetlabs/apache, it does not work. Puppetfile:

forge "http://localhost:9292/"
mod "puppetlabs/apache"

Librarian outpout :

👻  ~/tmp $ librarian-puppet clean && librarian-puppet install --verbose
[Librarian] Ruby Version: 2.0.0
[Librarian] Ruby Platform: universal.x86_64-darwin14
[Librarian] Rubygems Version: 2.0.14
[Librarian] Librarian Version: 0.6.2
[Librarian] Librarian Adapter: puppet
[Librarian] Librarian Adapter Version: 2.1.0
[Librarian] Project: /Users/m/tmp
[Librarian] Specfile: Puppetfile
[Librarian] Lockfile: Puppetfile.lock
[Librarian] Git: /opt/local/bin/git
[Librarian] Git Version: 2.3.5
[Librarian] Git Environment Variables:
[Librarian]   (empty)
[Librarian] Pre-Cached Sources:
[Librarian] Post-Cached Sources:
[Librarian]   [:forge, "http://localhost:9292/", {}]
[Librarian] Resolving puppetlabs-apache (>= 0) <http://localhost:9292/>
[Librarian]   Checking manifests
[Librarian] Querying Forge API for module puppetlabs-apache: http://localhost:9292/api/v1/releases.json?module=puppetlabs/apache
/Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:84:in `rescue in api_call': Error requesting http://localhost:9292/api/v1/releases.json?module=puppetlabs/apache: 500 Internal Server Error  (OpenURI::HTTPError)
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:76:in `api_call'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:53:in `api_data'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo_v1.rb:22:in `get_versions'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo.rb:15:in `versions'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge/repo.rb:42:in `manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/source/forge.rb:152:in `manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/dependency.rb:155:in `cache_manifests!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/dependency.rb:151:in `manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:159:in `block in resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:172:in `block (2 levels) in scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:186:in `block in scope_checking_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:230:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:185:in `scope_checking_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:171:in `block in scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:230:in `scope'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:170:in `scope_resolving_dependency'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:158:in `resolving_dependency_map_find_manifests'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:65:in `do_resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver/implementation.rb:50:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/resolver.rb:23:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/action/resolve.rb:31:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/action/resolve.rb:8:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/cli.rb:104:in `resolve!'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/lib/librarian/puppet/cli.rb:68:in `install'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /Library/Ruby/Gems/2.0.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `block (2 levels) in bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:31:in `returning_status'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `block in bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:47:in `with_environment'
    from /Library/Ruby/Gems/2.0.0/gems/librarianp-0.6.2/lib/librarian/cli.rb:26:in `bin!'
    from /Library/Ruby/Gems/2.0.0/gems/librarian-puppet-2.1.0/bin/librarian-puppet:7:in `<top (required)>'
    from /usr/bin/librarian-puppet:23:in `load'
    from /usr/bin/librarian-puppet:23:in `<main>'

Puppet-forge-server output :

👻  ~/tmp $ puppet-forge-server  --port 9292   --proxy http://forge.puppetlabs.com/
[2015-04-24 14:47:04] INFO  Detecting API version for http://forge.puppetlabs.com...
[2015-04-24 14:47:07] INFO   +- Daemonizing: false
[2015-04-24 14:47:07] INFO   |- Port: 9292
[2015-04-24 14:47:07] INFO   |- Host: default
[2015-04-24 14:47:07] INFO   |- Pidfile: default
[2015-04-24 14:47:07] INFO   |- Server: default
[2015-04-24 14:47:07] INFO   `- Backends:
[2015-04-24 14:47:07] INFO      - #<PuppetForgeServer::Backends::ProxyV1:0x007fde29b8f380 @url="http://forge.puppetlabs.com", @cache_dir="/var/folders/pd/msryyljd39sbhcj89yl93fsc0000gn/T/puppet-forge-server/cache/75a31f1d6f1ef6eb63b4479b3512ee1508209a7f", @http_client=#<PuppetForgeServer::Http::HttpClient:0x007fde29b8f358>>
[2015-04-24 14:47:07] INFO  WEBrick 1.3.1
[2015-04-24 14:47:07] INFO  ruby 2.0.0 (2014-05-08) [universal.x86_64-darwin14]
[2015-04-24 14:47:07] INFO  WEBrick::HTTPServer#start: pid=6041 port=9292
TypeError - no implicit conversion of String into Integer:
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:25:in `[]'
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:25:in `block (2 levels) in get_releases'
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:24:in `map'
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:24:in `block in get_releases'
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:20:in `map'
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/api/v1/releases.rb:20:in `get_releases'
    /Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.4.3/lib/puppet_forge_server/app/version1.rb:49:in `block in <class:Version1>'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/commonlogger.rb:33:in `call'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:217:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/logger.rb:15:in `call'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:210:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
    /Library/Ruby/Gems/2.0.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:152:in `block in call'
    /Library/Ruby/Gems/2.0.0/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:96:in `block in recognize'
    /Library/Ruby/Gems/2.0.0/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:82:in `optimized_each'
    /Library/Ruby/Gems/2.0.0/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:95:in `recognize'
    /Library/Ruby/Gems/2.0.0/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:141:in `call'
    /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'localhost - - [24/Apr/2015:14:47:08 CEST] "GET /api/v1/releases.json?module=puppetlabs/apache HTTP/1.1" 500 151671

For informations :

Thanks for your time

i11 commented 9 years ago

Thanks your help! I was able to reproduce it and fix is on the way. Need to test it a bit more.

i11 commented 9 years ago

Ok. I've released 1.5.0 with fixes. Please let me know how does it work for you now.

mathieuboniface commented 9 years ago

It works nicely ! :+1:

Puppetfile :

forge "http://localhost:9292/"
mod "puppetlabs/apache"

Librarian output :

👻  ~/tmp $ librarian-puppet install --verbose
[Librarian] Ruby Version: 2.0.0
[Librarian] Ruby Platform: universal.x86_64-darwin14
[Librarian] Rubygems Version: 2.0.14
[Librarian] Librarian Version: 0.6.2
[Librarian] Librarian Adapter: puppet
[Librarian] Librarian Adapter Version: 2.1.0
[Librarian] Project: /Users/m/tmp
[Librarian] Specfile: Puppetfile
[Librarian] Lockfile: Puppetfile.lock
[Librarian] Git: /opt/local/bin/git
[Librarian] Git Version: 2.3.5
[Librarian] Git Environment Variables:
[Librarian]   (empty)
[Librarian] Pre-Cached Sources:
[Librarian] Post-Cached Sources:
[Librarian]   [:forge, "http://localhost:9292/", {}]
[Librarian] Resolving puppetlabs-apache (>= 0) <http://localhost:9292/>
[Librarian]   Checking manifests
[Librarian] Querying Forge API for module puppetlabs-apache: http://localhost:9292/api/v1/releases.json?module=puppetlabs/apache
[Librarian]   Module puppetlabs-apache found versions: 1.4.0, 1.3.0, 1.2.0, 1.1.1, 1.1.0, 1.0.1, 1.0.0, 0.11.0, 0.10.0, 0.9.0, 0.8.1, 0.8.0, 0.7.0, 0.6.0, 0.5.0-rc1, 0.4.0, 0.3.0, 0.2.2, 0.2.1, 0.2.0, 0.1.1, 0.0.4
[Librarian]     Checking puppetlabs-apache/1.4.0 <http://localhost:9292/>
[Librarian]       Resolved puppetlabs-apache (>= 0) <http://localhost:9292/> at puppetlabs-apache/1.4.0 <http://localhost:9292/>
[Librarian]   Resolved puppetlabs-apache (>= 0) <http://localhost:9292/>
[Librarian] Resolving puppetlabs-concat (< 2.0.0, >= 1.1.1) <(no source specified)>
[Librarian]   Checking manifests
[Librarian] Querying Forge API for module puppetlabs-concat: http://localhost:9292/api/v1/releases.json?module=puppetlabs/concat
[Librarian]   Module puppetlabs-concat found versions: 1.2.1, 1.2.0, 1.1.2, 1.1.1, 1.1.0, 1.1.0-rc1, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0, 1.0.0-rc1
[Librarian]     Checking puppetlabs-concat/1.2.1 <http://localhost:9292/>
[Librarian]       Resolved puppetlabs-concat (< 2.0.0, >= 1.1.1) <(no source specified)> at puppetlabs-concat/1.2.1 <http://localhost:9292/>
[Librarian]   Resolved puppetlabs-concat (< 2.0.0, >= 1.1.1) <(no source specified)>
[Librarian] Resolving puppetlabs-stdlib (< 5.0.0, >= 2.4.0) <(no source specified)>
[Librarian]   Checking manifests
[Librarian] Querying Forge API for module puppetlabs-stdlib: http://localhost:9292/api/v1/releases.json?module=puppetlabs/stdlib
[Librarian]   Module puppetlabs-stdlib found versions: 4.6.0, 4.5.1, 4.5.0, 4.4.0, 4.3.2, 4.3.0, 4.2.2, 4.2.1, 4.2.0, 4.1.0, 3.2.2, 3.2.1, 3.2.0, 3.1.1, 3.1.0, 3.0.1, 3.0.0, 2.6.0, 2.5.1, 2.5.0, 2.4.0, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.1, 2.2.0, 2.1.3, 2.0.0, 1.1.0, 1.0.0, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2, 0.1.1
[Librarian]     Checking puppetlabs-stdlib/4.6.0 <http://localhost:9292/>
[Librarian]       Resolved puppetlabs-stdlib (< 5.0.0, >= 2.4.0) <(no source specified)> at puppetlabs-stdlib/4.6.0 <http://localhost:9292/>
[Librarian]   Resolved puppetlabs-stdlib (< 5.0.0, >= 2.4.0) <(no source specified)>
[Librarian] Bouncing Puppetfile.lock
[Librarian] Install: dependencies resolved
[Librarian] Installing puppetlabs-stdlib/4.6.0 <http://localhost:9292/>
[Librarian] Executing puppet module install for puppetlabs-stdlib 4.6.0: puppet module install --version 4.6.0 --target-dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-stdlib/4.6.0 --module_repository http://localhost:9292/ --modulepath /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-stdlib/4.6.0 --module_working_dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-stdlib/4.6.0 --ignore-dependencies puppetlabs-stdlib
[Librarian] Installing puppetlabs-concat/1.2.1 <http://localhost:9292/>
[Librarian] Executing puppet module install for puppetlabs-concat 1.2.1: puppet module install --version 1.2.1 --target-dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-concat/1.2.1 --module_repository http://localhost:9292/ --modulepath /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-concat/1.2.1 --module_working_dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-concat/1.2.1 --ignore-dependencies puppetlabs-concat
[Librarian] Installing puppetlabs-apache/1.4.0 <http://localhost:9292/>
[Librarian] Executing puppet module install for puppetlabs-apache 1.4.0: puppet module install --version 1.4.0 --target-dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-apache/1.4.0 --module_repository http://localhost:9292/ --modulepath /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-apache/1.4.0 --module_working_dir /Users/m/tmp/.tmp/librarian/cache/source/puppet/forge/localhost_/puppetlabs-apache/1.4.0 --ignore-dependencies puppetlabs-apache

Puppet-forge-server output :

👻  ~ $ puppet-forge-server  --port 9292   --proxy http://forge.puppetlabs.com
[2015-04-25 19:23:24] INFO  Detecting API version for http://forge.puppetlabs.com...
[2015-04-25 19:23:26] INFO   +- Daemonizing: false
[2015-04-25 19:23:26] INFO   |- Port: 9292
[2015-04-25 19:23:26] INFO   |- Host: default
[2015-04-25 19:23:26] INFO   |- Pidfile: default
[2015-04-25 19:23:26] INFO   |- Server: default
[2015-04-25 19:23:26] INFO   `- Backends:
[2015-04-25 19:23:26] INFO      - #<PuppetForgeServer::Backends::ProxyV1:0x007f7f54c227e0 @url="http://forge.puppetlabs.com", @cache_dir="/var/folders/pd/msryyljd39sbhcj89yl93fsc0000gn/T/puppet-forge-server/cache/75a31f1d6f1ef6eb63b4479b3512ee1508209a7f", @http_client=#<PuppetForgeServer::Http::HttpClient:0x007f7f54c22740>, @log=#<PuppetForgeServer::Logger:0x007f7f54ac3070 @loggers=[#<Logger:0x007f7f54ac2fa8 @progname=nil, @level=1, @default_formatter=#<Logger::Formatter:0x007f7f54ac2f80 @datetime_format=nil>, @formatter=#<Proc:0x007f7f54ac2e40@/Library/Ruby/Gems/2.0.0/gems/puppet-forge-server-1.5.0/lib/puppet_forge_server/logger.rb:30>, @logdev=#<Logger::LogDevice:0x007f7f54ac2f30 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDERR>>, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x007f7f54ac2f08 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x007f7f54ac2eb8>>>>]>>
[2015-04-25 19:23:27] INFO  WEBrick 1.3.1
[2015-04-25 19:23:27] INFO  ruby 2.0.0 (2014-05-08) [universal.x86_64-darwin14]
[2015-04-25 19:23:27] INFO  WEBrick::HTTPServer#start: pid=9678 port=9292
127.0.0.1 - - [25/Apr/2015 19:23:37] "GET /api/v1/releases.json?module=puppetlabs/apache HTTP/1.1" 200 4125 2.6447
localhost - - [25/Apr/2015:19:23:34 CEST] "GET /api/v1/releases.json?module=puppetlabs/apache HTTP/1.1" 200 4125
- -> /api/v1/releases.json?module=puppetlabs/apache
127.0.0.1 - - [25/Apr/2015 19:23:39] "GET /api/v1/releases.json?module=puppetlabs/concat HTTP/1.1" 200 1715 1.8267
localhost - - [25/Apr/2015:19:23:37 CEST] "GET /api/v1/releases.json?module=puppetlabs/concat HTTP/1.1" 200 1715
- -> /api/v1/releases.json?module=puppetlabs/concat
127.0.0.1 - - [25/Apr/2015 19:23:40] "GET /api/v1/releases.json?module=puppetlabs/stdlib HTTP/1.1" 200 4621 1.6397
localhost - - [25/Apr/2015:19:23:39 CEST] "GET /api/v1/releases.json?module=puppetlabs/stdlib HTTP/1.1" 200 4621
- -> /api/v1/releases.json?module=puppetlabs/stdlib
127.0.0.1 - - [25/Apr/2015 19:24:16] "GET /v3/releases?module=puppetlabs-stdlib HTTP/1.1" 200 17351 33.5766
localhost - - [25/Apr/2015:19:23:42 CEST] "GET /v3/releases?module=puppetlabs-stdlib HTTP/1.1" 200 17351
- -> /v3/releases?module=puppetlabs-stdlib
127.0.0.1 - - [25/Apr/2015 19:24:16] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-stdlib-4.6.0.tar.gz HTTP/1.1" 200 119320 0.0015
localhost - - [25/Apr/2015:19:24:16 CEST] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-stdlib-4.6.0.tar.gz HTTP/1.1" 200 119320
- -> /v3/files/system/releases/p/puppetlabs/puppetlabs-stdlib-4.6.0.tar.gz
127.0.0.1 - - [25/Apr/2015 19:24:31] "GET /v3/releases?module=puppetlabs-concat HTTP/1.1" 200 6035 13.8133
localhost - - [25/Apr/2015:19:24:17 CEST] "GET /v3/releases?module=puppetlabs-concat HTTP/1.1" 200 6035
- -> /v3/releases?module=puppetlabs-concat
127.0.0.1 - - [25/Apr/2015 19:24:31] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-concat-1.2.1.tar.gz HTTP/1.1" 200 30981 0.0017
localhost - - [25/Apr/2015:19:24:31 CEST] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-concat-1.2.1.tar.gz HTTP/1.1" 200 30981
- -> /v3/files/system/releases/p/puppetlabs/puppetlabs-concat-1.2.1.tar.gz
127.0.0.1 - - [25/Apr/2015 19:24:57] "GET /v3/releases?module=puppetlabs-apache HTTP/1.1" 200 12944 24.4383
localhost - - [25/Apr/2015:19:24:32 CEST] "GET /v3/releases?module=puppetlabs-apache HTTP/1.1" 200 12944
- -> /v3/releases?module=puppetlabs-apache
127.0.0.1 - - [25/Apr/2015 19:24:57] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.4.0.tar.gz HTTP/1.1" 200 147426 0.0017
localhost - - [25/Apr/2015:19:24:57 CEST] "GET /v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.4.0.tar.gz HTTP/1.1" 200 147426
- -> /v3/files/system/releases/p/puppetlabs/puppetlabs-apache-1.4.0.tar.gz

Thanks a lot.