本文整理汇总了Python中ciscoconfparse.CiscoConfParse.commit方法的典型用法代码示例。如果您正苦于以下问题:Python CiscoConfParse.commit方法的具体用法?Python CiscoConfParse.commit怎么用?Python CiscoConfParse.commit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ciscoconfparse.CiscoConfParse
的用法示例。
在下文中一共展示了CiscoConfParse.commit方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parse_config
# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import commit [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: testValues_banner_delete_01
# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import commit [as 别名]
def testValues_banner_delete_01():
# Ensure multiline banners are correctly deleted
CONFIG = ['!',
'banner motd ^', ' trivial banner1 here ^',
'interface GigabitEthernet0/0',
' ip address 192.0.2.1 255.255.255.0',
'banner exec ^', ' trivial banner2 here ^',
'end']
parse = CiscoConfParse(CONFIG)
for obj in parse.find_objects('^banner'):
obj.delete()
parse.commit()
assert parse.find_objects('^banner')==[]
示例3: testValues_banner_delete_02
# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import commit [as 别名]
def testValues_banner_delete_02():
# Ensure multiline banners are correctly deleted
#
# Check for Github issue #37
CONFIG = ['!',
'interface GigabitEthernet0/0',
' ip address 192.0.2.1 255.255.255.0',
'banner motd ^', ' trivial banner1 here ^',
'interface GigabitEthernet0/1',
' ip address 192.0.2.1 255.255.255.0',
'banner exec ^', ' trivial banner2 here ^',
'end']
parse = CiscoConfParse(CONFIG)
for obj in parse.find_objects('^banner'):
obj.delete()
parse.commit()
assert parse.find_objects('^banner')==[]
# Github issue #37 assigned Gi0/1's child to Gi0/0 after deleting
# the banner motd line...
for obj in parse.find_objects('^interface'):
assert len(obj.children)==1
示例4: transform
# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import commit [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'))
示例5: and
# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import commit [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')
示例6: sorted
# 需要导入模块: from ciscoconfparse import CiscoConfParse [as 别名]
# 或者: from ciscoconfparse.CiscoConfParse import commit [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')