Project

General

Profile

Bug #23232

Updated by Chris Duryee over 6 years ago

If you register a brand-new client to a new capsule on a new katello using bootstrap.py without https://github.com/Katello/katello-client-bootstrap/issues/248, katello, you will get this error: 

 Validation failed: Name must not include periods 

 repro steps: 

 * vagrant up centos7-katello-3.6                                               
 * vagrant up centos7-foreman-proxy-3.6                                           
 * vagrant up centos7 for use as test client                            

 on katello server:                                                     

 hammer ping                                                            
 hammer -u admin -p changeme activation-key create --name MYAK --organization-id 1                                                             
 hammer -u admin -p changeme hostgroup create --name MYHG               

 on client:                                                        

 yum install subscription-manager (bootstrap will need it) 
 # ensure you are using a bootstrap.py without https://github.com/Katello/katello-client-bootstrap/issues/248 
 curl http://centos7-foreman-proxy-3-6.dhcp129-144.example.com/pub/bootstrap.py > ./bootstrap.py                                           
                                               
 python bootstrap.py -s centos7-foreman-proxy-3-6.dhcp129-144.example.com -g MYHG -a MYAK                        

 (this will error that the HG needs an OS and location, we'll fix that) 

 back on katello server:                                                

 hammer -u admin -p changeme os list                                    
 hammer -u admin -p changeme location list                              
 hammer -u admin -p changeme hostgroup list                             
 hammer -u admin -p changeme hostgroup update --operatingsystem-id 1 --location-ids 2 --id 1                                                   

 back on client again:                                                  

 python bootstrap.py -s centos7-foreman-proxy-3-6.dhcp129-144.example.com -g MYHG -a MYAK --location "Default Location" --force                


 error!                                                                 

 Validation failed: Name must not include periods                       


 production.log:                                                        

 [app] [I] Started POST "/rhsm/consumers?owner=Default_Organization&activation_keys=MYAK" for 192.168.121.96 at 2018-04-11 16:10:34 +0000  
 [app] [I] Processing by Katello::Api::Rhsm::CandlepinProxiesController#consumer_activate as JSON 
 [app] [I]     Parameters: {"facts"=>"[FILTERED]", "contentTags"=>[], "type"=>"system", "name"=>"client.dhcp129-144.example.com", "owner"=>"Default_Organization", "activation_keys"=>"MYAK"} 
 [app] [I] Current user: foreman_admin (administrator) 
 [app] [I] Current user: foreman_admin (administrator) 
 [katello/cp_proxy] [E] <Class> ActiveRecord::RecordInvalid 
 [katello/cp_proxy] [E] name: ["must not include periods"]  
 [app] [I] Completed 422 Unprocessable Entity in 808ms (Views: 0.1ms | ActiveRecord: 19.4ms) 


 It looks like the domain can't be found, which causes the shortname of the host to be its fqdn. Workaround:                              

 hammer -u admin -p changeme domain update --id 1 --location-ids 2 --organization-ids 1 

 Note that this bug has a workaround in bootstrap.py. Ideally a more descriptive error message would be raised if the domain is not accessible in the org/location.

Back