help with array in a template.

58 views
Skip to first unread message

digrouz

unread,
Apr 24, 2012, 4:18:56 AM4/24/12
to Puppet Users
Hello guys,

I would like to get some help with puppet about using an array in a
template.

I've a custom facts that return me this:

tsm_vmp / /home /tmp /var/tmp /usr /var

I have a class that use this facts to split it on every space and to a
an entry in a template for each value, here is the code I use for
this:

$virtualmountpoints = split($tsm_vmp, ' ')
...
"/opt/tivoli/tsm/client/ba/bin/dsm.sys":
owner => root,
group => root,
mode => 0600,
content => template("tsm/dsm.sys.erb"),

That's what's I have in my template

<% virtualmountpoints.each do |fs| -%>
virtualmountpoint <%= fs %>
<% end -%>



Thats what I get:
virtualmountpoint /
/home
/tmp
/var/tmp
/usr
/var

but I would like to get instead:
virtualmountpoint /
virtualmountpoint /home
virtualmountpoint /tmp
virtualmountpoint /var/tmp
virtualmountpoint /usr
virtualmountpoint /var


Do you know how to do this?

Luke Bigum

unread,
Apr 24, 2012, 4:55:24 AM4/24/12
to puppet...@googlegroups.com
Very close:

<% virtualmountpoints.each do |fs| -%>
[<%= fs %>]
virtualmountpoint<%= fs %>
<% end -%>

I don't understand the Ruby in that, I copied it from someone else ;-)
--
Luke Bigum

Information Systems
Ph: +44 (0) 20 3192 2520
luke....@lmax.com | http://www.lmax.com
LMAX, Yellow Building, 1A Nicholas Road, London W11 4AN


FX and CFDs are leveraged products that can result in losses exceeding
your deposit. They are not suitable for everyone so please ensure you
fully understand the risks involved. The information in this email is not
directed at residents of the United States of America or any other
jurisdiction where trading in CFDs and/or FX is restricted or prohibited
by local laws or regulations.

The information in this email and any attachment is confidential and is
intended only for the named recipient(s). The email may not be disclosed
or used by any person other than the addressee, nor may it be copied in
any way. If you are not the intended recipient please notify the sender
immediately and delete any copies of this message. Any unauthorised
copying, disclosure or distribution of the material in this e-mail is
strictly forbidden.

LMAX operates a multilateral trading facility. Authorised and regulated
by the Financial Services Authority (firm registration number 509778) and
is registered in England and Wales (number 06505809).
Our registered address is Yellow Building, 1A Nicholas Road, London, W11
4AN.
Message has been deleted

digrouz

unread,
Apr 24, 2012, 5:57:21 AM4/24/12
to Puppet Users
I just found my problem,

It is in the split in fact I don't have space between the value but
carried returns, so if I split to "\n", it works.

Regards
> luke.bi...@lmax.com |http://www.lmax.com

Krzysztof Wilczynski

unread,
Apr 24, 2012, 7:32:35 AM4/24/12
to puppet...@googlegroups.com
Hi,

[...]

It is in the split in fact I don't have space between the value but
carried returns, so if I split to "\n", it works.

This is slightly worrisome.  I encourage you to go with separating values with a comma, not only because it follows style of how other facts return values, but also ensures that things will not break by accident (something may happen now and/or in the future).  As far as having single space there to separate results is also acceptable, then having "\n" there might not be what you want.  I do encourage you to strip surplus new lines and join values on single comma :)

My 2p, I hope you don't mind :)

KW
Reply all
Reply to author
Forward
0 new messages