File tree Expand file tree Collapse file tree 6 files changed +48
-13
lines changed Expand file tree Collapse file tree 6 files changed +48
-13
lines changed Original file line number Diff line number Diff line change 66
77import logging
88import sys
9+ import os
10+ from ads .aqua .utils import fetch_service_compartment
11+
912
1013logger = logging .getLogger (__name__ )
1114handler = logging .StreamHandler (sys .stdout )
1215logger .setLevel (logging .INFO )
16+
17+
18+ ODSC_MODEL_COMPARTMENT_OCID = os .environ .get ("ODSC_MODEL_COMPARTMENT_OCID" )
19+ if not ODSC_MODEL_COMPARTMENT_OCID :
20+ try :
21+ ODSC_MODEL_COMPARTMENT_OCID = fetch_service_compartment ()
22+ except :
23+ logger .error (
24+ "ODSC_MODEL_COMPARTMENT_OCID environment variable is not set for Aqua."
25+ )
Original file line number Diff line number Diff line change 77from importlib import metadata
88
99from ads .aqua .extension .base_handler import AquaAPIhandler
10+ from ads .aqua import ODSC_MODEL_COMPARTMENT_OCID
11+ from ads .aqua .exception import AquaResourceAccessError
1012
1113
1214class ADSVersionHandler (AquaAPIhandler ):
@@ -16,6 +18,19 @@ def get(self):
1618 self .finish ({"data" : metadata .version ("oracle_ads" )})
1719
1820
21+ class CompatibilityCheckHandler (AquaAPIhandler ):
22+ """The handler to check if the extension is compatible."""
23+
24+ def get (self ):
25+ if ODSC_MODEL_COMPARTMENT_OCID :
26+ return self .finish (dict (status = "ok" ))
27+ else :
28+ raise AquaResourceAccessError (
29+ f"The AI Quick actions extension is not compatible in the given region."
30+ )
31+
32+
1933__handlers__ = [
2034 ("ads_version" , ADSVersionHandler ),
35+ ("hello" , CompatibilityCheckHandler ),
2136]
Original file line number Diff line number Diff line change 4747 AQUA_SERVICE_MODELS_BUCKET ,
4848 COMPARTMENT_OCID ,
4949 CONDA_BUCKET_NS ,
50- ODSC_MODEL_COMPARTMENT_OCID ,
5150 PROJECT_OCID ,
5251 TENANCY_OCID ,
5352)
53+ from ads .aqua import ODSC_MODEL_COMPARTMENT_OCID
5454from ads .model import DataScienceModel
5555from ads .model .model_metadata import MetadataTaxonomyKeys , ModelCustomMetadata
5656from ads .telemetry import telemetry
Original file line number Diff line number Diff line change 2929from ads .common .oci_resource import SEARCH_TYPE , OCIResource
3030from ads .common .utils import get_console_link , upload_to_os
3131from ads .config import (
32- AQUA_CONFIG_FOLDER ,
3332 AQUA_SERVICE_MODELS_BUCKET ,
3433 CONDA_BUCKET_NS ,
3534 TENANCY_OCID ,
4544README = "README.md"
4645LICENSE_TXT = "config/LICENSE.txt"
4746DEPLOYMENT_CONFIG = "deployment_config.json"
47+ COMPARTMENT_MAPPING_KEY = "service-model-compartment"
4848CONTAINER_INDEX = "container_index.json"
4949EVALUATION_REPORT_JSON = "report.json"
5050EVALUATION_REPORT_MD = "report.md"
@@ -574,6 +574,22 @@ def get_container_image(
574574 return container_image
575575
576576
577+ def fetch_service_compartment ():
578+ """Loads the compartment mapping json from service bucket"""
579+ config_file_name = (
580+ f"oci://{ AQUA_SERVICE_MODELS_BUCKET } @{ CONDA_BUCKET_NS } /service_models/config"
581+ )
582+
583+ config = load_config (
584+ file_path = config_file_name ,
585+ config_file_name = CONTAINER_INDEX ,
586+ )
587+ compartment_mapping = config .get (COMPARTMENT_MAPPING_KEY )
588+ if compartment_mapping :
589+ return compartment_mapping .get (CONDA_BUCKET_NS )
590+ return None
591+
592+
577593def get_max_version (versions ):
578594 """Takes in a list of versions and returns the higher version."""
579595 if not versions :
Original file line number Diff line number Diff line change 8383AQUA_SERVICE_NAME = "aqua"
8484DATA_SCIENCE_SERVICE_NAME = "data-science"
8585
86- compartment_mapping = {
87- "idoaxnz5ar4s" : "ocid1.compartment.oc1..aaaaaaaabxqyb6w4kj5y4fwwkc47auxdothlqc7jpm3zbah5aamflvp7th3q" ,
88- "id19sfcrra6z" : "ocid1.compartment.oc1..aaaaaaaasdur4tm5apdm6qyapaba7apdiyv22n2mwt6zquyubqevk3uo7nha" ,
89- }
90- default_compartment = compartment_mapping .get (CONDA_BUCKET_NS )
91- ODSC_MODEL_COMPARTMENT_OCID = (
92- default_compartment
93- if default_compartment
94- else os .environ .get ("ODSC_MODEL_COMPARTMENT_OCID" )
95- )
96-
9786
9887def export (
9988 uri : Optional [str ] = DEFAULT_CONFIG_PATH ,
Original file line number Diff line number Diff line change @@ -78,13 +78,15 @@ def setUpClass(cls):
7878 os .environ ["CONDA_BUCKET_NS" ] = "test-namespace"
7979 os .environ ["ODSC_MODEL_COMPARTMENT_OCID" ] = TestDataset .SERVICE_COMPARTMENT_ID
8080 reload (ads .config )
81+ reload (ads .aqua )
8182 reload (ads .aqua .model )
8283
8384 @classmethod
8485 def tearDownClass (cls ):
8586 os .environ .pop ("CONDA_BUCKET_NS" , None )
8687 os .environ .pop ("ODSC_MODEL_COMPARTMENT_OCID" , None )
8788 reload (ads .config )
89+ reload (ads .aqua )
8890 reload (ads .aqua .model )
8991
9092 def test_list_service_models (self ):
You can’t perform that action at this time.
0 commit comments