SoftLayer_ObjectMask 对于 SoftLayer_Network_Gateway_Vlan::getObject
SoftLayer_ObjectMask for SoftLayer_Network_Gateway_Vlan::getObject
我想在 Python 中使用 SoftLayer_Network_Gateway_Vlan::getObject 以便在使用 createObject 之前检查 VLAN 是否已连接到网关。
我用这样一段代码createObject没问题:
obj = {'bypassFlag':False, 'id':None, 'networkGatewayId':module.params['gateway_id'], 'networkVlanId':module.params['vlan_id']}
try:
res = env['Network_Gateway_Vlan'].createObject(obj)
except SoftLayer.exceptions.SoftLayerAPIError as e:
module.fail_json(msg=e.faultString)
但我不知道如何编写一段代码来检索已连接到网关的 VLAN 列表:(
如果有人有关于使用 getObject 方法的示例,那就太好了,谢谢!
为什么不只使用方法 getNetworkVlan?方法 returns 关联到 SoftLayer_Network_Gateway_Vlan 的 VLAN。
但是如果你想使用 getObject 方法,这是你需要使用的掩码:
env['SoftLayer_Network_Gateway_Vlan'].getObject(id= myIdGatewayVlan, mask= "mask[networkVlan]")
不过我觉得用这个比较好:
env['SoftLayer_Account'].getNetworkGateways( mask="mask[insideVlans[networkVlan]]")
这将列出您帐户中的所有网关及其关联的 vlan。
或者更好的是,你可以使用过滤器来检查 VLAN 是否已经设置在任何
SoftLayer_Network_Gateway_Vlan
env['SoftLayer_Account'].getNetworkGateways( mask="mask[insideVlans[networkVlan]]", filter={"networkGateways":{"insideVlans":{"networkVlan":{"id":{"operation":1319435}}}}})
注意:将 1319435 替换为您要检查的 VLAN 的 ID
如果上面的请求 returns 为空,则 VLAN 未附加到任何 SoftLayer_Network_Gateway_Vlan
我想在 Python 中使用 SoftLayer_Network_Gateway_Vlan::getObject 以便在使用 createObject 之前检查 VLAN 是否已连接到网关。 我用这样一段代码createObject没问题:
obj = {'bypassFlag':False, 'id':None, 'networkGatewayId':module.params['gateway_id'], 'networkVlanId':module.params['vlan_id']}
try:
res = env['Network_Gateway_Vlan'].createObject(obj)
except SoftLayer.exceptions.SoftLayerAPIError as e:
module.fail_json(msg=e.faultString)
但我不知道如何编写一段代码来检索已连接到网关的 VLAN 列表:(
如果有人有关于使用 getObject 方法的示例,那就太好了,谢谢!
为什么不只使用方法 getNetworkVlan?方法 returns 关联到 SoftLayer_Network_Gateway_Vlan 的 VLAN。
但是如果你想使用 getObject 方法,这是你需要使用的掩码:
env['SoftLayer_Network_Gateway_Vlan'].getObject(id= myIdGatewayVlan, mask= "mask[networkVlan]")
不过我觉得用这个比较好:
env['SoftLayer_Account'].getNetworkGateways( mask="mask[insideVlans[networkVlan]]")
这将列出您帐户中的所有网关及其关联的 vlan。
或者更好的是,你可以使用过滤器来检查 VLAN 是否已经设置在任何 SoftLayer_Network_Gateway_Vlan
env['SoftLayer_Account'].getNetworkGateways( mask="mask[insideVlans[networkVlan]]", filter={"networkGateways":{"insideVlans":{"networkVlan":{"id":{"operation":1319435}}}}})
注意:将 1319435 替换为您要检查的 VLAN 的 ID 如果上面的请求 returns 为空,则 VLAN 未附加到任何 SoftLayer_Network_Gateway_Vlan