2016-07-22 9 views
0

Ich habe versucht, Softlayer API zu verwenden, um Stamm zu erhalten/zu entfernen/hinzuzufügen. http://sldn.softlayer.com/reference/services/SoftLayer_Network_ComponentSoftlayer-API für VLAN-Trunk

Unser Baremetal wurde bereits von Softlayer Ticket gebündelt. Wir wollen zuerst den Kofferraum entfernen. und dann trunk hinzufügen.

Wir könnten NetworkVlanTrunks mit baremetal uplinkComponent ID bekommen. Hier client['SoftLayer_Network_Component'].getNetworkVlanTrunks(id=networkcomponentId)

ist die Ausgabe von get Stamm:

[{'networkComponentId': <networkcomponentId>, 'networkVlanId': <vlanid-1>}, {'networkComponentId': <networkcomponentId>, 'networkVlanId': <vlanid-2>}]

Jetzt wollen wir Stamm vlanid-2 entfernen.

vlan = client['Network_Vlan'].getObject(id=<vlanid-2>) client['SoftLayer_Network_Component'].removeNetworkVlanTrunks([vlan], id=networkcomponentId)

Allerdings haben wir diesen Fehler, wenn removeNetworkVlanTrunks:

File "/usr/lib64/python2.7/site-packages/SoftLayer/transports.py", line 187, in __call__ raise _ex(ex.faultCode, ex.faultString) SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception_InternalError): An internal system error has occurred.

Weiß jemand, wie das passieren? Verwenden wir die richtige networkComponentID zum Entfernen? Kann jemand die addNetworkVlanTrunks verwenden?

+0

Sie sollten vorsichtiger sein über die Codeformatierung, siehe http://stackoverflow.com/editing-help#comment-formatierung –

Antwort

0

Um zu überprüfen, ob die vlans wurden hinzugefügt oder erfolgreich, versuchen Sie den folgenden Python-Skript entfernt:

""" 
This script removes the network vlan trunks from network component 

See below references for more details. 
Important manual pages: 
http://sldn.softlayer.com/reference/services/SoftLayer_Network_Component/addNetworkVlanTrunks 

@License: http://sldn.softlayer.com/article/License 
@Author: SoftLayer Technologies, Inc. <[email protected]> 
""" 
import SoftLayer 
from pprint import pprint as pp 

# Your SoftLayer username and apiKey 
user = 'set me' 
api = 'set me' 

# Connect to SoftLayer 
client = SoftLayer.create_client_from_env(username=user, api_key=api) 

# Define the network component id 
networkComponentId = 916616 

# Define the network vlans that you wish to remove 
networkVlans = [{"id": 1318157}] 

try: 
    result = client['SoftLayer_Network_Component'].removeNetworkVlanTrunks(networkVlans, id=networkComponentId) 
    pp(result) 
except SoftLayer.SoftLayerAPIError as e: 
    print('Error faultCode=%s, faultString=%s' 
      % (e.faultCode, e.faultString)) 
    exit(1) 

Um einen VLAN-Trunk von Netzwerkkomponente zu entfernen, gehen Sie folgendermaßen vor:

""" 
This script removes the network vlan trunks from network component 

See below references for more details. 
Important manual pages: 
http://sldn.softlayer.com/reference/services/SoftLayer_Network_Component/addNetworkVlanTrunks 

@License: http://sldn.softlayer.com/article/License 
@Author: SoftLayer Technologies, Inc. <[email protected]> 
""" 
import SoftLayer 
from pprint import pprint as pp 

# Your SoftLayer username and apiKey 
user = 'set me' 
api = 'set me' 

# Connect to SoftLayer 
client = SoftLayer.create_client_from_env(username=user, api_key=api) 

# Define the network component id 
networkComponentId = 916616 

# Define the network vlans that you wish to remove 
networkVlans = [{"id": 1318157}] 

try: 
    result = client['SoftLayer_Network_Component'].removeNetworkVlanTrunks(networkVlans, id=networkComponentId) 
    pp(result) 
except SoftLayer.SoftLayerAPIError as e: 
    print('Error faultCode=%s, faultString=%s' 
      % (e.faultCode, e.faultString)) 
    exit(1) 

Zum Hinzufügen von Netzwerk VLAN Trunks ist die gleiche Idee als entfernen, trotzdem hier ist die Methode:

Ich hoffe, es hilft. Lassen Sie es mich wissen, wenn Sie ein Problem oder Zweifel daran haben.

+0

Ich habe es mit Ihrem Code versucht. Aber, erhalten Sie immer noch einen internen Fehler, wenn Sie den Trunk entfernen. 'NetworkcomponentId = 5253429 networkVlans = [{ "id": 1.231.207}] try: removetrunk = network_component.removeNetworkVlanTrunks (networkVlans, id = networkcomponentId) außer SoftLayer.SoftLayerAPIError als e: print ('Fehler faultCode =% s , faultString =% s' % (e.faultCode, e.faultString)) exit (1) ' – yqdou

+0

Hier ist der Fehlerausnahme:' Fehler faultCode = SoftLayer_Exception_InternalError, faultString = ein interner Systemfehler hat occurred.' – yqdou

+0

Diese Ausnahme bezieht sich auf die Berechtigung oder den Gerätezugriff. Vergewissern Sie sich, dass die ** Hardware-Details anzeigen ** -Berechtigung aktiviert ist und Sie über den richtigen Zugriff ** auf das Hardware ** -Gerät verfügen, zu dem die Netzwerkkomponente gehört. –