[Puppet Users] Re: fully qualified array of variables

Eslam Mamdouh
Sun, 04 Mar 2012 10:47:16 -0000

$replicas works now by replacing

<% if
has_variable?(scope.lookupvar(''class_name::params::replicas''))
then %>

with

> <% if has_variable?("class_name::params::replicas") then %>


but the problem now with $dbhost variable "else condition"
i got that error after defining $mongodb variable instead of
mongodb_replicas in nodes.pp

> undefined method `join'' for :undef:Symbol


any ideas ?

On Sun, Mar 4, 2012 at 12:30 PM, Eslam Mamdouh
<emamdouh@cloud9ers.com>wrote:

> 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
>
>
>
>


--
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