def on_deleted(this, event): path = event.src_path logger.debug("Handling %s" % event) if utils.normalize_local_suffix(path) == root_path: self.settings.set_localfs_enabled(False) msg = messaging.LocalfsSyncDisabled(logger=logger) self.settings.messager.put(msg) return handle_path(path, rec=utils.iswin())
def __init__(self, auth_url, auth_token, container, local_root_path, *args, **kwargs): check_encoding() auth_url = utils.to_unicode(auth_url) auth_token = utils.to_unicode(auth_token) container = utils.to_unicode(container) local_root_path = utils.to_unicode(local_root_path) self.auth_url = utils.normalize_standard_suffix(auth_url) self.auth_token = auth_token self.container = utils.normalize_standard_suffix(container) self.ignore_ssl = kwargs.get("ignore_ssl", False) if self.ignore_ssl: https.patch_ignore_ssl() elif kwargs.get('ca_certs', None): https.patch_with_certs(kwargs['ca_certs']) self.endpoint = self._get_pithos_client( auth_url, auth_token, container) container_exists = self.check_container_exists(container) home_dir = utils.to_unicode(os.path.expanduser('~')) default_settings_path = join_path(home_dir, GLOBAL_SETTINGS_NAME) self.settings_path = utils.to_unicode( kwargs.get("agkyra_path", default_settings_path)) self.create_dir(self.settings_path, mode=stat.S_IRWXU) self.instances_path = join_path(self.settings_path, INSTANCES_NAME) self.create_dir(self.instances_path) self.local_root_path = utils.normalize_local_suffix(local_root_path) local_root_path_exists = os.path.isdir(self.local_root_path) self.cache_name = utils.to_unicode( kwargs.get("cache_name", DEFAULT_CACHE_NAME)) self.cache_path = join_path(self.local_root_path, self.cache_name) self.cache_hide_name = utils.to_unicode( kwargs.get("cache_hide_name", DEFAULT_CACHE_HIDE_NAME)) self.cache_hide_path = join_path(self.cache_path, self.cache_hide_name) self.cache_stage_name = utils.to_unicode( kwargs.get("cache_stage_name", DEFAULT_CACHE_STAGE_NAME)) self.cache_stage_path = join_path(self.cache_path, self.cache_stage_name) self.cache_fetch_name = utils.to_unicode( kwargs.get("cache_fetch_name", DEFAULT_CACHE_FETCH_NAME)) self.cache_fetch_path = join_path(self.cache_path, self.cache_fetch_name) self.user_id = self.endpoint.account self.instance = get_instance( [self.auth_url, self.user_id, self.container, self.local_root_path]) self.instance_path = join_path(self.instances_path, self.instance) self.create_dir(self.instance_path) self.dbname = utils.to_unicode(kwargs.get("dbname", DEFAULT_DBNAME)) self.full_dbname = join_path(self.instance_path, self.dbname) self.syncer_dbtuple = common.DBTuple( dbtype=database.SyncerDB, dbname=self.full_dbname) db_existed = os.path.isfile(self.full_dbname) if not db_existed: database.initialize(self.syncer_dbtuple) self.mtime_lag = 0 self.case_insensitive = False if not db_existed: self.set_localfs_enabled(True) self.create_local_dirs() self.set_pithos_enabled(True) if not container_exists: self.mk_container(container) else: if not local_root_path_exists: self.set_localfs_enabled(False) else: self.create_local_dirs() if not container_exists: self.set_pithos_enabled(False) self.heartbeat = ThreadSafeDict() self.action_max_wait = kwargs.get("action_max_wait", DEFAULT_ACTION_MAX_WAIT) self.pithos_list_interval = kwargs.get("pithos_list_interval", DEFAULT_PITHOS_LIST_INTERVAL) self.connection_retry_limit = kwargs.get( "connection_retry_limit", DEFAULT_CONNECTION_RETRY_LIMIT) self.endpoint.CONNECTION_RETRY_LIMIT = self.connection_retry_limit self.max_alive_sync_threads = kwargs.get( "max_alive_sync_threads", DEFAULT_MAX_ALIVE_SYNC_THREADS) self.messager = Messager()
def __init__(self, auth_url, auth_token, container, local_root_path, *args, **kwargs): check_encoding() auth_url = utils.to_unicode(auth_url) auth_token = utils.to_unicode(auth_token) container = utils.to_unicode(container) local_root_path = utils.to_unicode(local_root_path) self.auth_url = utils.normalize_standard_suffix(auth_url) self.auth_token = auth_token self.container = utils.normalize_standard_suffix(container) self.ignore_ssl = kwargs.get("ignore_ssl", False) if self.ignore_ssl: https.patch_ignore_ssl() elif kwargs.get('ca_certs', None): https.patch_with_certs(kwargs['ca_certs']) self.endpoint = self._get_pithos_client(auth_url, auth_token, container) container_exists = self.check_container_exists(container) home_dir = utils.to_unicode(os.path.expanduser('~')) default_settings_path = join_path(home_dir, GLOBAL_SETTINGS_NAME) self.settings_path = utils.to_unicode( kwargs.get("agkyra_path", default_settings_path)) self.create_dir(self.settings_path, mode=stat.S_IRWXU) self.instances_path = join_path(self.settings_path, INSTANCES_NAME) self.create_dir(self.instances_path) self.local_root_path = utils.normalize_local_suffix(local_root_path) local_root_path_exists = os.path.isdir(self.local_root_path) self.cache_name = utils.to_unicode( kwargs.get("cache_name", DEFAULT_CACHE_NAME)) self.cache_path = join_path(self.local_root_path, self.cache_name) self.cache_hide_name = utils.to_unicode( kwargs.get("cache_hide_name", DEFAULT_CACHE_HIDE_NAME)) self.cache_hide_path = join_path(self.cache_path, self.cache_hide_name) self.cache_stage_name = utils.to_unicode( kwargs.get("cache_stage_name", DEFAULT_CACHE_STAGE_NAME)) self.cache_stage_path = join_path(self.cache_path, self.cache_stage_name) self.cache_fetch_name = utils.to_unicode( kwargs.get("cache_fetch_name", DEFAULT_CACHE_FETCH_NAME)) self.cache_fetch_path = join_path(self.cache_path, self.cache_fetch_name) self.user_id = self.endpoint.account self.instance = get_instance([ self.auth_url, self.user_id, self.container, self.local_root_path ]) self.instance_path = join_path(self.instances_path, self.instance) self.create_dir(self.instance_path) self.dbname = utils.to_unicode(kwargs.get("dbname", DEFAULT_DBNAME)) self.full_dbname = join_path(self.instance_path, self.dbname) self.syncer_dbtuple = common.DBTuple(dbtype=database.SyncerDB, dbname=self.full_dbname) db_existed = os.path.isfile(self.full_dbname) if not db_existed: database.initialize(self.syncer_dbtuple) self.mtime_lag = 0 self.case_insensitive = False if not db_existed: self.set_localfs_enabled(True) self.create_local_dirs() self.set_pithos_enabled(True) if not container_exists: self.mk_container(container) else: if not local_root_path_exists: self.set_localfs_enabled(False) else: self.create_local_dirs() if not container_exists: self.set_pithos_enabled(False) self.heartbeat = ThreadSafeDict() self.action_max_wait = kwargs.get("action_max_wait", DEFAULT_ACTION_MAX_WAIT) self.pithos_list_interval = kwargs.get("pithos_list_interval", DEFAULT_PITHOS_LIST_INTERVAL) self.connection_retry_limit = kwargs.get( "connection_retry_limit", DEFAULT_CONNECTION_RETRY_LIMIT) self.endpoint.CONNECTION_RETRY_LIMIT = self.connection_retry_limit self.max_alive_sync_threads = kwargs.get( "max_alive_sync_threads", DEFAULT_MAX_ALIVE_SYNC_THREADS) self.messager = Messager()