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 [email protected].
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