[Puppet Users] fully qualified array of variables

Eslam Mamdouh
Sun, 04 Mar 2012 10:30:08 -0000

Hi everyone,
i''m trying to apply the fully qualified variables aspect in my puppet
code
and one of variables i use is an array

in template file i wrote the following :

MONGO_DATABASE_NAME >
''<%=scope.lookupvar(''class_name::params::mongodb_dbname'')%>''
> <% if
has_variable?(scope.lookupvar(''class_name::params::replicas''))
then
> %>
> connect(MONGO_DATABASE_NAME,
>
host=''mongodb://<%=scope.lookupvar(''class_name::params::replicas'').join(",")%>'',
>
username=''<%=scope.lookupvar(''class_name::params::mongodb_username'')%>'',
>
password=''<%=scope.lookupvar(''class_name::params::mongodb_password'')%>'')
> <% else %>
> connect(MONGO_DATABASE_NAME,
>
host=''<%=scope.lookupvar(''class_name::params::dbhost'')%>'',
>
username=''<%=scope.lookupvar(''class_name::params::mongodb_username'')%>'',
>
password=''<%=scope.lookupvar(''class_name::params::mongodb_password'')%>'')
> <% end %>
>

that works fine for both username and password but in case of $replicas OR
even $dbhost it doesn''t work as expected

snippet from params.pp :

  $replicas = $mongodb_replicas
>

>
  $dbhost = $mongodb ? {
>     ''''      => "$::ec2_local_hostname",
>     default => "$mongodb"
>   }
>

and $mongodb_replicas is defined in nodes.pp for the time being

but after deployment the output line was :

connect(MONGO_DATABASE_NAME, host='''',
username=''correct_username'',
> password=''correct_password'')
>

any idea what''s wrong with these lines

Thanks in advance

--
Best Regards,
Eslam Mamdouh El Husseiny
*Systems Administrator**
Cloud Niners Ltd.

*
*Cellular: (+2) 011 198 40 40
Mansoura: (+2) 050 234 70 81
Cairo:    (+2) 022 *268 34 60
Fax:      (+2) 022 268 34 63