Issue #18053 has been updated by Gerard Hickey.

I get the same results. The following is the manifest I tested with.


    package {'log4r':
        ensure  => present,
        provider => gem,
        source => 'http://gemrepo.example.com/',
    }

Then attempting to apply the manifest, I get the following results:

    ghickey@slc4b01c-d756:tmp:1$ sudo puppet apply -v -d gemtest.pp 
    Debug: Executing '/bin/rpm --version'
    Debug: Executing '/bin/rpm -ql rpm'
    Debug: Executing '/bin/rpm -ql rpm'
    Debug: Executing '/bin/rpm --version'
    Debug: Puppet::Type::Package::ProviderAix: file /usr/bin/lslpp does not 
exist
    Debug: Puppet::Type::Package::ProviderNim: file /usr/sbin/nimclient does 
not exist
    Debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist
    Debug: Puppet::Type::Package::ProviderZypper: file /usr/bin/zypper does not 
exist
    Debug: Puppet::Type::Package::ProviderPortupgrade: file 
/usr/local/sbin/portupgrade does not exist
    Debug: Puppet::Type::Package::ProviderDpkg: file /usr/bin/dpkg does not 
exist
    Debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist
    Debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_info does not exist
    Debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox 
does not exist
    Debug: Puppet::Type::Package::ProviderSun: file /usr/bin/pkginfo does not 
exist
    Debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/emerge does 
not exist
    Debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist
    Debug: Puppet::Type::Package::ProviderAptrpm: file apt-get does not exist
    Debug: Puppet::Type::Package::ProviderApt: file /usr/bin/apt-get does not 
exist
    Debug: Puppet::Type::Package::ProviderAptitude: file /usr/bin/aptitude does 
not exist
    Debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_info does 
not exist
    Debug: Puppet::Type::Package::ProviderPorts: file 
/usr/local/sbin/portupgrade does not exist
    Debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not 
exist
    Debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swinstall does 
not exist
    Debug: Puppet::Type::Package::ProviderPacman: file /usr/bin/pacman does not 
exist
    Debug: Puppet::Type::Package::ProviderPkgin: file pkgin does not exist
    Debug: Puppet::Type::Package::ProviderPkg: file /usr/bin/pkg does not exist
    Debug: Creating default schedules
    Debug: Failed to load library 'selinux' for feature 'selinux'
    Debug: Using settings: adding file resource 'confdir': 
'File[/etc/puppet]{:path=>"/etc/puppet", :ensure=>:directory, 
:loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'vardir': 
'File[/var/lib/puppet]{:path=>"/var/lib/puppet", :ensure=>:directory, 
:loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Failed to load library 'shadow' for feature 'libshadow'
    Debug: Puppet::Type::User::ProviderPw: file pw does not exist
    Debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl 
does not exist
    Debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not 
exist
    Debug: Failed to load library 'ldap' for feature 'ldap'
    Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
    Debug: Using settings: adding file resource 'logdir': 
'File[/var/log/puppet]{:path=>"/var/log/puppet", :mode=>"750", 
:owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'statedir': 
'File[/var/lib/puppet/state]{:path=>"/var/lib/puppet/state", :mode=>"1755", 
:ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'rundir': 
'File[/var/run/puppet]{:path=>"/var/run/puppet", :mode=>"755", 
:ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'libdir': 
'File[/var/lib/puppet/lib]{:path=>"/var/lib/puppet/lib", :ensure=>:directory, 
:loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'certdir': 
'File[/var/lib/puppet/ssl/certs]{:path=>"/var/lib/puppet/ssl/certs", 
:owner=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'ssldir': 
'File[/var/lib/puppet/ssl]{:path=>"/var/lib/puppet/ssl", :mode=>"771", 
:owner=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'publickeydir': 
'File[/var/lib/puppet/ssl/public_keys]{:path=>"/var/lib/puppet/ssl/public_keys",
 :owner=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'requestdir': 
'File[/var/lib/puppet/ssl/certificate_requests]{:path=>"/var/lib/puppet/ssl/certificate_requests",
 :owner=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'privatekeydir': 
'File[/var/lib/puppet/ssl/private_keys]{:path=>"/var/lib/puppet/ssl/private_keys",
 :mode=>"750", :owner=>"puppet", :ensure=>:directory, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'privatedir': 
'File[/var/lib/puppet/ssl/private]{:path=>"/var/lib/puppet/ssl/private", 
:mode=>"750", :owner=>"puppet", :ensure=>:directory, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'hostcert': 
'File[/var/lib/puppet/ssl/certs/slc4b01c-d756.pem]{:path=>"/var/lib/puppet/ssl/certs/slc4b01c-d756.pem",
 :mode=>"644", :owner=>"puppet", :ensure=>:file, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'hostprivkey': 
