Project

General

Profile

Bug #10592

Snippets do not appear to work in "PXELinux global default" template

Added by CJ Oster over 5 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Templates
Target version:
Difficulty:
Triaged:
Bugzilla link:
Fixed in Releases:
Found in Releases:

Description

I have working snippets in other PXELinux templates that work properly. If I include the snippet in PXELinux global default and click "Build PXE Default", the on-disk file does not change, and no error message is displayed.

I'm more than a little new to foreman, and I appear to fail at finding the appropriate logfile that shows a difference. If somebody can point me to the appropriate logfile, I'll be happy to include it.

  • DETAILS ***

CentOS 6.6

[root@puppetmaster foreman-proxy]# rpm -q foreman ruby postgresql
foreman-1.8.0-1.el6.noarch
ruby-1.8.7.374-4.el6_6.x86_64
postgresql-8.4.20-2.el6_6.x86_64
[root@puppetmaster foreman-proxy]# uname -r
2.6.32-504.16.2.el6.x86_64

I have the following snippet configured:

<%#
kind: snippet
name: PXELinux memtest
-%>
MENU SEPARATOR

LABEL memtest501
     MENU LABEL Memtest86+ v5.01
     KERNEL memtest/memtest86+-5.01

This snippet works in "PXELinux default local boot", however it does not work in "PXELinux global default". I did determine that it was not simply any code causing "PXELinux global default" to fail (after all the existing code for @profiles does't cause it to fail, but just to see if I could get it to throw any sort of error) by changing the template to the following:

BEFORE CODE
<% if 1 == 1 -%>
EQUAL
<% else -%>
NOT EQUAL
<% end -%>
AFTER CODE

After clicking "Build PXE Default", I had the expected data, "BEFORE CODE", "EQUAL", and "AFTER CODE" in /var/lib/tftpboot/pxelinux.cfg/default

However, if I copy "<%= snippet 'PXELinux memtest' %>" straight out of "PXELinux default local boot" (where it renders properly) and paste it into "PXELinux global default", even as the only content, clicking "Build PXE Default" does not change the existing pxelinux.cfg/default, and no error is presented in the web interface.

Here is what shows up in the log with the snippet:

Started GET "/config_templates/build_pxe_default" for XXX.XXX.XXX.XXX at 2015-05-22 10:39:43 -0500
2015-05-22 10:39:43 [I] Processing by ConfigTemplatesController#build_pxe_default as HTML
2015-05-22 10:39:43 [I] Redirected to https://puppetmaster.example.com/config_templates
2015-05-22 10:39:43 [I] Completed 302 Found in 29ms (ActiveRecord: 3.1ms)
2015-05-22 10:39:43 [I] 

Started GET "/config_templates" for XXX.XXX.XXX.XXX at 2015-05-22 10:39:43 -0500
2015-05-22 10:39:43 [I] Processing by ConfigTemplatesController#index as HTML
2015-05-22 10:39:43 [I]   Rendered config_templates/index.html.erb within layouts/application (65.7ms)
2015-05-22 10:39:43 [I]   Rendered common/_searchbar.html.erb (3.8ms)
2015-05-22 10:39:43 [I]   Rendered home/_user_dropdown.html.erb (1.7ms)
2015-05-22 10:39:43 [I] Read fragment views/tabs_and_title_records-4 (209.3ms)
2015-05-22 10:39:43 [I]   Rendered home/_topbar.html.erb (213.0ms)
2015-05-22 10:39:43 [I]   Rendered layouts/base.html.erb (214.7ms)
2015-05-22 10:39:43 [I] Completed 200 OK in 296ms (Views: 284.7ms | ActiveRecord: 3.3ms)

Here is what shows up in the log without the snippet:

Started GET "/config_templates/build_pxe_default" for XXX.XXX.XXX.XXX at 2015-05-22 10:38:49 -0500
2015-05-22 10:38:49 [I] Processing by ConfigTemplatesController#build_pxe_default as HTML
2015-05-22 10:38:49 [I] Redirected to https://puppetmaster.example.com/config_templates
2015-05-22 10:38:49 [I] Completed 302 Found in 321ms (ActiveRecord: 4.4ms)
2015-05-22 10:38:49 [I] 

Started GET "/config_templates" for XXX.XXX.XXX.XXX at 2015-05-22 10:38:49 -0500
2015-05-22 10:38:49 [I] Processing by ConfigTemplatesController#index as HTML
2015-05-22 10:38:49 [I]   Rendered config_templates/index.html.erb within layouts/application (70.6ms)
2015-05-22 10:38:49 [I]   Rendered common/_searchbar.html.erb (4.1ms)
2015-05-22 10:38:49 [I]   Rendered home/_user_dropdown.html.erb (1.6ms)
2015-05-22 10:38:49 [I] Read fragment views/tabs_and_title_records-4 (0.1ms)
2015-05-22 10:38:49 [I]   Rendered home/_topbar.html.erb (2.6ms)
2015-05-22 10:38:49 [I]   Rendered layouts/base.html.erb (4.3ms)
2015-05-22 10:38:49 [I] Completed 200 OK in 92ms (Views: 79.4ms | ActiveRecord: 3.6ms)

Tell me what to post and I'll happily do it. I've watched the database queries and can't see any meaningful difference, so either I'm just not looking in the right place, or it's not logging anything.

I can say that in /var/log/foreman-proxy/proxy.log (same host), the following entry appears:

<IP of foreman/pm> - - [22/May/2015 10:57:18] "POST /create_default HTTP/1.1" 200 - 0.0018

And it does not when there's a snippet in the global default template.

I have also disabled selinux and done the same without different results.


Related issues

Related to Foreman - Bug #14232: Missing variable to include Sat 6 Hostname in PXE MenusClosed2016-03-16

Associated revisions

Revision 9f777254 (diff)
Added by Imri Zvik almost 5 years ago

Fixes #10592 - Add tests to validate the allowed_helpers passed into the renderer in ProvisioningTemplate.build_pxe_default contains the generic list

History

#1 Updated by Dominic Cleal over 5 years ago

  • Description updated (diff)
  • Category set to Templates

#2 Updated by CJ Oster over 5 years ago

Oops. I got side tracked and didn't finish scrubbing the logs. Would someone with sufficient access please do so?

#3 Updated by Dominic Cleal over 5 years ago

  • Description updated (diff)

#4 Updated by Imri Zvik almost 5 years ago

  • Assignee set to Imri Zvik

#5 Updated by Imri Zvik almost 5 years ago

I cannot reproduce it on develop.
CJ Oster, can you please check if you can still reproduce this issue with the latest Foreman version?

#6 Updated by Dominic Cleal almost 5 years ago

  • Related to Bug #14232: Missing variable to include Sat 6 Hostname in PXE Menus added

#7 Updated by Dominic Cleal almost 5 years ago

  • Status changed from New to Resolved
  • Assignee deleted (Imri Zvik)

I think this may be fixed by #14232, which allows all of the existing helpers such as snippets to work in the global default template. This will be available in Foreman 1.12 (current develop).

#8 Updated by The Foreman Bot almost 5 years ago

  • Assignee set to Imri Zvik
  • Pull request https://github.com/theforeman/foreman/pull/3386 added

#9 Updated by Dominic Cleal almost 5 years ago

  • Status changed from Resolved to Ready For Testing

#10 Updated by Imri Zvik almost 5 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

#11 Updated by Dominic Cleal almost 5 years ago

  • Legacy Backlogs Release (now unused) set to 136

Also available in: Atom PDF