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"

M

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
-------------------------------------------------
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to