ciscoconfparse

Parse via Cisco IOS-stijlconfiguraties en haal delen van de configuratie op met behulp van een verscheidenheid aan querymethoden
Download nu

ciscoconfparse Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • GPL
  • Prijs:
  • FREE
  • Naam uitgever:
  • David Michael Pennington
  • Uitgever website:
  • http://pennington.net

ciscoconfparse Tags


ciscoconfparse Beschrijving

Ontleed via Cisco IOS-stijlconfiguraties en haal delen van de configuratie op met behulp van een verscheidenheid aan query-methoden Ciscoconfparse is een Python-bibliotheek voor het parseren via Cisco IOS-stijlconfiguraties en het ophalen van gedeelten van de config. Op basis van verschillende query-methodes.Het pakket zal een iOS-stijl-configuratie verwerken en het in een reeks gelinkte ouder / kindrelaties breken. Vervolgens geeft u query's af tegen deze relaties met behulp van een bekend gezinssyntaxismodel. Queries kunnen in de vorm van een eenvoudige string zijn of u kunt reguliere uitdrukkingen gebruiken. De API biedt krachtige query-tools, inclusief het vermogen om alle ouders te vinden die geen kinderen hebben die passen bij een bepaalde criteria. Dit betekent dat het gemakkelijk is om de interface-namen van alle Layer2-stammen in een katalysator 6500 te vinden of een lijst met alle interfaces op te halen met CDP uitgeschakeld. Tot dit pakket ken ik geen eenvoudige config-parsing-API's om hetzelfde te doen; Het is van oudsher beschouwd als het domein van het schrapen. In combinatie met de geavanceerde set-manipulatiecapaciteit van Python is uw verbeeldingskracht de limiet. Het pakket biedt ook een reeks methoden om de IOSconfigline-objecten zelf te onderzoeken en te manipuleren. Dit geeft je een flexibel mechanisme om je eigen aangepaste query's te bouwen, omdat de Iosconfigline-objecten alle ouder / kindhiërarchie in hen slaan. Uitbeelden van configuratie-familierelaties worden hieronder getoond ... Line01: beleidskaart qos_1line02: Klasse Goldline03: Priority Percent 10LINE04: Klasse Silverline05: Bandbreedte 30LINE06: Random-Detectline07: Klasse DefaultLine08:! Line09: Interface Seriële 1 / 0line10: Inkapseling PPPLINE11: IP-adres 1.1.1.1255.255.255.252Line12:! Line13: Toegangslijst 101 Deny TCP Elke EQ 25 Logline14: Toegangslijst 101 Permit IP ELKE OUDERS: 01, 02, 04, 09Children: van 01 = 02, 04, 07 van 02 = 03 van 04 = 05, 06OF 09 = 10, 11SIBLINGS: 02, 04, 0705, 0610, 11OLDEST_ANCEORS: 01, 09Families: 01, 02, 03, 04, 05, 06, 0709, 10, 11Family_endpoints: 07, 11 Noot dat 01, 09, 13 en 14 niet worden beschouwd als broers en zussen, noch maken ze deel uit van dezelfde familie. In feite behoren 13 en 14 helemaal niet bij een gezin; Ze hebben geen kinderen. Het pakket biedt verschillende soorten methoden: 1. Query-methoden die een lijst met tekstregels retourneren .1.1 Find_Lines (Self, LineSpec, Exactmatch = FALSE, IGNORE_WS = FALSE): 1.2 Find_Children (Self, LineSpec, Exactmatch = FALSE, IGNORE_WS = FALSE): 1.3 Find_all_children (Self, LineSpec, Exactmatch = FALSE, IGNORE_WS = FALSE): 1.4 Find_Blocks (Self, BlockSpec, Exactmatch = FALSE, IGNORE_WS = FALSE): 1.5 Find_Parents_W_Child (Self, ParentSpec, Childspec, IGNORE_WS = FALSE): 1.6 Find_Parents_Wo_Child (Self, ParentSpec, ChildSpec, Ignore_WS = False) : 1.7 req_cfgspec_all_diff (self, cfgspec): 1.8 req_cfgspec_excl_diff (self, linespec, uncfgspec, cfgspec): 2. Query-methoden die een lijst van Iosconfigline-objecten retourneren. 2.1 Find_line_obj (Self, LineSpec): 2.2 Find_Sibling_obj (Self, LineObject): 2.3 Find_Child_Obj (Self, LineObject): 2.4 Find_all_Child_Obj (Self, LineObject): 2.5 Find_Parent_Obj (Self, LineObject): 3 . Methoden voor het manipuleren van Iosconfigline-objecten3.1 Unique_obj (Self, ObjectList): 3.2 Objects_to_lines (Zelf, ObjectList): 3.3 Objects_to_uncfg (Zelf, ObjectList, Onbewaarder): 4. Query-methoden op ICOSCONFIGLINE Objects4.1 Ouder (Zelf): 4.2 Kinderen (Zelf): 4.3 Has_children (Self): 4.4 Kind_indent (Zelf): 4.5 Oldest_ancestor (Zelf): 4.6 Family_endpoint (Zelf): 4.7 Linenum (Zelf): 4.8 Tekst (Zelf): 4.9 Uncfgtext (Self): 5. Methoden voor het parseren van de configuratie: ik zal hier niet de moeite nemen ... Je hebt de bron als je geïnteresseerd bent. Basisch gebruik #! / Usr / bin / env pythonfrom ciscoconfparse import * parse = ciscoconfparse ("/ tftpboot / bucksnort.conf ") # Retourneer een lijst met alle ATM-interfaces en subinterfaces # ATM_INTFS = PARSE.FIND_LINES (" ^ interfacesatm ") # Retourneer een lijst met alle interfaces met een bepaald QOS-beleid # QOS_INTFS = PARSE.FIND_PARENTS_W_CHILD (" ^ Intergroep "Service -Policy QOS_01 ") # Retourneer een lijst van alle actieve interfaces (dwz niet afsluiten) #Active_intfs = pars.find_parents_wo_child (" ^ interface "," shutdown ") # Zoek alle interfaces die een stem hebben geconfigureerd, als ze vertrouwen hebben op DSCP # Build Een nieuwe configuratie om COS ## te vertrouwen, u moet een caret (^) plaatsen voor "Interface" hieronder ... Anders krijg je wedstrijden # voor elke opdracht met interface in de syntaxis. ^ is een reguliere expressie om het begin van een lijn te matchen. # NEWCFG = [] Voice_intfs = pars.find_parents_w_child ("^ interface", "Switchport Voice") voor INTF in Voice_intfs: FAMOBJ = Ciscoconfparse (PARSE.FIND_CHILDREN (INTF, Exactmatch = TRUE)) IF (FAMOBJ.FIND_LINES ("MLS QOS TRUST DSCP")): NEWCFG.APPEND (INTF) NEWCFG.APPEND ("MLS QOS TRUST COS") De voorbeelden / map in de distributie bevat meer gebruiksgevallen, inclusief Voorbeeldconfigs om te ontleden. Bij het handhaven van configuratiestandaarden, is de methode REQ_CFGSPEC_EXCL_DIFF () erg handig; Voorbeelden van het gebruik zijn inbegrepen. Vereisten: · Python


ciscoconfparse Gerelateerde software

Rumalchemy

RESTFULITEERDE WEB-INTERFACE-generator voor SQLALCHEME BETROKKEN LEUZEN CLASSEN GEBRUIKT RUM EN TOSCAWIDGETS ...

138

Downloaden