本文整理汇总了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
示例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'))
示例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')
示例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))
示例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"))
示例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')
示例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("!")