'File[/var/lib/puppet/ssl/private_keys/slc4b01c-d756.pem]{:path=>"/var/lib/puppet/ssl/private_keys/slc4b01c-d756.pem",
 :mode=>"600", :owner=>"puppet", :ensure=>:file, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'hostpubkey': 
'File[/var/lib/puppet/ssl/public_keys/slc4b01c-d756.pem]{:path=>"/var/lib/puppet/ssl/public_keys/slc4b01c-d756.pem",
 :mode=>"644", :owner=>"puppet", :ensure=>:file, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'localcacert': 
'File[/var/lib/puppet/ssl/certs/ca.pem]{:path=>"/var/lib/puppet/ssl/certs/ca.pem",
 :mode=>"644", :owner=>"puppet", :ensure=>:file, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'hostcrl': 
'File[/var/lib/puppet/ssl/crl.pem]{:path=>"/var/lib/puppet/ssl/crl.pem", 
:mode=>"644", :owner=>"puppet", :ensure=>:file, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'statefile': 
'File[/var/lib/puppet/state/state.yaml]{:path=>"/var/lib/puppet/state/state.yaml",
 :mode=>"660", :ensure=>:file, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'clientyamldir': 
'File[/var/lib/puppet/client_yaml]{:path=>"/var/lib/puppet/client_yaml", 
:mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'client_datadir': 
'File[/var/lib/puppet/client_data]{:path=>"/var/lib/puppet/client_data", 
:mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'resourcefile': 
'File[/var/lib/puppet/state/resources.txt]{:path=>"/var/lib/puppet/state/resources.txt",
 :mode=>"640", :owner=>"root", :ensure=>:file, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Using settings: adding file resource 'clientbucketdir': 
'File[/var/lib/puppet/clientbucket]{:path=>"/var/lib/puppet/clientbucket", 
:mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'lastrunfile': 
'File[/var/lib/puppet/state/last_run_summary.yaml]{:path=>"/var/lib/puppet/state/last_run_summary.yaml",
 :mode=>"644", :ensure=>:file, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'lastrunreport': 
'File[/var/lib/puppet/state/last_run_report.yaml]{:path=>"/var/lib/puppet/state/last_run_report.yaml",
 :mode=>"640", :ensure=>:file, :loglevel=>:debug, :links=>:follow, 
:backup=>false}'
    Debug: Using settings: adding file resource 'graphdir': 
'File[/var/lib/puppet/state/graphs]{:path=>"/var/lib/puppet/state/graphs", 
:ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
    Debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring 
File[/var/lib/puppet/ssl]
    Debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring 
File[/var/lib/puppet/ssl]
    Debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring 
File[/var/lib/puppet/ssl]
    Debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring 
File[/var/lib/puppet/ssl]
    Debug: /File[/var/lib/puppet/ssl/private]: Autorequiring 
File[/var/lib/puppet/ssl]
    Debug: /File[/var/lib/puppet/ssl/certs/slc4b01c-d756.pem]: Autorequiring 
File[/var/lib/puppet/ssl/certs]
    Debug: /File[/var/lib/puppet/ssl/private_keys/slc4b01c-d756.pem]: 
Autorequiring File[/var/lib/puppet/ssl/private_keys]
    Debug: /File[/var/lib/puppet/ssl/public_keys/slc4b01c-d756.pem]: 
Autorequiring File[/var/lib/puppet/ssl/public_keys]
    Debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring 
File[/var/lib/puppet/ssl/certs]
    Debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring 
File[/var/lib/puppet/ssl]
    Debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring 
File[/var/lib/puppet/state]
    Debug: /File[/var/lib/puppet/client_yaml]: Autorequiring 
File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/client_data]: Autorequiring 
File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/state/resources.txt]: Autorequiring 
File[/var/lib/puppet/state]
    Debug: /File[/var/lib/puppet/clientbucket]: Autorequiring 
File[/var/lib/puppet]
    Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring 
File[/var/lib/puppet/state]
    Debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring 
File[/var/lib/puppet/state]
    Debug: /File[/var/lib/puppet/state/graphs]: Autorequiring 
File[/var/lib/puppet/state]
    Debug: Finishing transaction 19187920
    Debug: Loaded state in 0.01 seconds
    Debug: Loaded state in 0.01 seconds
    Info: Applying configuration version '1356311844'
    Debug: /Schedule[daily]: Skipping device resources because running on a host
    Debug: /Schedule[monthly]: Skipping device resources because running on a 
host
    Debug: /Schedule[hourly]: Skipping device resources because running on a 
host
    Debug: /Schedule[never]: Skipping device resources because running on a host
    Debug: /Schedule[weekly]: Skipping device resources because running on a 
host
    Debug: Prefetching gem resources for package
    Debug: Executing '/usr/bin/gem list --local'
    Debug: Executing '/usr/bin/gem list --local log4r$'
    Debug: Executing '/usr/bin/gem install --include-dependencies --source 
