@ -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 ( ' debugOu put.txt' , ' a ' )
f = open ( ' debugOu t put.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