oracle云基础设施-获取OCI Tenancy中所有隔间的列表



我正在尝试使用Python SDK获取OCI Tenancy中所有compartments(包括子隔间(的列表。

但是下面的OCI API没有给出root compartment的细节。

有没有办法通过任何API直接获取root compartment的详细信息?

以下是我的代码:

import oci
from oci.config import from_file
from oci.signer import Signer
config = from_file()
COMPARTMENT_ID="ocid1.tenancy.oc1..a"
identity_client = oci.identity.IdentityClient(config)
list_compartments_response = identity_client.list_compartments(
compartment_id=COMPARTMENT_ID,
compartment_id_in_subtree=True)
compartmentlist = list_compartments_response.data

compartmentlistdict不包含root compartment的详细信息。

请帮忙。

编辑1:

上述代码中给出的CCD_ 9就是CCD_。在API的最终响应中,我甚至需要这个root compartment的详细信息。

list_compartments给出了提供给API的特定compartment OCID下的所有sub-compartments的详细信息。

如果您向此API提供root compartment OCID,则它将提供root compartment下的所有compartment详细信息,不包括root

为了附加root compartment的详细信息,可以使用下面的API。我不知道还有其他OCI API可以完成这项任务。

希望这对你有帮助。

import oci
from oci.config import from_file
config = from_file()  # Config file is read from user's home location i.e., ~/.oci/config
COMPARTMENT_ID="ocid1.tenancy.oc1..a" # root compartment OCID
identity_client = oci.identity.IdentityClient(config)
list_compartments_response = identity_client.list_compartments(
compartment_id=COMPARTMENT_ID,
compartment_id_in_subtree=True)
# Get the list of compartments including child compartments except root compartment
compartmentlist = list_compartments_response.data
# Get the details of root compartment & append to the compartment list so that we have the full list of compartments in the given tenancy
root_compartment = identity_client.get_compartment(
compartment_id=COMPARTMENT_ID).data
compartmentlist.append(root_compartment)

最新更新