I'm trying to use the augeas resource type to manage a multiline attribute 
in an xml file. It looks like this:

<resolver:AttributeResolver
        xmlns:resolver="urn:mace:shibboleth:2.0:resolver" 
        xmlns:pc="urn:mace:shibboleth:2.0:resolver:pc"
        xmlns:ad="urn:mace:shibboleth:2.0:resolver:ad" 
        xmlns:dc="urn:mace:shibboleth:2.0:resolver:dc"
        xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder" 
        xmlns:sec="urn:mace:shibboleth:2.0:security"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
        xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd
                            urn:mace:shibboleth:2.0:resolver:pc 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd
                            urn:mace:shibboleth:2.0:resolver:ad 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-ad.xsd
                            urn:mace:shibboleth:2.0:resolver:dc 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-dc.xsd
                            urn:mace:shibboleth:2.0:attribute:encoder 
http://shibboleth.net/schema/idp/shibboleth-attribute-encoder.xsd
                            urn:mace:shibboleth:2.0:security 
http://shibboleth.net/schema/idp/shibboleth-security.xsd";>

 As you can see, the xsi:schemaLocation is a multine value attribute. Using 
augtool, I can manually update this attribute using the Xml.lns lens and 
running:

set 
/files/attribute-resolver.xml/resolver:AttributeResolver/#attribute/xsi:schemaLocation
 
'urn:mace:shibboleth:2.0:resolver 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd\n        
urn:mace:shibboleth:2.0:resolver:pc 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd'

But using the augeas resource type I can't seem to get it right. Any of my 
'\n' are escaped so what ends up in the xml file is '\\n' which is 
incorrect. My manifest looks like this:
$changes = 'set resolver:AttributeResolver/#attribute/xsi:schemaLocation 
"urn:mace:shibboleth:2.0:resolver 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd\n      
  urn:mace:shibboleth:2.0:resolver:pc 
http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd";


augeas { "attributeresolver_attributes_${name}":

    lens    => 'Xml.lns',

    incl    => $configfile,

    changes => $changes,

  }
I've tried changing the double quotes around to single quotes but still 
can't get it to write the '\n' correctly.

Any ideas?

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/50850dc4-5efd-4c87-9d11-65b02f08438c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to