- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
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##@MetaDataEndimport reimport commandsdef 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()
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
12-04-2020 04:06 PM
Once again, you nailed it!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
12-04-2020 03:48 PM
Stephan, sorry to bother again, but this only uses the first port (if I selected multiple ports).
Chuck
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
12-04-2020 03:39 PM
Ah, got it! This works!
