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.
