The example files are all in the tests/units of the source tarball Mark
Jesse Becker wrote: > On Thu, Feb 18, 2010 at 01:14:16AM -0500, Mark Burgess wrote: >> >> Jesse, >> >> you should use the fully qualified name $(tmpl.varA) for the variables >> in the file, as >> they get processed in a different bundle and are therefore not "local" > > This works, thanks: > > [r...@host tmp]# cat /tmp/template > The first variable: ${test.varA} > And the second: ${test.varB} > > [r...@host tmp]# cat /tmp/expanded > The first variable: This is value Alpha > And the second: This is value Bravo > > The documentation posted online does not make this clear (and would have > saved me several hours of time yesterday), and the limited examples I > found online for using this method do not include mention of the full > qualification for the variables either: > > > http://www.cfengine.org/manuals/cf3-reference.html#expand_005fscalars-in-insert_005flines > > > http://project.iu.hio.no/viewvc/trunk/tests/units/unit_template.cf?view=markup&root=Cfengine-3 > > https://cfengine.org/pipermail/help-cfengine/2009-November/006706.html > > Generally speaking, having more complete examples, including any > "supporting files" like sample template filess, would be a big help to > everyone. Perhaps these would be suitable for posting on the cfwiki? > >> Jesse Becker wrote: >>> I'm trying to get a basic templating system working for several files, >>> and expand_scalars doesn't seem to work. I've found serveral references >>> to other people having success with this, so I assume I've done >>> something wrong. I'm running the cfengine 3.0.3 community RPM build. >>> >>> Here's the basic code: >>> >>> bundle agent tmpl { >>> >>> vars: >>> hostname:: >>> "varA" string => "This is value Alpha"; >>> "varB" string => "This is value Bravo"; >>> >>> files: >>> hostname:: >>> "/tmp/template" >>> copy_from => >>> update_copy("${g.repo}/template",${g.policy_server}); >>> >>> "/tmp/expanded" >>> create => 'true', >>> edit_defaults => empty, >>> edit_line => expand_template("/tmp/template"); >>> } >>> >>> Both 'empty' and 'expand_template come from cfengine_stdlib.cf file >>> posted a few days ago. >>> >>> The content of the 'template' file is simply two lines: >>> >>> The first variable: ${varA} >>> And the second: ${varB} >>> >>> >>> >>> I expect, after the expansion is done to have a file that looks like >>> this: >>> >>> The first variable: This is value Alpha >>> And the second: This is value Bravo >>> >>> >>> But alas, the two files are identical after running cf-agent. >>> >>> Below is the relevant output from --verbose. The template file copies >>> over without problems, and the 'expanded' file is created, but no >>> interpolation appears to be done. >>> >>> TIA, >>> >>> >>> cf3 Promise made by: /tmp/template >>> cf3 ......................................................... >>> cf3 >>> cf3 -> Copy file /tmp/template from >>> /usr/local/cfengine3/data/Packages/template check >>> ... <snip> >>> cf3 -> /tmp/template wasn't at destination (copying) >>> ... <snip> >>> cf3 -> New file /tmp/template.cfnew transmitted correctly - verified >>> ... <snip> >>> >>> cf3 ......................................................... >>> cf3 Promise handle: >>> cf3 Promise made by: /tmp/expanded >>> cf3 ......................................................... >>> cf3 >>> cf3 -> Using literal pathtype for /tmp/expanded >>> cf3 -> No mode was set, choose plain file default 600 >>> cf3 -> Created file /tmp/expanded, mode = 600 >>> cf3 Build file model from a blank slate (emptying) >>> cf3 -> Handling file edits in edit_line bundle expand_template >>> cf3 >>> cf3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >>> * * * >>> cf3 BUNDLE expand_template( {'/tmp/template'} ) >>> cf3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >>> * * * >>> cf3 >>> cf3 ? Augment scope expand_template with templatefile >>> cf3 ?? Private class context >>> cf3 >>> cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = >>> cf3 insert_lines in bundle expand_template >>> cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = >>> cf3 >>> cf3 ......................................................... >>> cf3 Promise handle: >>> cf3 Promise made by: /tmp/template >>> cf3 ......................................................... >>> cf3 >>> cf3 -> Inserting the promised line "The first variable: ${varA}" >>> into /tmp/expanded after locator >>> cf3 -> Inserting the promised line "And the second: ${varB}" into >>> /tmp/expanded after locator >>> cf3 ?? Private class context >>> cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = >>> cf3 insert_lines in bundle expand_template >>> cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = >>> cf3 >>> cf3 >>> cf3 ......................................................... >>> cf3 Promise handle: >>> cf3 Promise made by: /tmp/template >>> cf3 ......................................................... >>> cf3 >>> cf3 -> This promise has already been verified >>> cf3 ?? Private class context >>> cf3 >>> cf3 >>> cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = >>> cf3 insert_lines in bundle expand_template >>> cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = >>> cf3 >>> cf3 >>> cf3 ......................................................... >>> cf3 Promise handle: >>> cf3 Promise made by: /tmp/template >>> cf3 ......................................................... >>> cf3 >>> cf3 -> This promise has already been verified >>> cf3 -> Saving edit changes to file /tmp/expanded >>> cf3 Edited file /tmp/expanded >>> >>> >>> >> >> -- >> Mark Burgess >> >> ------------------------------------------------- >> Professor of Network and System Administration >> Oslo University College, Norway >> >> Personal Web: http://www.iu.hio.no/~mark >> Office Telf : +47 22453272 >> ------------------------------------------------- > -- Mark Burgess ------------------------------------------------- Professor of Network and System Administration Oslo University College, Norway Personal Web: http://www.iu.hio.no/~mark Office Telf : +47 22453272 ------------------------------------------------- _______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine