当前位置: 首页>>代码示例>>Python>>正文


Python CiscoConfParse.save_as方法代码示例

本文整理汇总了Python中ciscoconfparse.CiscoConfParse.save_as方法的典型用法代码示例。如果您正苦于以下问题:Python CiscoConfParse.save_as方法的具体用法?Python CiscoConfParse.save_as怎么用?Python CiscoConfParse.save_as使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ciscoconfparse.CiscoConfParse的用法示例。


在下文中一共展示了CiscoConfParse.save_as方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: parse_config

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
def parse_config(host, addr):
    # search mgmt interface in .txt files
    # interface GigabitEthernet3 is MGMT interface
    txt_cfg = lab_folder + host + ".txt"
    mgmt_interface = "GigabitEthernet3"
    ip_param = "ip address " + addr + " 255.255.255.0"

    parse = CiscoConfParse(txt_cfg, factory=True)
    interface = parse.find_interface_objects(mgmt_interface)
    # add interface gig3

    if interface == []:
        print("creating mgmt interface")
        parse.insert_before('line con 0', 'interface GigabitEthernet3')
        parse.commit()

        for obj in parse.find_interface_objects(mgmt_interface):
            obj.append_to_family('!')
            obj.append_to_family(' no shutdown')
            obj.append_to_family(' ' + ip_param)
            obj.append_to_family(' description MGMT')

        parse.commit()
        parse.save_as(txt_cfg)
    else:
        print("Interface already configured")
        pass
开发者ID:bysshd,项目名称:ine-cfg-loader,代码行数:29,代码来源:load_lab.py

示例2: transform

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
def transform(filename):

	#1st Part

	with open(os.path.join(app.config['UPLOAD_FOLDER'],filename), "rU") as infile:

		p = CiscoConfParse(infile)

		objs = list()

		objs.extend(p.find_objects(r'^policy-map'))
		objs.extend(p.find_objects(r'ip\saccess-list'))
		objs.extend(p.find_objects(r'^class-map'))
		objs.extend(p.find_objects(r'^crypto pki'))
		objs.extend(p.find_objects(r'^track'))
		objs.extend(p.find_objects(r'^ip sla'))
		objs.extend(p.find_objects(r'^zone-pair'))
		objs.extend(p.find_objects(r'^archive'))
		objs.extend(p.find_objects(r'^banner '))
		objs.extend(p.find_objects(r'^line '))
		objs.extend(p.find_objects(r'^username'))
		objs.extend(p.find_objects(r'^logging '))
		objs.extend(p.find_objects(r'^end'))
		objs.extend(p.find_objects(r'^access-list'))

		for obj in objs:
			obj.delete()

		for interface in p.find_objects_w_child('^interface', 'spanning-tree portfast'):
			interface.delete(interface)

		for interface in p.find_objects_w_child('^interface', 'switchport port-security'):
			interface.delete(interface)

		p.commit()

		p.save_as (os.path.join(app.config['UPLOAD_FOLDER'], 'file_parsed_1st.txt'))


	#2nd Part

	with open (os.path.join(app.config['UPLOAD_FOLDER'], 'file_parsed_1st.txt'), "rU") as file_parsed_2nd:

		with open(os.path.join(app.config['UPLOAD_FOLDER'], 'file_parsed_2nd.txt'), "w") as outfile:

			security_lines = ['last','Last','version','service timestamps','service password','tcp-keepalives','marker','flow-','enable secret',
							'csdb', 'ip accouting','timezone','aaa','ssh','snmp','service-policy','tacacs','privilege',
							'alias','ntp','scheduler allocate','exec-timeout', 'service pad','syslog',
							'small-servers','enable password','zone-member','zone security','ip http','mls','igmp', 'radius-server',
							'forward-protocol','cdp','nagle','resource policy','gratuitous-arps','resource policy''control-plane',
							'-time','errdisable','#','Building configuration','Current configuration','memory-size iomem','no ip source-route',
							'no ip bootp server','no ip domain lookup','no ipv6 cef','no logging console','multilink bundle-name authenticated',
							'ip accounting','standby']

			emptyline = ['\n', '\r\n']

			for line in file_parsed_2nd:
				if not line in emptyline and not any(security_line in line for security_line in security_lines):
					outfile.write(line)



	# 3rd Part

			outfile.write('enable secret cisco\n')
			outfile.write('line vty 0 4\n')
			outfile.write('    password cisco\n')
			outfile.write('    no access-class 23 in\n')
			outfile.write('end\n')
			outfile.write('!\n')



		return send_file(os.path.join(app.config['UPLOAD_FOLDER'], 'file_parsed_2nd.txt'))
