2016-07-22 36 views
0

以下api调用不会返回错误并且似乎可以正常工作,但vlan实际上并未获得中继。相反,我们必须手动接触到SoftLayer,并让它们将vlan中继到指定的设备。SoftLayer对trunk vlan的API调用失败

这是API调用,在Python,尽管它应该是其他语言的相似:

client['Network_Component'].addNetworkVlanTrunks([{'id': 121212}], id=565656) 

可悲的是,SoftLayer的是无法考证或通过其内部的票务系统在所有解决这个问题。相反,他们告诉我们在这里发布这个问题,因为这显然是他们的“API专家”在哪里闲逛。

有没有人有洞察力,他们可以分享有关这个API调用?

回答

0

您用于添加networkVlanTrunks的api调用工作正常。

如果要检查是否已成功加入VLAN中继,您应检查上行分量及其networkVlanTrunks,因为在这个环节上说:SoftLayer_Network_Component::addNetworkVlanTrunks

尝试以下Python脚本它:

""" 
This script Retrieve the network component linking this object to parent and 
their network vlan trunks 

See below references for more details. 
Important manual pages: 
http://sldn.softlayer.com/reference/services/SoftLayer_Network_Component/getUplinkComponent 
http://sldn.softlayer.com/article/object-masks 

@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 an object mask to get network vlan trunks 
mask = 'mask[networkVlanTrunks]' 

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

我做了一些测试,我验证了VLAN中继成功添加。

我希望它有帮助。 请让我知道任何疑问或评论。

+0

谢谢Ruber。但是我所说的是,API调用将VLAN标记为中继,并且报告它是中继,而事实上中继从未发生过。我们通过测试流量来验证这一点,然后看到没有收到VRRP广告,然后通过与SL联系,经过一些故障排除后,发现VLAN实际上并没有中继,并且不得不手动中继它 - 这违背了自动化的目的通过API。 我们打开了一张SoftLayer的门票,并被告知要问这里(他们的api专家在哪里),我们的门票已关闭。那么解决方案的下一步是什么? – pgra

+0

据我所知,vlan中继的配置是通过第3层完成的。如果你想测试vlan,显然你需要在第1层(为你的vlan中继配置你的服务器)中配置它,如果你需要更多的帮助有此问题或对此有任何疑问,请向softlayer(网络)提交一张票。如果有必要,请附上此论坛。 –

+0

我明白了。我们的服务器配置正确,但正如我所说的,没有执行中继。这是问题,这是没有人愿意真正测试的部分。说它行得通,并且系统表示它做了中继与测试它不一样。在我们的生产集群中,当集群没有完成时,事情就被打破了。我如何让SoftLayer的某个人进行api调用,并手动验证中继是否可用? – pgra