12-03-2020 08:25 PM
I have a python script that I’m using for B-series switches to configure multiple ports at the same time.
#@METADATASTART
#@ScriptDescription "Change port from static to NAC".
#@DetailDescriptionStart
##############################################################################
#
#Purpose: "Change port from static to NAC".
#
# Version : 1.0
#
# This script deletes selected ports from all vlans, sets "display-string" and
# "description-string" to "NAC_Port". Finally, the configuration is saved.
##############################################################################
#@DetailDescriptionEnd
#
#@MetaDataEnd
import re
import commands
def main():
if "port" in emc_vars:
ports = emc_vars["port"]
else:
print "Please select at least one PORT if you start the script"
return 0
cli_result = emc_cli.send("clear port vlan " + ports)
main()
However, I get the following output:
deerl1sw006(su)->clear port vlan ge.1.7,ge.1.8
Invalid Port in [port-string].
The B-Series switch needs to use ; instead of , to separate interfaces. Is there anyway to fix this?
Chuck
Solved! Go to Solution.
12-03-2020 11:23 PM
Hello Chuck,
try this:
#@METADATASTART
#@ScriptDescription "Change port from static to NAC".
#@DetailDescriptionStart
##############################################################################
#
#Purpose: "Change port from static to NAC".
#
# Version : 1.0
#
# This script deletes selected ports from all vlans, sets "display-string" and
# "description-string" to "NAC_Port". Finally, the configuration is saved.
##############################################################################
#@DetailDescriptionEnd
#
#@MetaDataEnd
import re
import commands
def main():
if "port" in emc_vars:
ports = emc_vars["port"].split(",") #create a list with all ports
else:
print "Please select at least one PORT if you start the script"
return 0
portcounter = 0
for port in ports: #walk through the list
if portcounter == 0:
portstring = port
else:
portstring = portstring + ";" + port #fill in the separator you need
portcounter += 1
cli_result = emc_cli.send("clear port vlan " + portstring)
main()
12-04-2020 04:06 PM
Once again, you nailed it!
12-04-2020 03:58 PM
Ah yes I see it. Change the insert for the line “return portsting” in that way that it is inline with word for.
The line insertion has to be the same. In the moment the return ends after the for loops run once.
12-04-2020 03:48 PM
Stephan, sorry to bother again, but this only uses the first port (if I selected multiple ports).
Chuck
12-04-2020 03:39 PM
Ah, got it! This works!