in mds_plugin/general.py [0:0]
def ls(compartment_path="", compartment_id=None, config=None):
"""Lists the compartment's sub-compartments and other resources
This function will list all sub-compartments of the compartment with the
given current_id. If current_id is omitted, all compartments are listed.
Args:
compartment_path (str): The compartment path.
compartment_id (str): OCID of the parent compartment.
config (dictionary): An OCI config object or None.
Returns:
None
If compartment_path and the compartment_id are omitted, the current
compartment's sub-compartments are listed.
"""
# Get the active config, compartment and instance
try:
config = configuration.get_current_config(config=config)
compartment_id = configuration.get_current_compartment_id(
compartment_id=compartment_id, config=config)
except ValueError as e:
print(f"ERROR: {str(e)}")
return
import oci.identity
import oci.util
import re
from mds_plugin import compartment, mysql_database_service, compute
from mds_plugin import object_store, bastion
if compartment_path != "":
compartment_id = compartment.get_compartment_id_by_path(
compartment_path=compartment_path, compartment_id=compartment_id,
config=config)
comp_list = ""
db_sys_list = ""
compute_list = ""
bucket_list = ""
bastion_list = ""
try:
comp_list = ""
if compartment_id is not None:
# Get the full path of this tenancy
full_path = compartment.get_compartment_full_path(
compartment_id, config)
print(f"Directory of compartment {full_path}\n")
comp_list = compartment.list_compartments(
compartment_id=compartment_id, config=config, interactive=False,
raise_exceptions=True, return_formatted=True)
# List Child Compartments
if comp_list:
print("Child Compartments:")
print(comp_list)
except oci.exceptions.ServiceError as e:
# If a 404 error occurs, the user does not have privileges to list items
if e.status == 404:
print("No privileges to list compartments.")
else:
print(f'ERROR: {e.message}. (Code: {e.code}; Status: {e.status})')
return
except Exception as e:
print(f'ERROR: {e}')
return
try:
# List MySQL DB Systems
db_sys_list = mysql_database_service.list_db_systems(
compartment_id=compartment_id, config=config, interactive=False,
raise_exceptions=True, return_formatted=True)
if db_sys_list:
print("MySQL DB Systems:")
print(db_sys_list)
except oci.exceptions.ServiceError as e:
# If a 404 error occurs, the user does not have privileges to list items
if e.status == 404:
print("No privileges to list MySQL DB Systems in this "
"compartment.")
else:
print(f'Could not list the MySQL DB Systems.')
print(f'ERROR: {e.message}. (Code: {e.code}; Status: {e.status})')
return
except Exception as e:
print(f'ERROR: {e}')
return
# List Compute Instances
try:
compute_list = compute.list_instances(
compartment_id=compartment_id, config=config, interactive=False,
raise_exceptions=True, return_formatted=True)
if compute_list != "":
print("Compute Instances:")
print(compute_list)
except oci.exceptions.ServiceError as e:
if e.status == 404:
print("No privileges to list the compute instances in this "
"compartment.")
else:
print(f'Could not list the compute instances.')
print(f'ERROR: {e.message}. (Code: {e.code}; Status: {e.status})')
# List Bastions and Sessions
try:
bastion_list = bastion.list_bastions(
compartment_id=compartment_id, config=config, interactive=False,
raise_exceptions=True, return_type=core.RETURN_STR)
if bastion_list != "":
print("Bastions:")
print(bastion_list)
except oci.exceptions.ServiceError as e:
if e.status == 404:
print("No privileges to list the bastions in this "
"compartment.")
else:
print(f'Could not list the bastions.')
print(f'ERROR: {e.message}. (Code: {e.code}; Status: {e.status})')
# List Object Store Buckets
try:
bucket_list = object_store.list_buckets(
compartment_id=compartment_id, config=config, interactive=False,
raise_exceptions=True, return_formatted=True)
if bucket_list != "":
print("Object Store Buckets:")
print(bucket_list)
except oci.exceptions.ServiceError as e:
if e.status == 404:
print('No privileges to list the object store buckets in this '
'compartment.')
else:
print(f'Could not list the object store buckets.')
print(f'ERROR: {e.message}. (Code: {e.code}; Status: {e.status})')
if comp_list == "" and db_sys_list == "" and compute_list == "" and \
bastion_list == "" and bucket_list == "":
print("-\n")