[vSphere | Python] vSphere Automation SDK for Python Ⅳ——トポロジ API (リンク モード) 拡張リンク モード

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 自動化

おすすめ

転載: blog.csdn.net/NOWSHUT/article/details/130037627