def _get_omega_from_apikey(userid, apikey, api_url=None, requested_userid=None, qualifier=None, view=False): """ setup an Omega instance from userid and apikey :param userid: the userid :param apikey: the apikey :param api_url: the api URL :param requested_userid: the userid to request config for. in this case userid and apikey must for a staff user for the request to succeed :param qualifier: the database qualifier requested. defaults to 'default' :returns: OmegaCloud instance configured for the given user Returns: OmegaCloud """ from omegaml.client.cloud import OmegaCloud from omegaml import settings, _base_config defaults = settings(reload=True) qualifier = qualifier or 'default' defaults.OMEGA_USERID = userid defaults.OMEGA_APIKEY = apikey defaults.OMEGA_QUALIFIER = qualifier api_url = ensure_api_url(api_url, defaults) auth_env = AuthenticationEnv.secure() if api_url.startswith('http') or any('test' in v for v in sys.argv): configs = auth_env.get_userconfig_from_api( requested_userid=requested_userid, view=view, defaults=defaults) configs = configs['objects'][0]['data'] elif api_url == 'local': configs = { k: getattr(defaults, k) for k in dir(defaults) if k.startswith('OMEGA') } else: raise ValueError('invalid api_url {}'.format(api_url)) config = configs.get(qualifier, configs) # update _base_config.update_from_dict(config, attrs=defaults) _base_config.update_from_config(defaults) _base_config.load_framework_support(defaults) _base_config.load_user_extensions(defaults) auth = auth_env.get_runtime_auth(defaults) om = OmegaCloud(defaults=defaults, auth=auth) # update config to reflect request om.defaults.OMEGA_RESTAPI_URL = api_url om.defaults.OMEGA_USERID = userid om.defaults.OMEGA_APIKEY = apikey om.defaults.OMEGA_QUALIFIER = qualifier return om
def _get_omega_from_config(configfile, qualifier=None): from omegaml import Omega from omegaml import settings, _base_config defaults = settings() with open(configfile, 'r') as fconfig: configs = yaml.safe_load(fconfig) qualifier = qualifier or 'default' if qualifier == 'default': config = configs.get(qualifier, configs) else: config = configs[qualifier] _base_config.update_from_dict(config, attrs=defaults) settings(reload=True) om = Omega(defaults=defaults) return om
def get_omega_from_apikey(userid, apikey, api_url=None, requested_userid=None, qualifier=None, view=False): """ setup an Omega instance from userid and apikey :param userid: the userid :param apikey: the apikey :param api_url: the api URL :param requested_userid: the userid to request config for. in this case userid and apikey must for a staff user for the request to succeed :param qualifier: the database qualifier requested. defaults to 'default' :returns: the Omega instance configured for the given user """ from omegaml import Omega from omegaml import settings, _base_config defaults = settings() qualifier = qualifier or 'default' api_url = api_url or defaults.OMEGA_RESTAPI_URL if api_url.startswith('http') or any('test' in v for v in sys.argv): api_auth = OmegaRestApiAuth(userid, apikey) configs = get_user_config_from_api(api_auth, api_url=api_url, requested_userid=requested_userid, view=view) configs = configs['objects'][0]['data'] elif api_url == 'local': configs = { k: getattr(defaults, k) for k in dir(defaults) if k.startswith('OMEGA') } else: raise ValueError('invalid api_url {}'.format(api_url)) if qualifier == 'default': config = configs.get(qualifier, configs) else: config = configs[qualifier] _base_config.update_from_dict(config) settings(reload=True) om = Omega(defaults=defaults) return om