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()
Exemple #4
0
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()
Exemple #5
0
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()
Exemple #6
0
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()
Exemple #7
0
            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()