11. トポロジ API
vCenter トポロジ パッケージは、トポロジ内のすべての vCenter および Platform Services Controller ノードとレプリケーションのステータスを取得するサービスを提供します。
11.1 リストノード
キー方式:topology.Nodes.list()
メソッドの説明: すべての vCenter および Platform Services Controller ノードに関する情報を返します。
メソッドの戻り値:
-
node
: vCenter または Platform Services Controller ノードの識別子。識別子は、ノードの IP アドレスまたは DNS 解決可能な名前にすることができます。 -
type
注: Nodes.ApplianceType 列挙は、vCenter および Platform Services Controller ノードの有効なアプライアンス タイプの値を定義します。VCSA_EMBEDDED
: Platform Services Controller が組み込まれた VCSA。VCSA_EXTERNAL
: 外部 Platform Services Controller を使用する VCSA。PSC_EXTERNAL
: 外部の Platform Services Controller。
可能な値は次のとおりです:
VCSA_EMBEDDED
,VCSA_EXTERNAL
,PSC_EXTERNAL
-
client_affinity
: アフィニティ Platform Services Controller ノードの識別子。識別子は、アフィニティ ノードの IP アドレスまたは DNS 解決可能な名前にすることができます。このフィールドはオプションであり、Nodes.Summary.type の値が VCSA_EXTERNAL の場合にのみ意味があります。 -
replication_partners
: レプリケーション パートナーのノード識別子のリスト。識別子は、パートナー ノードの IP アドレスまたは DNS で解決可能な名前にすることができます。このフィールドはオプションであり、 Nodes.Summary.type の値がVCSA_EMBEDDED
または の場合にのみPSC_EXTERNAL
意味があります。
import time
from vSphere_Automation_SDK.Connect_to_vCenter_Server import vsphere_client
start_time = time.time()
try:
list_topo = vsphere_client.vcenter.topology.Nodes.list()
for i in list_topo:
print(
"Node:".ljust(37), i.node,
"\nType:".ljust(39), i.type,
"\nReplication Partners:".ljust(30), *i.replication_partners,
"\nClient Affinity:".ljust(35), i.client_affinity,
"\n---------------------------"
)
except Exception as err:
for i in err.messages:
id = i.id,
default_message = i.default_message
args = i.args
params = i.params
localized = i.localized
print("\033[1;31m Encountered an error, Please see the following information \033[0m",
"\n\tError Class:", id,
"\n\tMessage:", default_message,
"\n\tArgs:", args,
"\n\tParams:", params,
"\n\tLocalized:", localized,
"\nError Data:", err.data,
"\nError Type:", err.error_type
)
end_time = time.time()
run_time = end_time - start_time
print("Used Time:".ljust(33), run_time)
スクリプト効果:
スター トポロジ: vc7-1 がマスター ノード
リング トポロジ:
11.2 ノードを取得する
キー方式:topology.Nodes.get("node_name")
メソッドの説明: vCenter または Platform Services Controller ノードの特定の識別子の詳細を取得します。
メソッドの戻り値:
-
domain
: vCenter または Platform Services Controller ノードの識別子。識別子は、ノードの IP アドレスまたは DNS 解決可能な名前にすることができます。 -
type
注: Nodes.ApplianceType 列挙は、vCenter および Platform Services Controller ノードの有効なアプライアンス タイプの値を定義します。VCSA_EMBEDDED
: Platform Services Controller が組み込まれた VCSA。VCSA_EXTERNAL
: 外部 Platform Services Controller を使用する VCSA。PSC_EXTERNAL
: 外部の Platform Services Controller。
可能な値は次のとおりです:
VCSA_EMBEDDED
,VCSA_EXTERNAL
,PSC_EXTERNAL
-
client_affinity
: アフィニティ Platform Services Controller ノードの識別子。識別子は、アフィニティ ノードの IP アドレスまたは DNS 解決可能な名前にすることができます。このフィールドはオプションであり、Nodes.Summary.type の値が VCSA_EXTERNAL の場合にのみ意味があります。 -
replication_partners
: レプリケーション パートナーのノード識別子のリスト。識別子は、パートナー ノードの IP アドレスまたは DNS で解決可能な名前にすることができます。このフィールドはオプションであり、 Nodes.Summary.type の値がVCSA_EMBEDDED
または の場合にのみPSC_EXTERNAL
意味があります。
import time
from vSphere_Automation_SDK.Connect_to_vCenter_Server import vsphere_client
start_time = time.time()
try:
get_topo = vsphere_client.vcenter.topology.Nodes.get("vc7-1.yz.local")
print(
"Domain:".ljust(35), get_topo.domain,
"\nType:".ljust(38), get_topo.type,
"\nReplication Partners:".ljust(30), *get_topo.replication_partners,
"\nClient Affinity:".ljust(34), get_topo.client_affinity,
)
except Exception as err:
for i in err.messages:
id = i.id,
default_message = i.default_message
args = i.args
params = i.params
localized = i.localized
print("\033[1;31m Encountered an error, Please see the following information \033[0m",
"\n\tError Class:", id,
"\n\tMessage:", default_message,
"\n\tArgs:", args,
"\n\tParams:", params,
"\n\tLocalized:", localized,
"\nError Data:", err.data,
"\nError Type:", err.error_type
)
end_time = time.time()
run_time = end_time - start_time
print("Used Time:".ljust(33), run_time)
スクリプト効果:
11.3 リスト複製ステータス
キー方式:topology.ReplicationStatus.list()
メソッドの説明:タイプ VCSA_EMBEDDED/PSC_EXTERNAL の vCenter および Platform Services Controller ノードのレプリケーション情報を返します。
戻り値の説明:
node
: vCenter または Platform Services Controller ノードの識別子。識別子は、ノードの IP アドレスまたは DNS 解決可能な名前にすることができます。弦。partner_available
: パートナーの VMware ディレクトリ サービスに到達できるかどうかを示します。ブール値。replication_partner
: vCenter または Platform Services Controller レプリケーション パートナーの識別子。識別子は、複製パートナーの IP アドレスまたは DNS で解決可能な名前にすることができます。弦。status_available
: レプリケーション パートナーに関するノードのレプリケーション ステータスを取得できるかどうかを示します。ブール値。Change_lag
: レプリケーション パートナーの背後で変更をレプリケートするノードの数。パートナー ホストまたはレプリケーション ステータスが利用できない場合、このフィールドは設定されません。整数。replicating
: ノードがレプリケーション パートナーからのレプリケーションの変更を処理しているかどうかを示します。パートナー ホストまたはレプリケーション ステータスが利用できない場合、このフィールドは設定されません。つまり、partner_available 値は false です。ブール値。
import time
from vSphere_Automation_SDK.Connect_to_vCenter_Server import vsphere_client
start_time = time.time()
try:
list_topo = vsphere_client.vcenter.topology.ReplicationStatus.list()
for i in list_topo:
print(
"Node:".ljust(36), i.node,
"\nReplication Partner:".ljust(30), i.replication_partner,
"\nPartner Available:".ljust(31), i.partner_available,
"\nStatus Available:".ljust(32), i.status_available,
"\nReplicating:".ljust(35), i.replicating,
"\nChange Lag:".ljust(33), i.change_lag,
"\n---------------------------"
)
except Exception as err:
for i in err.messages:
id = i.id,
default_message = i.default_message
args = i.args
params = i.params
localized = i.localized
print("\033[1;31m Encountered an error, Please see the following information \033[0m",
"\n\tError Class:", id,
"\n\tMessage:", default_message,
"\n\tArgs:", args,
"\n\tParams:", params,
"\n\tLocalized:", localized,
"\nError Data:", err.data,
"\nError Type:", err.error_type
)
end_time = time.time()
run_time = end_time - start_time
print("Used Time:".ljust(43), run_time)
スクリプト効果:
参考文献
vCenter REST API v7.0U3
vSphere-Python-Automation-Scripts/v1/
このコラムの他のブログ投稿については、次のコラムに注目してください。vSphere Python 自動化に関するコンテンツがさらに増える予定です。vSphere Python 自動化