开发者ID:fabiano-lima,项目名称:Cisco-Basic-Config-Generator,代码行数:76,代码来源:app.py

示例3: and

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
        ## Add missing commands
        if is_switchport_access and (not has_stormcontrol):
            intf.append_to_family(' storm-control action trap')
            intf.append_to_family(' storm-control broadcast level 0.4 0.3')

        ## remove dot1q trunk misconfiguration
        elif is_switchport_trunk:
            intf.delete_children_matching('port-security')

## Parse the config
parse = CiscoConfParse('switch.conf')

## Add a new switchport at the bottom of the config...
parse.append_line('interface GigabitEthernet1/0')
parse.append_line(' switchport')
parse.append_line(' switchport mode access')
parse.append_line('!')
parse.commit ()

## Search and standardize the interfaces
standardize_interfaces(parse)
parse.commit()

## Add a line to the top of the config if not already there.
if not parse.has_line_with(r'^service\stimestamp'):
    parse.prepend_line('service timestamps debug datetime msec localtime show-timezone')
    parse.prepend_line('service timestamps log datetime msec localtime show-timezone')

## Wrtite the config file now...
parse.save_as('switch.conf.new')
开发者ID:palazzoloc,项目名称:pynet_testx,代码行数:32,代码来源:cisco_config_generator2.py

示例4: print

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
        if (ipv4_addr.ip_object + 1) in ipv4_network.hosts():
            primary_ip = ipv4_addr.ip_object + 1
            secondary_ip = ipv4_addr.ip_object + 2
        else:
            primary_ip = ipv4_addr.ip_object - 1
            secondary_ip = ipv4_addr.ip_object - 2

        # now add the configuration to the change scripts
        primary_config.append_line("interface %s" % vlan_interface_string)
        primary_config.append_line(" description *** VLAN SVI %s" % vlan_id)
        primary_config.append_line(" ip address %s %s" % (primary_ip, ipv4_addr.netmask))
        primary_config.append_line(" standby version 2")
        primary_config.append_line(" standby 1 ip %s" % virtual_ip)
        primary_config.append_line(" standby 1 priority 255")
        primary_config.append_line(" standby 1 authentication md5 key-string vl%s" % vlan_id)
        primary_config.append_line("!")

        secondary_config.append_line("interface %s" % vlan_interface_string)
        secondary_config.append_line(" description *** VLAN SVI %s" % vlan_id)
        secondary_config.append_line(" ip address %s %s" % (secondary_ip, ipv4_addr.netmask))
        secondary_config.append_line(" standby version 2")
        secondary_config.append_line(" standby 1 ip %s" % virtual_ip)
        secondary_config.append_line(" standby 1 priority 254")
        secondary_config.append_line(" standby 1 authentication md5 key-string vl%s" % vlan_id)
        secondary_config.append_line("!")

    # write results
    print("Write results...")
    primary_config.save_as(os.path.join(output_directory, primary_configuration_file))
    secondary_config.save_as(os.path.join(output_directory, secondary_configuration_file))
开发者ID:KarmicGeezer,项目名称:python-script-examples,代码行数:32,代码来源:create-hsrp-interface-configuration.py

