Fri, Jul 12, 2019 at 08:30:28PM +0100, Paul Thornton: > Hi > > We had a patch to 2.3's xrancid which we were running at some stage in > the past N years that did this already - but can't I find it, and we > aren't running it on our current rancid system either. Thanks to Chris' > E-mail at least I've been reminded of that. > > It wasn't a hard thing to add. > > On 12/07/2019 20:15, john heasley wrote: > > Tue, Jul 09, 2019 at 09:55:56PM +0000, Chris Davis: > >> We've just gotten a few Extreme switches (model X440-G2) and I've gotten > >> them set up in Rancid. But while I get the configs, I have a few policies > >> as well. They're kept as .pol files on the switch. Is there a way to > >> include the policy files in the backup that Rancid takes? It would be > >> particularly helpful. I've done some searching, and seen folks ask about > >> it. But no real answers. Lots of modifications to commands from 4 years > >> ago but nothing current. There's a command that will print it all out, > >> just not sure how to add it into the mix. Don't like to modify something > >> like Rancid if there's already a way within the system to make it happen. > > > > what is the command to display the policy? can you provide an example of > > the command and output, from prompt to the next prompt? is the output > > format and order stable? > > > > i see an incomplete example here; > > http://www.shrubbery.net/pipermail/rancid-discuss/2014-May/007659.html > > The format isn't great. The switch basically outputs > Policies at Policy Server: > Policy: <name of policy> > <the policy file itself> > Number of clients bound to policy: <n> > Client: <info on what is using policy> > > My hunch would be not to try and parse this lot at all, but just execute > the 'show policy detail' and wait for the prompt to come back. I'm > pretty sure that's all we did; I remember it just diffed everything and > you saw quickly if a policy was added/removed just as easily. > It is theoretically possible for someone to have a prompt matching > string in the policy file as a comment, but lets ignore that madness for > now. > > This example shows three policies as an example: > > * ag1.hbr.2 # dis clip > * ag1.hbr.3 # show policy detail > Policies at Policy Server: > Policy: as65001-in-v4 > entry term10 {
Cool. Could you test this? diff --git a/etc/rancid.types.base b/etc/rancid.types.base index 18139479..6c3a80aa 100644 --- a/etc/rancid.types.base +++ b/etc/rancid.types.base @@ -381,6 +381,7 @@ extreme;command;exos::ShowMemory;show memory extreme;command;exos::ShowDiag;show diag extreme;command;exos::ShowSwitch;show switch extreme;command;exos::ShowSlot;show slot +extreme;command;exos::ShowPolicy;show policy detail extreme;command;exos::WriteTerm;show configuration detail extreme;command;exos::WriteTerm;show configuration # diff --git a/lib/exos.pm.in b/lib/exos.pm.in index fd7d1482..710a5c0f 100644 --- a/lib/exos.pm.in +++ b/lib/exos.pm.in @@ -1,7 +1,5 @@ package exos; ## -## $Id$ -## ## @PACKAGE@ @VERSION@ @copyright@ # @@ -161,6 +159,21 @@ sub ShowDiag { return(0); } +# This routine parses "show policy detail" +sub ShowPolicy { + my($INPUT, $OUTPUT, $cmd) = @_; + print STDERR " In ShowPolicy: $_" if ($debug); + + while (<$INPUT>) { + tr/\015//d; + last if (/^$prompt/); + next if (/^(\s*|\s*$cmd\s*)$/); + + ProcessHistory("POLICY","","","# $_"); + } + return(0); +} + # This routine parses "show slot" sub ShowSlot { my($INPUT, $OUTPUT, $cmd) = @_; _______________________________________________ Rancid-discuss mailing list Rancid-discuss@shrubbery.net http://www.shrubbery.net/mailman/listinfo/rancid-discuss