class __InternalConfig: def __init__(self): self._home = None self.logging_level = logging.DEBUG DatmoLogger.get_logger(__name__).info("initalizing") self.data_cache = JSONStore( os.path.join(os.path.expanduser("~"), ".datmo", "cache.json")) @property def home(self): return self._home @home.setter def home(self, home_path): self._home = home_path def get_cache_item(self, key): cache_expire_key = 'cache_key_expires.' + key cache_key = 'cache_key.' + key cache_expire_val = self.data_cache.get(cache_expire_key) # no cache expire val, it's not stored if cache_expire_val == None: return None # return value if item has not expired elif int(cache_expire_val) > int( datetime.datetime.now().strftime('%s')): return self.data_cache.get(cache_key) # expire item and return None else: self.data_cache.remove(cache_expire_key) self.data_cache.remove(cache_key) return None def set_cache_item(self, key, value, duration=60): cache_expire_key = 'cache_key_expires.' + key cache_key = 'cache_key.' + key expire_val = (duration * 60) + int( datetime.datetime.now().strftime('%s')) self.data_cache.save(cache_expire_key, expire_val) self.data_cache.save(cache_key, value)
class __InternalConfig: def __init__(self): self._home = None self.datmo_directory_name = ".datmo" self.logging_level = logging.DEBUG DatmoLogger.get_logger(__name__).info("initializing") self.data_cache = JSONStore( os.path.join(os.path.expanduser("~"), ".datmo", "cache.json")) self.docker_cli = '/usr/bin/docker' @property def home(self): return self._home @property def remote_credentials(self): """ Returns credentials if present Returns ------- MASTER_SERVER_IP : str return if present else None DATMO_API_KEY : str return if present else None END_POINT : str return if present else None """ # 1) Load from the environment if datmo config not already saved globally MASTER_SERVER_IP = os.environ.get('MASTER_SERVER_IP', None) DATMO_API_KEY = os.environ.get('DATMO_API_KEY', None) # 2) loading the datmo config if present datmo_config_filepath = os.path.join(os.path.expanduser("~"), ".datmo", "config") if os.path.isfile(datmo_config_filepath): datmo_config = JSONStore(datmo_config_filepath) config_dict = datmo_config.to_dict() if MASTER_SERVER_IP is None: MASTER_SERVER_IP = config_dict.get('MASTER_SERVER_IP', None) if DATMO_API_KEY is None: DATMO_API_KEY = config_dict.get('DATMO_API_KEY', None) if MASTER_SERVER_IP: END_POINT = 'http://' + MASTER_SERVER_IP + ':2083/api/v1' else: END_POINT = None return MASTER_SERVER_IP, DATMO_API_KEY, END_POINT def set_home(self, home_path): self._home = home_path def get_cache_item(self, key): cache_expire_key = 'cache_key_expires.' + key cache_key = 'cache_key.' + key cache_expire_val = self.data_cache.get(cache_expire_key) # no cache expire val, it's not stored if cache_expire_val == None: return None # return value if item has not expired elif int(cache_expire_val) > int( datetime.datetime.now().strftime('%s')): return self.data_cache.get(cache_key) # expire item and return None else: self.data_cache.remove(cache_expire_key) self.data_cache.remove(cache_key) return None def set_cache_item(self, key, value, duration=60): cache_expire_key = 'cache_key_expires.' + key cache_key = 'cache_key.' + key expire_val = (duration * 60) + int( datetime.datetime.now().strftime('%s')) self.data_cache.save(cache_expire_key, expire_val) self.data_cache.save(cache_key, value)