http://gemrepo.example.com/ log4r'
    Error: Execution of '/usr/bin/gem install --include-dependencies --source 
http://gemrepo.example.com/ log4r' returned 1: ERROR:  Could not find a valid 
gem 'log4r' (>= 0) in any repository
    ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ETIMEDOUT: Connection timed out - connect(2) 
(http://rubygems.org/latest_specs.4.8.gz)
    INFO:  `gem install -y` is now default and will be removed
    INFO:  use --ignore-dependencies to install only the gems you list
    Error: /Stage[main]//Package[log4r]/ensure: change from absent to present 
failed: Execution of '/usr/bin/gem install --include-dependencies --source 
http://gemrepo.example.com/ log4r' returned 1: ERROR:  Could not find a valid 
gem 'log4r' (>= 0) in any repository
    ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ETIMEDOUT: Connection timed out - connect(2) 
(http://rubygems.org/latest_specs.4.8.gz)
    INFO:  `gem install -y` is now default and will be removed
    INFO:  use --ignore-dependencies to install only the gems you list
    Debug: /Schedule[puppet]: Skipping device resources because running on a 
host
    Debug: Finishing transaction 30486060
    Debug: Storing state
    Debug: Stored state in 0.02 seconds
    Finished catalog run in 84.52 seconds
    Debug: Using settings: adding file resource 'rrddir': 
'File[/var/lib/puppet/rrd]{:path=>"/var/lib/puppet/rrd", :mode=>"750", 
:owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, 
:links=>:follow, :backup=>false}'
    Debug: Finishing transaction 25510820
    Debug: Received report to process from slc4b01c-d756
    Debug: Processing report from slc4b01c-d756 with processor 
Puppet::Reports::Store

Yet again, if I execute the same command that puppet agent is executing, It 
completes successfully.

    ghickey@slc4b01c-d756:tmp:0$ sudo /usr/bin/gem install 
--include-dependencies --source http://gemrepo.example.com/ log4r
    [sudo] password for ghickey: 
    INFO:  `gem install -y` is now default and will be removed
    INFO:  use --ignore-dependencies to install only the gems you list
    Fetching: log4r-1.1.10.gem (100%)
    Successfully installed log4r-1.1.10
    1 gem installed
    Installing ri documentation for log4r-1.1.10...
    Installing RDoc documentation for log4r-1.1.10...
----------------------------------------
Bug #18053: source attribute not honored for gem provider
https://projects.puppetlabs.com/issues/18053#change-79382

Author: Gerard Hickey
Status: Needs More Information
Priority: Normal
Assignee: Gerard Hickey
Category: package
Target version: 
Affected Puppet version: 3.0.1
Keywords: 
Branch: 


When attempting to provide another source for a package resource using the gem 
provider, the install fails. 

Error output from 'puppet agent -tv':

<pre>
Error: Execution of '/usr/bin/gem install --include-dependencies --source 
http://<internal.gemrepo.com>/ passenger' returned 1: ERROR:  Could not find a 
valid gem 'passenger' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ETIMEDOUT: Connection timed out - connect(2) 
(http://rubygems.org/latest_specs.4.8.gz)
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list

Error: /Stage[main]/Puppet::Master/Package[passenger]/ensure: change from 
absent to present failed: Execution of '/usr/bin/gem install 
--include-dependencies --source http://<internal.gemrepo.com>/ passenger' 
returned 1: ERROR:  Could not find a valid gem 'passenger' (>= 0) in any 
repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ETIMEDOUT: Connection timed out - connect(2) 
(http://rubygems.org/latest_specs.4.8.gz)
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list

Finished catalog run in 106.88 seconds
ghickey@slc4b01c-69c8:rack:6$ gem source
*** CURRENT SOURCES ***

http://rubygems.org/
ghickey@slc4b01c-69c8:rack:0$ sudo gem install --include-dependencies --source 
http://<internal.gemrepo.com>/ passenger
[sudo] password for ghickey:
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
Fetching: fastthread-1.0.7.gem (100%)
Building native extensions.  This could take a while...
Fetching: daemon_controller-1.1.0.gem (100%)
Fetching: passenger-3.0.18.gem (100%)
Successfully installed fastthread-1.0.7
Successfully installed daemon_controller-1.1.0
Successfully installed passenger-3.0.18
3 gems installed
Installing ri documentation for fastthread-1.0.7...
Installing ri documentation for daemon_controller-1.1.0...
Installing ri documentation for passenger-3.0.18...
Installing RDoc documentation for fastthread-1.0.7...
Installing RDoc documentation for daemon_controller-1.1.0...
Installing RDoc documentation for passenger-3.0.18...
</pre>

The system that produced the output is behind a firewall and can not directly 
connect to rubygems.org. There is an internal gem repo inside the firewall that 
contains mirrored gems for the purpose of distributing within the firewall. As 
you can see if the same command is executed from the command line, it succeeds. 


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to