2017-06-28 10 views
0

背景

フロントエンドとバックエンドのvlansを指定してVSIを注文すると例外が発生します。ソフト層API:2つのVLANを識別する方法は、VLANルータのペアに一致していますか?

VLANの注文発注パラは、フローとして

order_template = {... 
'virtualGuests': [{'primaryBackendNetworkComponent': {'networkVlan': {'id': 2058375}}, 'domain': 'xxx', 'hostname': 'xxx', 'primaryNetworkComponent': {'networkVlan': {'id': 1698647}} 
...} 

として例外をマークされている:

SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception_Public): When specifying frontend and backend VLANs, they must be on the appropriate router pair. The specified backend VLAN is on router `bcr02a.hkg02`, so the specified frontend VLAN should be on router `fcr02a.hkg02`. However, the specified frontend VLAN is on router `fcr01a.hkg02`. Please specify a matching VLAN router pair. 

私はfcr01abcr01aに一致しなければならないことが知られて。

#get vlan info 
object_mask = 'mask[id,name,primarySubnetId,vlanNumber,networkSpace,primaryRouter[id,datacenter[id,name]]]' 
account.getNetworkVlans(mask=object_mask) 

結果:

vlans = [ 
       {'primaryRouter': {'datacenter': {'id': 352494, 'name': 'hkg02'}, 'id': 212460}, 'primarySubnetId': 987829, 'vlanNumber': 1461, 'id': 1698651},...] 

質問

はどのようにしてフロントエンドとbakcendはVLANのルータのペアに一致するか、されないがチェックするために多くの情報を得ることができますか?

または、account.getNetworkVlansを呼び出すときにfcr01a.hkg02を取得するようにマスクを設定するにはどうすればよいですか?

または、ペア関係を特定するための他のVLAN情報がありますか?

答えて

0

vlanペアのルーティングに関する詳細情報を入手するには、Product_Order :: getVlansが注文時に使用可能なプライベートVLANと公開VLANを取得するのに役立ちます。値(352494)として指定したlocationIdを使用して、この値は、placeOrderメソッドで使用しているデータセンターと一致する必要があることを忘れないでください。たとえば、あなたのPythonスクリプトでこれを使用します。

locationId = 352494 #location id for Hong Kong 02 datacenter 
packageId = 46 #package for VSI. 

result = client['Product_Order'].getVlans(locationId, packageId) 

それとも、新しいアカウントを使用して、より良いスクリプトについては、次のURLを検討することができる:: getNetworkVlans Ordering Softlayer Vlan pairs

あなたは、プロパティ「ホスト名」を追加することによって、あなたのコードを向上させることがあなたのマスクと必要な値を検索するには、オブジェクトフィルタを使用して、あなたのコードの次のような改善してみてください可能性があります。詳細については

objectMask=mask[id,name,primarySubnetId,vlanNumber,networkSpace,primaryRouter[id,hostname, datacenter[id,name]]] 
objectFilter={"networkVlans":{"primaryRouter":{"hostname":{"operation":"fcr01a.hkg02"}}}} 

account.getNetworkVlans(mask=object_mask, filter=objectFilter) 

を下記を参照してください。 https://sldn.softlayer.com/reference/services/SoftLayer_Product_Order/getVlans

+0

ご返事ありがとうございます。あなたが提供したオブジェクトマスクは、VLANのホスト名を取得するのに役立ちます。次に、bcr02a.hkg02とfcr02a.hkg02のようなホスト名に従ってペア関係を調べることができます。マスクをソフトレイヤーAPIに設定すると、オブジェクトマスクが増えるのですが、どうすればいいのでしょうか?通常、私はsldnに応じて使用するapiを知っていますが、どのマスク項目を使用して詳細情報を取得することができるのか混乱しています... –

+0

この記事を読むことをお勧めします。https://sldn.softlayer.com/article/object-masks、オブジェクトマスクでどの項目を使用できるかを知るには、例えばhttp://sldn.softlayer.com/reference/services/SoftLayer_Account/getNetworkVlansメソッドがhttp:// sldn型のデータを返すなどのドキュメントを参照する必要があります。 .softlayer.com/reference/datatypes/SoftLayer_Network_Vlanをクリックすると、そこにあるすべてのアイテムが表示され、オブジェクトマスクで使用できます。あなたが見ることができるように、あなたの要求が返すデータ型を知る必要があるだけで、ドキュメンテーションでそのマスクのすべての有効な項目を見ることができます –

関連する問題