I am trying to get the list of all compartments (including child compartments) in OCI Tenancy using Python SDK.
But the below OCI API does not give the root compartment details.
Is there a way to get root compartment details via any API directly?
Below is my code:
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 does not contain the root compartment details.
Please help.
Edit 1:
COMPARTMENT_ID given above in the code is the root compartment ID. I need the details of even this root compartment in the final response of API.
list_compartments gives details of all the sub-compartments under a particular compartment OCID provided to the API.
If you are providing root compartment OCID to this API then it will give all the compartment details under root compartment excluding the root.
For appending the root compartment details, below API can be used. I am not aware of any other OCI API to accomplish this task.
Hope this helps you.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With