cancel
Showing results for 
Search instead for 
Did you mean: 

B-Series with multiple ports

B-Series with multiple ports

cslayton
New Contributor

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

 

1 ACCEPTED SOLUTION

StephanH
Valued Contributor III

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()

 

Regards Stephan

View solution in original post

15 REPLIES 15

cslayton
New Contributor

I tried to change ports (string) to a list using this:

 

ports_list = ports.split()
    for x in ports_list:
        cli_result = emc_cli.send("clear port vlan " + x)  

I get the same error.

GTM-P2G8KFN