Hi Raphael,

can the Augeas provider “translate” from xml into Puppet DSL and vice versa?
That would be nice.

Best,
Martin


On 26 Feb 2015, at 00:45, Raphaël Pinson <[email protected]> wrote:

> Hi Martin,
> 
> 
> Have you considered using an Augeas provider here, using the Xml lens?
> 
> 
> Cheers,
> 
> Raphaël
> 
> 
> 
> On Wednesday, February 25, 2015 at 6:18:02 PM UTC+1, Martin Alfke wrote:
> Hi, 
> 
> I am stuck at a puppet provider where I need to read data from xml. 
> 
> Data which needs to get parsed: 
> 
>     <AR> 
>       <AR_ID><![CDATA[8]]></AR_ID> 
>       <IP><![CDATA[172.16.100.208]]></IP> 
>       <MAC><![CDATA[02:00:ac:10:64:d0]]></MAC> 
>       <SIZE><![CDATA[1]]></SIZE> 
>       <TYPE><![CDATA[IP4]]></TYPE> 
>       <USED_LEASES>0</USED_LEASES> 
>       <LEASES/> 
>     </AR> 
>     <AR> 
>       <AR_ID><![CDATA[9]]></AR_ID> 
>       <IP><![CDATA[172.16.100.209]]></IP> 
>       <MAC><![CDATA[02:00:ac:10:64:d1]]></MAC> 
>       <SIZE><![CDATA[1]]></SIZE> 
>       <TYPE><![CDATA[IP4]]></TYPE> 
>       <USED_LEASES>0</USED_LEASES> 
>       <LEASES/> 
>     </AR> 
> 
> 
> Expected result: 
> 
> :addressrange => 
>   { ‘1' => 
>     { ‘ip' => ‘172.16.100.208’, ‘mac' => ’02:00:ac:10:64:d0’ }, 
>      ‘2' => 
>     { ‘ip' =>  ‘172.16.100.209’, ‘mac' => ’02:00:ac:10:64:d1’ } 
>   } 
> 
> 
> Actual code (Note: I was never good at coding an will never be): 
> 
> vnets.collect do |vnet| 
>   new( 
>     :addressrange => Hash[vnet.xpath('./AR_POOL/AR/AR_ID').collect { |ar| 
> [ar.text, ar.xpath('..').collect { |singlear| singlear.xpath('./*').collect { 
> |arvalue| {arvalue.name, arvalue.text} } } ] } ] 
>   ) 
> end 
> 
> 
> But this code return: 
> :addressrange=> 
>      {"9"=> 
>        [[{"AR_ID"=>"9"}, 
>          {"IP"=>"172.16.100.209"}, 
>          {"MAC"=>"02:00:ac:10:64:d1"}, 
>          {"SIZE"=>"1"}, 
>          {"TYPE"=>"IP4"}]], 
>       "8"=> 
>        [[{"AR_ID"=>"8"}, 
>          {"IP"=>"172.16.100.208"}, 
>          {"MAC"=>"02:00:ac:10:64:d0"}, 
>          {"SIZE"=>"1"}, 
>          {"TYPE"=>"IP4"}]], 
> 
> What would be proper code to build the hash as expected? 
> 
> Thanks, 
> 
> Martin 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/puppet-dev/81914d3c-aeab-4991-80ca-4a4544e2f3cb%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/40AF60B2-C149-487F-AC52-1567D2BFADDA%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to