我正在尝试使用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
compartmentlist
dict不包含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)