def main(): startup = file(taglib.default_filename) running = file(dirname(taglib.default_filename) + "running.cfg") m = re.compile(r'^version') line = startup.readline() lineno = 1 while line and not m.match(line): line = startup.readline() lineno += 1 line2 = running.readline() while line2 and not m.match(line2): line2 = running.readline() m = re.compile(r'clock-period') while line and line2 and line == line2: line = startup.readline() lineno += 1 line2 = running.readline() if line and line2 and m.search(line): line = startup.readline() lineno += 1 line2 = running.readline() if line != line2: t = taglib.tag("flag", "unsaved changes") t.implied_by(taglib.env_tags.snapshot, lineno) taglib.output_tagging_log()
def main(): filename = taglib.default_filename with file(filename) as f: tree = etree.parse(f) top = tree.getroot()[0] nsmap = top.nsmap if None in nsmap: nsmap['x'] = nsmap[None] del nsmap[None] context = taglib.env_tags.device tag_matches(top, "system/domain-name", "domain name", context) tag_matches(top, "system/time-zone", "time zone", context) tag_matches(top, "system/name-server/name", "name server", context) tag_matches(top, "system/radius-server/name", "RADIUS server", context) tag_matches(top, "system/tacplus-server/name", "TACACS+ server", context) tag_matches(top, "system/ntp/boot-server", "NTP boot server", context) tag_matches(top, "system/ntp/server/name", "NTP server", context) tag_matches(top, "system/login/user/name", "user", context) tag_matches(top, "snmp/community/name", "SNMP community", context) tag_services(top) tag_interfaces(top) tag_protocols(top) tag_location(top) tag_scripts(top) taglib.output_tagging_log()
def main(): filename = taglib.default_filename with file(filename) as f: tree = etree.parse(f) top = tree.getroot()[0] nsmap = top.nsmap if None in nsmap: nsmap['x'] = nsmap[None] del nsmap[None] context = taglib.env_tags.device tag_matches(top, "system/domain-name", "domain name", context) tag_matches(top, "system/time-zone", "time zone", context) tag_matches(top, "system/name-server/name", "name server", context) tag_matches(top, "system/radius-server/name", "RADIUS server", context) tag_matches(top, "system/tacplus-server/name", "TACACS+ server", context) tag_matches(top, "system/ntp/boot-server", "NTP boot server", context) tag_matches(top, "system/ntp/server/name", "NTP server", context) tag_matches(top, "system/login/user/name", "user", context) tag_matches(top, "snmp/community/name", "SNMP community", context) tag_services(top) tag_interfaces(top) tag_protocols(top) tag_location(top) tag_scripts(top) taglib.output_tagging_log()
def main(): filename = taglib.default_filename content = open(filename).read() lexer = pygments.lexers.get_lexer_by_name("iosxr") formatter = TagsFormatter(fn=filename) pygments.highlight(content, lexer, formatter, sys.stdout) taglib.output_tagging_log()
def main(): filename = taglib.default_filename content = open(filename).read() lexer = pygments.lexers.get_lexer_by_name("ios") formatter = TagsFormatter(fn=filename) pygments.highlight(content, lexer, formatter, sys.stdout) taglib.output_tagging_log()
def get_text(parentElem, xpath): elems = parentElem.xpath(xpath, nsmap) if elems: return elems[0].text def tag_attrs(parentElem, xpath, kind, context): elems = parentElem.xpath(xpath, nsmap) for elem in elems: t = taglib.tag(kind, elem.text) t.implied_by(context, elem.sourceline) physicalElems = top.xpath("x:physical-interface", nsmap) for physicalElem in physicalElems: nameElems = physicalElem.xpath("x:name", nsmap) if not nameElems: continue nameElem = nameElems[0] physical_tag = taglib.tag( "physical interface", "%s %s" % (taglib.env_tags.device.name, nameElem.text)) physical_tag.implies(taglib.env_tags.device, nameElem.sourceline) tag_attrs(physicalElem, "x:speed", "speed", physical_tag) tag_attrs(physicalElem, "x:mtu", "MTU", physical_tag) tag_attrs(physicalElem, "x:if-type", "interface type", physical_tag) tag_attrs(physicalElem, "x:link-level-type", "link-level type", physical_tag) taglib.output_tagging_log()
taglib.tag("user", account).implied_by(taglib.env_tags.device, line=n) continue # services m = re.match(r'set ssh version ([\w\d]+)', line) if m: ssh_version = m.group(1) ssh_version_line = n continue m = re.match(r'set ssh enable', line) if m: ssh_enable = True taglib.tag("service", 'SSH').implied_by(taglib.env_tags.device, n) continue m = re.match(r'set scp enable', line) if m: taglib.tag("service", 'SCP').implied_by(taglib.env_tags.device, n) continue # post parse phase if ssh_enable: if ssh_version: taglib.tag("service", 'SSH' + ssh_version).implied_by(taglib.env_tags.device, ssh_version_line) if __name__ == '__main__': main(taglib.default_filename) taglib.output_tagging_log()