[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Support for XML config files?
From: |
Mark . Burgess |
Subject: |
Re: Support for XML config files? |
Date: |
Fri, 16 Mar 2001 09:03:21 +0100 (MET) |
On 15 Mar, Christopher Browne wrote:
> On Thu, 15 Mar 2001 14:32:54 PST, the world broke into rejoicing as
> Hal Wine <HWine@eScene.com> said:
>> However, more and more of the config files I need to manage are switching
>> from "line format" to XML format. I don't see any reference to XML in the
>> docs -- has anybody had success with this?
>
> Hmmm... If there are truly complex things going on, you may need to
> write a parser in Python/Perl/Scheme, and have cfengine invoke that
> parser.
>
>> Also, some of our line based files are really "multi-line" (think
>> printcap). I'm sure that there is some magic incantations with
>> CFEngine that can handle that, but are there any examples
>> documented?
>
> Take a close look at the "editfiles" section in the reference guide.
>
> I'm afraid it doesn't document any terribly sophisticated examples, so
> the straight answer to your question is "no."
>
> But there certainly are the "magic incantations" to handle it.
>
> This is where things kind of fall down. In effect, cfengine has to
> add a "text editor" sublanguage for people to learn.
>
> Thinking out loud, the "I've got to punt, and do Scary Things to a
> file" thing suggests that it might be a slick idea to provide a
> cfengine section rather like:
>
> rewritefiles:
> file=/etc/printcap \
> script=/etc/cfengine/FixPrintcap
> arglist=( Postscript $hostname $printserver )
>
> Which would then do the following:
> -> invoke the filter /etc/cfengine/FixPrintcap
> -> Pass to it the expanded arguments
> -> attach stdin to /etc/printcap
> -> attach stdout to /etc/printcap.cfnew
> -> Once done, look at the return codes
> -> Nonzero indicates that /etc/printcap.cfnew is renamed to
> /etc/printcap.proposed, and /etc/printcap is left alone
> -> Zero return code results in /etc/printcap being renamed to
> /etc/printcap.cfsaved, and /etc/printcap.cfnew renamed to
> /etc/printcap
>
> The point here is to provide a way of hooking up arbitrary filters in
> a fashion that still allows ensuring that hideous failures lead to not
> _too_ much breakage of configuration, and that backups of
> configuration are done. It is also arguable that a "diff -u" should
> be run on the config files, and logged in an analagous fashion to the
> way "editfiles:" works.
> --
> (concatenate 'string "cbbrowne" "@ntlug.org")
> http://www.ntlug.org/~cbbrowne/spreadsheets.html
> Rules of the Evil Overlord #22. "No matter how tempted I am with the
> prospect of unlimited power, I will not consume any energy field
> bigger than my head. <http://www.eviloverlord.com/>
All of this is currently possible with the tools provided. Cfengine's
editing language is provided to offer a "safe" and "convergent" way
of editing files. There is no current facilty for XML.
Check out dox at http://www.iu.hio.no/cfengine
Mark
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Work: +47 22453272 Email: Mark.Burgess@iu.hio.no
Fax : +47 22453205 WWW : http://www.iu.hio.no/~mark
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~