示例5: IPv4Address

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
        # now we create an IP address object from the ARP entry
        arp_ipv4_addr = IPv4Address(ipv4)

        # assign static arp entry to the VLAN SVI interface
        for vlan_svi in vlan_svis:
            svi_ipv4_network = IPv4Network(vlan_svi['ipv4_addr'] + "/" + vlan_svi['ipv4_netmask'], strict=False)
            if arp_ipv4_addr in svi_ipv4_network.hosts():
                # extend the model if the correct IP network is found
                if "static_arps" not in vlan_svi.keys():
                    vlan_svi['static_arps'] = list()
                record = {
                    'ipv4_host': ipv4,
                    'mac': mac
                }
                vlan_svi['static_arps'].append(record)

                # a static ARP is only defined on a single interface
                break

    print("Write results to file...")
    cisco_nxos_template = CiscoConfParse(['!'])

    for vlan_svi in vlan_svis:
        cisco_nxos_template.append_line("interface Vlan%s" % vlan_svi['vlan_id'])
        for static_arp in vlan_svi['static_arps']:
            cisco_nxos_template.append_line(" ip arp %s %s" % (static_arp['ipv4_host'], static_arp['mac']))
        cisco_nxos_template.append_line('!')

    cisco_nxos_template.save_as(os.path.join(output_dir, "cisco_nxos_config.txt"))
开发者ID:Ravirajadrangi,项目名称:python-script-examples,代码行数:31,代码来源:create-migration-templates.py

示例6: sorted

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
    parse.delete_lines(r'loop-detection')
    parse.delete_lines(r'errdisable recovery cause loop-detect')
    parse.delete_lines(r'errdisable recovery cause all')

    ## Cleans up vlan configuraiton.
    vlans = [
        ('11', wifi_vlans),
        ('22', voice_vlan),
        ('24', facilitys_vlan),
        ('42', data_vlan),
        ('56', wifi_vlans)
    ]
    tagged_ports = lambda vlan: parse.replace_children(
        r'vlan\s+{0}'.format(vlan[0]), r'!', 'tagged ' + ' '.join([port_name(port) for port in sorted(vlan[1])])
    )
    port_name = lambda port: ' '.join([port.text[10:11], port.text[19:]])
    parse.replace_all_children(r'vlan.*', r'[un]?tagged.*', '!')
    for x in vlans: tagged_ports(x)
    # parse.replace_all_children(r'vlan.*', r'REPLACE', '')


## Parse the config
parse = CiscoConfParse('brocade_conf.cfg')

## Search and standardize the configuration
standardize_intfs(parse)
parse.commit()  # commit() **must** be called before searching again

## Write the new configuration
parse.save_as('brocade_conf.cfg.new')
开发者ID:dcrozier,项目名称:PyTest,代码行数:32,代码来源:conf_parse_test.py

示例7: print

# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import save_as [as 别名]
re1='(ag)'

rg = re.compile(re1,re.IGNORECASE|re.DOTALL)
l2agg = rg.search(text)

if l2agg:
    for intf in parse.find_objects(r'^interface.+?thernet'):
        has_qos_trust = intf.has_child_with(r' mls qos trust dscp')
        is_switchport_trunk = intf.has_child_with(r'switchport mode trunk')
        is_switchport_infra = intf.has_child_with(r'INFRA:TRUNK*.*')

        if (is_switchport_trunk and is_switchport_infra) and (not has_qos_trust):
            cfgdiff.append_line("!")
            cfgdiff.append_line(intf.text)
            cfgdiff.append_line("mls qos trust dscp")
    cfgdiff.save_as(config_file+'_new')
    print ("Config Created with _new extension for L2AGG")
else:
    for intf in parse.find_objects(r'^interface.+?thernet'):
        has_qos_trust = intf.has_child_with(r' mls qos trust dscp')
        is_switchport_trunk = intf.has_child_with(r'switchport mode trunk')
        is_switchport_infra = intf.has_child_with(r'INFRA:TRUNK*.*')
        is_switchport_access = intf.has_child_with(r'switchport mode access')
        is_switchport_shutdown = intf.has_child_with(r'shutdown')

        if (is_switchport_trunk and is_switchport_infra) and (not has_qos_trust):
            cfgdiff.append_line("!")
            cfgdiff.append_line(intf.text)
            cfgdiff.append_line("mls qos trust dscp")
        elif (is_switchport_access and (not is_switchport_shutdown)) and (not has_qos_trust):
            cfgdiff.append_line("!")
开发者ID:Dipsingh,项目名称:random-scripts,代码行数:33,代码来源:qos_audit.py


注:本文中的ciscoconfparse.CiscoConfParse.save_as方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。