Project

General

Profile

Bug #1507

Updated by Ewoud Kohl van Wijngaarden about 6 years ago

Trying to integrate foreman with puppet, using webrick, i hit an issue very similar to this one: http://theforeman.org/issues/229 
 
 But even adding a default node in puppet's configuration i got the same problem, eg: 


 


 @root@leith:/etc/puppet# puppet agent --test --server leith.fre.local --noop   
   
 notice: Ignoring --listen on onetime run 
 
 err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find node 'leith.fre.local'; cannot compile 
 
 warning: Not using cache on failed catalog 
 
 err: Could not retrieve catalog; skipping run 
 
 @ 

 

 turns out, the node.rb generated from the installer foreman's puppet class (using ubuntu's packages but same stuff with RH repos, epel and foremans), has this setting: 

 

 @[...] 
 
 SETTINGS = { 
   
   :url         => "http://leith.fre.local:3000*/*", 
 
 [...] 
 
 @ 

 

 Which actually is right, but when the ECN script connects to foreman to ask for node's yaml, the actual HTTP get request is: 

 

 @GET http://leith.fre.local:3000//node/leith.fre.local?format=yml HTTP/1.1 
 
 Accept: */* 
 
 Host: leith.fre.local:3000 
 
 @ 

 

 which results in webrick replying with 404 - node not found. 

 

 Just taking out the last '/' in the ecn script: 

 

 @[...] 
 
 SETTINGS = { 
   
   :url         => "http://leith.fre.local:3000", 
 
 [...] 
 
 @ 

 

 solves the issue. 

 

 IMHO, this seems like a webrick issue, though not sure if double / are allowed by the HTTP specifications. Posted this to save time to other poor souls who may hit the same issue, so please add this on the documentation. 


 


 Thanks, 
 
 Frederik

Back