2016-06-29 6 views
0

私は最初にfc_aliasを作成してから、zoneとzone_setを作るコードを追加することができます。私はfc_aliasを作るコマンドの最初の部分を生成してデバイスに入ることができます。 float値(vsan_id)とともにstr値(fc_alias)を追加すると、相互にうまく相互作用しません。私はfc_aliasを作成できる方法を見つけることができません。ここでNetmikoを使用してfcaliasを生成できません

def fc_alias(self): 

    # store TEST switch info 

    cisco_asa = { 
     'device_type': 'cisco_nxos', 
     'ip': 'xxx.xx.xx.xxx', 
     'username': 'admin', 
     'password': 'xxxxx', 
    } 
    # Connect to TEST switch using Netmiko function "ConnectHandler" 
    net_connect = ConnectHandler(**cisco_asa) 
    print(net_connect.find_prompt()) 
    #move to config menu 
    net_connect.config_mode() 
    print(net_connect.find_prompt()) 

    #set fc_alias 
    fc_alias = "testname" 
    vsan_id = ("1") 
    output = net_connect.send_config_set("fcalias name","fc_alias","vsan",vsan_id) 
    print(output) 

Traceback (most recent call last): 
File "Switches.py", line 43, in <module> 
main() 
File "Switches.py", line 39, in main 
TestSwitch() 
File "Switches.py", line 33, in __init__ 
str.vsan_id = ("1") 
TypeError: can't set attributes of built-in/extension type 'str' 

答えて

0

を生産されてエラーがいくつかの問題があったようです。 1つは、変数fc_aliasを引用符で囲み、正しく呼び出されていないということです。私はnet_connect.send_commandを使用していたはずのときに間違ったコマンド(net_connect.send_config_set)も使用していました。私はまた、文字列と浮動小数点数を使用しようとしていたし、両方を文字列に自動的に変換することができませんでした。両方を文字列に変換するには、コマンドを送信する前に変数に変数を格納しました。

def fc_alias(self): 

# store TEST switch info 

cisco_asa = { 
    'device_type': 'cisco_nxos', 
    'ip': 'xxx.xx.xx.xxx', 
    'username': 'admin', 
    'password': 'xxxxx', 
} 
# Connect to TEST switch using Netmiko function "ConnectHandler" 
net_connect = ConnectHandler(**cisco_asa) 
print(net_connect.find_prompt()) 
#move to config menu 
net_connect.config_mode() 
print(net_connect.find_prompt()) 

#set fc_alias 
vsan_id = ("1") 
fc_alias = "testname" 
fc_alias2 = ("fcalias name "+fc_alias+ " vsan " +vsan_id) 
output = net_connect.send_config_set(fc_alias2) 
print(output) 
関連する問題