mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 13:20:23 -07:00
Refactoring to persistence connection BGP, factory, reload, save, showrun modules (#43534)
* Refactoring to persistence connection BGP, factory, reload, save, showrun modules * Refactoring methods from Util to module file * Removing BGP Utility methods * Adding to errors that need to be ignored
This commit is contained in:
parent
32c01644d4
commit
119376a685
8 changed files with 1072 additions and 1114 deletions
|
@ -184,6 +184,8 @@ def run_cnos_commands(module, commands, check_rc=True):
|
|||
# Exception in Exceptions
|
||||
if 'VLAN_ACCESS_MAP' in errMsg:
|
||||
return retVal + '<<' + errMsg + '\n'
|
||||
if 'confederation identifier' in errMsg:
|
||||
return retVal + '<<' + errMsg + '\n'
|
||||
# Add more here if required
|
||||
retVal = retVal + '<< ' + 'Error-101 ' + errMsg + '\n'
|
||||
return str(retVal)
|
||||
|
@ -1361,836 +1363,6 @@ def portChannelConfig(module, prompt, answer):
|
|||
# EOM
|
||||
|
||||
|
||||
def routerConfig(
|
||||
obj, deviceType, prompt, timeout, protocol, asNum, routerArg1,
|
||||
routerArg2, routerArg3, routerArg4, routerArg5, routerArg6, routerArg7,
|
||||
routerArg8):
|
||||
retVal = ""
|
||||
# Wait time to get response from server
|
||||
timeout = timeout
|
||||
if(protocol == "bgp"):
|
||||
# bgp config command happens here.
|
||||
command = "routing-protocol bgp "
|
||||
value = checkSanityofVariable(deviceType, "bgp_as_number", asNum)
|
||||
if(value == "ok"):
|
||||
# BGP command happens here. It creates if not present
|
||||
command = command + asNum + "\n"
|
||||
# debugOutput(command)
|
||||
retVal = waitForDeviceResponse(
|
||||
command, "(config-router)#", timeout, obj)
|
||||
retVal = retVal + bgpConfig(
|
||||
obj, deviceType, "(config-router)#", timeout, routerArg1,
|
||||
routerArg2, routerArg3, routerArg4, routerArg5, routerArg6,
|
||||
routerArg7, routerArg8)
|
||||
else:
|
||||
retVal = "Error-176"
|
||||
|
||||
elif(protocol == "ospf"):
|
||||
retVal = "Command Value is Not supported as of now"
|
||||
|
||||
else:
|
||||
retVal = "Error-177"
|
||||
|
||||
return retVal
|
||||
# EOM
|
||||
|
||||
|
||||
def bgpNeighborAFConfig(
|
||||
obj, deviceType, prompt, timeout, bgpNeighborAFArg1, bgpNeighborAFArg2,
|
||||
bgpNeighborAFArg3):
|
||||
retVal = ""
|
||||
command = ""
|
||||
timeout = timeout
|
||||
if(bgpNeighborAFArg1 == "allowas-in"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
if(bgpNeighborAFArg2 is not None):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_occurances", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg2
|
||||
else:
|
||||
retVal = "Error-325"
|
||||
return retVal
|
||||
else:
|
||||
command = command
|
||||
elif(bgpNeighborAFArg1 == "default-originate"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
if(bgpNeighborAFArg2 is not None and bgpNeighborAFArg2 == "route-map"):
|
||||
command = command + bgpNeighborAFArg2 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_routemap", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg3
|
||||
else:
|
||||
retVal = "Error-324"
|
||||
return retVal
|
||||
elif(bgpNeighborAFArg1 == "filter-list"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_filtername", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg2 + " "
|
||||
if(bgpNeighborAFArg3 == "in" or bgpNeighborAFArg3 == "out"):
|
||||
command = command + bgpNeighborAFArg3
|
||||
else:
|
||||
retVal = "Error-323"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-322"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborAFArg1 == "maximum-prefix"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_maxprefix", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg2 + " "
|
||||
if(bgpNeighborAFArg3 is not None):
|
||||
command = command + bgpNeighborAFArg3
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
retVal = "Error-326"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborAFArg1 == "next-hop-self"):
|
||||
command = command + bgpNeighborAFArg1
|
||||
|
||||
elif(bgpNeighborAFArg1 == "prefix-list"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_prefixname", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg2 + " "
|
||||
if(bgpNeighborAFArg3 == "in" or bgpNeighborAFArg3 == "out"):
|
||||
command = command + bgpNeighborAFArg3
|
||||
else:
|
||||
retVal = "Error-321"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-320"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborAFArg1 == "route-map"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_routemap", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg2
|
||||
else:
|
||||
retVal = "Error-319"
|
||||
return retVal
|
||||
elif(bgpNeighborAFArg1 == "route-reflector-client"):
|
||||
command = command + bgpNeighborAFArg1
|
||||
|
||||
elif(bgpNeighborAFArg1 == "send-community"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
if(bgpNeighborAFArg2 is not None and bgpNeighborAFArg2 == "extended"):
|
||||
command = command + bgpNeighborAFArg2
|
||||
else:
|
||||
command = command
|
||||
|
||||
elif(bgpNeighborAFArg1 == "soft-reconfiguration"):
|
||||
command = command + bgpNeighborAFArg1 + " inbound"
|
||||
|
||||
elif(bgpNeighborAFArg1 == "unsuppress-map"):
|
||||
command = command + bgpNeighborAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_af_routemap", bgpNeighborAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborAFArg2
|
||||
else:
|
||||
retVal = "Error-318"
|
||||
return retVal
|
||||
|
||||
else:
|
||||
retVal = "Error-317"
|
||||
return retVal
|
||||
|
||||
command = command + "\n"
|
||||
# debugOutput(command)
|
||||
retVal = retVal + waitForDeviceResponse(command, prompt, timeout, obj)
|
||||
command = "exit \n"
|
||||
retVal = retVal + \
|
||||
waitForDeviceResponse(
|
||||
command, "(config-router-neighbor)#", timeout, obj)
|
||||
return retVal
|
||||
# EOM
|
||||
|
||||
|
||||
def bgpNeighborConfig(
|
||||
obj, deviceType, prompt, timeout, bgpNeighborArg1, bgpNeighborArg2,
|
||||
bgpNeighborArg3, bgpNeighborArg4, bgpNeighborArg5):
|
||||
retVal = ""
|
||||
command = ""
|
||||
timeout = timeout
|
||||
|
||||
if(bgpNeighborArg1 == "address-family"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_address_family", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2 + " unicast \n"
|
||||
# debugOutput(command)
|
||||
retVal = waitForDeviceResponse(
|
||||
command, "(config-router-neighbor-af)#", timeout, obj)
|
||||
retVal = retVal + bgpNeighborAFConfig(
|
||||
obj, deviceType, "(config-router-neighbor-af)#", timeout,
|
||||
bgpNeighborArg3, bgpNeighborArg4, bgpNeighborArg5)
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-316"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "advertisement-interval"):
|
||||
command = command + bgpNeighborArg1
|
||||
|
||||
elif(bgpNeighborArg1 == "bfd"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
if(bgpNeighborArg2 is not None and bgpNeighborArg2 == "mutihop"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
command = command
|
||||
|
||||
elif(bgpNeighborArg1 == "connection-retry-time"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_connection_retrytime", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-315"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "description"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_description", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-314"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "disallow-infinite-holdtime"):
|
||||
command = command + bgpNeighborArg1
|
||||
|
||||
elif(bgpNeighborArg1 == "dont-capability-negotiate"):
|
||||
command = command + bgpNeighborArg1
|
||||
|
||||
elif(bgpNeighborArg1 == "dynamic-capability"):
|
||||
command = command + bgpNeighborArg1
|
||||
|
||||
elif(bgpNeighborArg1 == "ebgp-multihop"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_maxhopcount", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-313"
|
||||
return retVal
|
||||
elif(bgpNeighborArg1 == "interface"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
# TBD
|
||||
elif(bgpNeighborArg1 == "local-as"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_local_as", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2 + " "
|
||||
if(bgpNeighborArg3 is not None and
|
||||
bgpNeighborArg3 == "no-prepend"):
|
||||
command = command + bgpNeighborArg3 + " "
|
||||
if(bgpNeighborArg4 is not None and
|
||||
bgpNeighborArg4 == "replace-as"):
|
||||
command = command + bgpNeighborArg4 + " "
|
||||
if(bgpNeighborArg5 is not None and
|
||||
bgpNeighborArg5 == "dual-as"):
|
||||
command = command + bgpNeighborArg5
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
retVal = "Error-312"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "maximum-peers"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_maxpeers", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-311"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "password"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_password", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-310"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "remove-private-AS"):
|
||||
command = command + bgpNeighborArg1
|
||||
|
||||
elif(bgpNeighborArg1 == "timers"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_timers_Keepalive", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_timers_holdtime", bgpNeighborArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg3
|
||||
else:
|
||||
retVal = "Error-309"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-308"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "transport"):
|
||||
command = command + bgpNeighborArg1 + " connection-mode passive "
|
||||
|
||||
elif(bgpNeighborArg1 == "ttl-security"):
|
||||
command = command + bgpNeighborArg1 + " hops "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_ttl_hops", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-307"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "update-source"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
if(bgpNeighborArg2 is not None):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_update_options", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2 + " "
|
||||
if(bgpNeighborArg2 == "ethernet"):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_update_ethernet",
|
||||
bgpNeighborArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg3
|
||||
else:
|
||||
retVal = "Error-304"
|
||||
return retVal
|
||||
elif(bgpNeighborArg2 == "loopback"):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_update_loopback",
|
||||
bgpNeighborArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg3
|
||||
else:
|
||||
retVal = "Error-305"
|
||||
return retVal
|
||||
else:
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_update_vlan",
|
||||
bgpNeighborArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg3
|
||||
else:
|
||||
retVal = "Error-306"
|
||||
return retVal
|
||||
else:
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-303"
|
||||
return retVal
|
||||
|
||||
elif(bgpNeighborArg1 == "weight"):
|
||||
command = command + bgpNeighborArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_neighbor_weight", bgpNeighborArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpNeighborArg2
|
||||
else:
|
||||
retVal = "Error-302"
|
||||
return retVal
|
||||
|
||||
else:
|
||||
retVal = "Error-301"
|
||||
return retVal
|
||||
|
||||
command = command + "\n"
|
||||
# debugOutput(command)
|
||||
retVal = retVal + waitForDeviceResponse(command, prompt, timeout, obj)
|
||||
command = "exit \n"
|
||||
retVal = retVal + \
|
||||
waitForDeviceResponse(command, "(config-router)#", timeout, obj)
|
||||
return retVal
|
||||
# EOM
|
||||
|
||||
|
||||
def bgpAFConfig(
|
||||
obj, deviceType, prompt, timeout, bgpAFArg1, bgpAFArg2, bgpAFArg3,
|
||||
bgpAFArg4, bgpAFArg5, bgpAFArg6):
|
||||
retVal = ""
|
||||
command = ""
|
||||
timeout = timeout
|
||||
if(bgpAFArg1 == "aggregate-address"):
|
||||
command = command + bgpAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_aggregate_prefix", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
if(bgpAFArg2 is None):
|
||||
command = command.strip()
|
||||
elif(bgpAFArg2 == "as-set" or bgpAFArg2 == "summary-only"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
if((bgpAFArg3 is not None) and (bgpAFArg2 == "as-set")):
|
||||
command = command + "summary-only"
|
||||
else:
|
||||
retVal = "Error-297"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-296"
|
||||
return retVal
|
||||
elif(bgpAFArg1 == "client-to-client"):
|
||||
command = command + bgpAFArg1 + " reflection "
|
||||
elif(bgpAFArg1 == "dampening"):
|
||||
command = command + bgpAFArg1 + " "
|
||||
if(bgpAFArg2 == "route-map"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "addrfamily_routemap_name", bgpAFArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg3
|
||||
else:
|
||||
retVal = "Error-196"
|
||||
return retVal
|
||||
elif(bgpAFArg2 is not None):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "reachability_half_life", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
if(bgpAFArg3 is not None):
|
||||
value1 = checkSanityofVariable(
|
||||
deviceType, "start_reuse_route_value", bgpAFArg3)
|
||||
value2 = checkSanityofVariable(
|
||||
deviceType, "start_suppress_route_value", bgpAFArg4)
|
||||
value3 = checkSanityofVariable(
|
||||
deviceType, "max_duration_to_suppress_route",
|
||||
bgpAFArg5)
|
||||
if(value1 == "ok" and value2 == "ok" and value3 == "ok"):
|
||||
command = command + bgpAFArg3 + " " + bgpAFArg4 + \
|
||||
" " + bgpAFArg5 + " "
|
||||
if(bgpAFArg6 is not None):
|
||||
value = checkSanityofVariable(
|
||||
deviceType,
|
||||
"unreachability_halftime_for_penalty",
|
||||
bgpAFArg6)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg6
|
||||
else:
|
||||
retVal = "Error-295"
|
||||
return retVal
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
retVal = "Error-294"
|
||||
return retVal
|
||||
|
||||
elif(bgpAFArg1 == "distance"):
|
||||
command = command + bgpAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "distance_external_AS", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "distance_internal_AS", bgpAFArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg3 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "distance_local_routes", bgpAFArg4)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg4
|
||||
else:
|
||||
retVal = "Error-291"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-292"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-293"
|
||||
return retVal
|
||||
elif(bgpAFArg1 == "maximum-paths"):
|
||||
command = command + bgpAFArg1 + " "
|
||||
value = checkSanityofVariable(deviceType, "maxpath_option", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "maxpath_numbers", bgpAFArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg3
|
||||
else:
|
||||
retVal = "Error-199"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-290"
|
||||
return retVal
|
||||
|
||||
elif(bgpAFArg1 == "network"):
|
||||
command = command + bgpAFArg1 + " "
|
||||
if(bgpAFArg2 == "synchronization"):
|
||||
command = command + bgpAFArg2
|
||||
else:
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "network_ip_prefix_with_mask", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
if(bgpAFArg3 is not None and bgpAFArg3 == "backdoor"):
|
||||
command = command + bgpAFArg3
|
||||
elif(bgpAFArg3 is not None and bgpAFArg3 == "route-map"):
|
||||
command = command + bgpAFArg3
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "addrfamily_routemap_name", bgpAFArg4)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg4 + " "
|
||||
if(bgpAFArg5 is not None and bgpAFArg5 == "backdoor"):
|
||||
command = command + bgpAFArg5
|
||||
else:
|
||||
retVal = "Error-298"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-196"
|
||||
return retVal
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "network_ip_prefix_value", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
if(bgpAFArg3 is not None and bgpAFArg3 == "backdoor"):
|
||||
command = command + bgpAFArg3
|
||||
elif(bgpAFArg3 is not None and bgpAFArg3 == "route-map"):
|
||||
command = command + bgpAFArg3
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "addrfamily_routemap_name", bgpAFArg4)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg4 + " "
|
||||
if(bgpAFArg5 is not None and
|
||||
bgpAFArg5 == "backdoor"):
|
||||
command = command + bgpAFArg5
|
||||
else:
|
||||
retVal = "Error-298"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-196"
|
||||
return retVal
|
||||
elif(bgpAFArg3 is not None and bgpAFArg3 == "mask"):
|
||||
command = command + bgpAFArg3
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "network_ip_prefix_mask", bgpAFArg4)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg4 + " "
|
||||
else:
|
||||
retVal = "Error-299"
|
||||
return retVal
|
||||
else:
|
||||
command = command.strip()
|
||||
else:
|
||||
retVal = "Error-300"
|
||||
return retVal
|
||||
|
||||
elif(bgpAFArg1 == "nexthop"):
|
||||
command = command + bgpAFArg1 + " trigger-delay critical "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "nexthop_crtitical_delay", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg2 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "nexthop_noncrtitical_delay", bgpAFArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg3 + " "
|
||||
else:
|
||||
retVal = "Error-198"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-197"
|
||||
return retVal
|
||||
elif(bgpAFArg1 == "redistribute"):
|
||||
command = command + bgpAFArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "addrfamily_redistribute_option", bgpAFArg2)
|
||||
if(value == "ok"):
|
||||
if(bgpAFArg2 is not None):
|
||||
command = command + bgpAFArg2 + " " + "route-map "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "addrfamily_routemap_name", bgpAFArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpAFArg3
|
||||
else:
|
||||
retVal = "Error-196"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-195"
|
||||
return retVal
|
||||
elif(bgpAFArg1 == "save" or bgpAFArg1 == "synchronization"):
|
||||
command = command + bgpAFArg1
|
||||
else:
|
||||
retVal = "Error-194"
|
||||
return retVal
|
||||
command = command + "\n"
|
||||
# debugOutput(command)
|
||||
retVal = retVal + waitForDeviceResponse(command, prompt, timeout, obj)
|
||||
command = "exit \n"
|
||||
retVal = retVal + \
|
||||
waitForDeviceResponse(command, "(config-router)#", timeout, obj)
|
||||
return retVal
|
||||
# EOM
|
||||
|
||||
|
||||
def bgpConfig(
|
||||
obj, deviceType, prompt, timeout, bgpArg1, bgpArg2, bgpArg3, bgpArg4,
|
||||
bgpAgr5, bgpArg6, bgpArg7, bgpArg8):
|
||||
retVal = ""
|
||||
command = ""
|
||||
# Wait time to get response from server
|
||||
timeout = timeout
|
||||
if(bgpArg1 == "address-family"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_address_family", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2 + " " + "unicast \n"
|
||||
debugOutput(command)
|
||||
retVal = waitForDeviceResponse(
|
||||
command, "(config-router-af)#", timeout, obj)
|
||||
retVal = retVal + bgpAFConfig(
|
||||
obj, deviceType, "(config-router-af)#", timeout,
|
||||
bgpArg3, bgpArg4, bgpAgr5, bgpArg6, bgpArg7, bgpArg8)
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-178"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "bestpath"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
if(bgpArg2 == "always-compare-med"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2
|
||||
elif(bgpArg2 == "compare-confed-aspath"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2
|
||||
elif(bgpArg2 == "compare-routerid"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2
|
||||
elif(bgpArg2 == "dont-compare-originator-id"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2
|
||||
elif(bgpArg2 == "tie-break-on-age"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2
|
||||
elif(bgpArg2 == "as-path"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2 + " "
|
||||
if(bgpArg3 == "ignore" or bgpArg3 == "multipath-relax"):
|
||||
command = command + bgpArg3
|
||||
else:
|
||||
retVal = "Error-179"
|
||||
return retVal
|
||||
elif(bgpArg2 == "med"):
|
||||
# debugOutput(bgpArg2)
|
||||
command = command + bgpArg2 + " "
|
||||
if(bgpArg3 == "confed" or
|
||||
bgpArg3 == "missing-as-worst" or
|
||||
bgpArg3 == "non-deterministic" or
|
||||
bgpArg3 == "remove-recv-med" or
|
||||
bgpArg3 == "remove-send-med"):
|
||||
command = command + bgpArg3
|
||||
else:
|
||||
retVal = "Error-180"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-181"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "bgp"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " as-local-count "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_bgp_local_count", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
retVal = "Error-182"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "cluster-id"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
value = checkSanityofVariable(deviceType, "cluster_id_as_ip", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "cluster_id_as_number", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
retVal = "Error-183"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "confederation"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
if(bgpArg2 == "identifier"):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "confederation_identifier", bgpArg3)
|
||||
if(value == "ok"):
|
||||
command = command + " " + bgpArg2 + " " + bgpArg3
|
||||
else:
|
||||
retVal = "Error-184"
|
||||
return retVal
|
||||
elif(bgpArg2 == "peers"):
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "confederation_peers_as", bgpArg3)
|
||||
if(value == "ok"):
|
||||
command = command + " " + bgpArg2 + " " + bgpArg3
|
||||
else:
|
||||
retVal = "Error-185"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-186"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "enforce-first-as"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1
|
||||
|
||||
elif(bgpArg1 == "fast-external-failover"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1
|
||||
|
||||
elif(bgpArg1 == "graceful-restart"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " stalepath-time "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "stalepath_delay_value", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
retVal = "Error-187"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "graceful-restart-helper"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1
|
||||
|
||||
elif(bgpArg1 == "log-neighbor-changes"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1
|
||||
|
||||
elif(bgpArg1 == "maxas-limit"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
value = checkSanityofVariable(deviceType, "maxas_limit_as", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
retVal = "Error-188"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "neighbor"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "neighbor_ipaddress", bgpArg2)
|
||||
# retVal = "Error-102"
|
||||
# return retVal
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
if(bgpArg3 is not None):
|
||||
command = command + " remote-as "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "neighbor_as", bgpArg3)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg3 + "\n"
|
||||
# debugOutput(command)
|
||||
retVal = waitForDeviceResponse(
|
||||
command, "(config-router-neighbor)#", timeout, obj)
|
||||
retVal = retVal + bgpNeighborConfig(
|
||||
obj, deviceType, "(config-router-neighbor)#",
|
||||
timeout, bgpArg4, bgpAgr5, bgpArg6, bgpArg7, bgpArg8)
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-189"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "router-id"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " "
|
||||
value = checkSanityofVariable(deviceType, "router_id", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
retVal = "Error-190"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "shutdown"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1
|
||||
|
||||
elif(bgpArg1 == "synchronization"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1
|
||||
|
||||
elif(bgpArg1 == "timers"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " bgp "
|
||||
value = checkSanityofVariable(
|
||||
deviceType, "bgp_keepalive_interval", bgpArg2)
|
||||
if(value == "ok"):
|
||||
command = command + bgpArg2
|
||||
else:
|
||||
retVal = "Error-191"
|
||||
return retVal
|
||||
if(bgpArg3 is not None):
|
||||
value = checkSanityofVariable(deviceType, "bgp_holdtime", bgpArg3)
|
||||
if(value == "ok"):
|
||||
command = command + " " + bgpArg3
|
||||
else:
|
||||
retVal = "Error-192"
|
||||
return retVal
|
||||
else:
|
||||
retVal = "Error-192"
|
||||
return retVal
|
||||
|
||||
elif(bgpArg1 == "vrf"):
|
||||
# debugOutput(bgpArg1)
|
||||
command = command + bgpArg1 + " default"
|
||||
else:
|
||||
# debugOutput(bgpArg1)
|
||||
retVal = "Error-192"
|
||||
return retVal
|
||||
command = command + "\n"
|
||||
# debugOutput(command)
|
||||
retVal = retVal + waitForDeviceResponse(command, prompt, timeout, obj)
|
||||
# Come back to config mode
|
||||
command = "exit \n"
|
||||
# debugOutput(command)
|
||||
retVal = retVal + waitForDeviceResponse(command, "(config)#", timeout, obj)
|
||||
|
||||
return retVal
|
||||
# EOM
|
||||
|
||||
|
||||
def vlanConfig(module, prompt, answer):
|
||||
|
||||
retVal = ''
|
||||
|
@ -3657,7 +2829,7 @@ def checkLong(s):
|
|||
|
||||
|
||||
def debugOutput(command):
|
||||
f = open('debugOuput.txt', 'a')
|
||||
f = open('debugOutput.txt', 'a')
|
||||
f.write(str(command)) # python will convert \n to os.linesep
|
||||
f.close() # you can omit in most cases as the destructor will call it
|
||||
# EOM
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue