def _get_metadata(self, swift_container, obj_name): """ Retrieves the swift metadata from the local cached object. :param swift_container: container name (microcontroller or dependency) :param object_name: object name :returns: swift metadata dictionary """ cached_target_obj = os.path.join(self.conf["cache_dir"], self.scope, 'vertigo', swift_container, obj_name) metadata = get_object_metadata(cached_target_obj) return metadata
def _get_metadata(self, swift_container, obj_name): """ Retrieves the swift metadata from the local cached object. :param swift_container: container name (microcontroller or dependency) :param object_name: object name :returns: swift metadata dictionary """ cached_target_obj = os.path.join(self.conf["cache_dir"], self.scope, 'vertigo', swift_container, obj_name) metadata = get_object_metadata(cached_target_obj) return metadata
def _update_from_cache(self, mc_main, swift_container, obj_name): """ Updates the tenant microcontroller folder from the local cache. :param mc_main: main class of the microcontroller :param swift_container: container name (microcontroller or dependency) :param object_name: Name of the microcontroller or dependency """ # if enter to this method means that the objects exist in cache cached_target_obj = os.path.join(self.conf["cache_dir"], self.scope, 'vertigo', swift_container, obj_name) docker_target_dir = os.path.join( self.conf["mc_dir"], self.scope, mc_main) docker_target_obj = os.path.join(docker_target_dir, obj_name) update_from_cache = False if not os.path.exists(docker_target_dir): os.makedirs(docker_target_dir, 0o777) update_from_cache = True elif not os.path.isfile(docker_target_obj): update_from_cache = True else: cached_obj_metadata = get_object_metadata(cached_target_obj) docker_obj_metadata = get_object_metadata(docker_target_obj) cached_obj_tstamp = float(cached_obj_metadata['X-Timestamp']) docker_obj_tstamp = float(docker_obj_metadata['X-Timestamp']) if cached_obj_tstamp > docker_obj_tstamp: update_from_cache = True if update_from_cache: self.logger.info('Vertigo - Going to update from cache: ' + swift_container + '/' + obj_name) copy2(cached_target_obj, docker_target_obj) metadata = get_object_metadata(cached_target_obj) set_object_metadata(docker_target_obj, metadata)
def _update_from_cache(self, mc_main, swift_container, obj_name): """ Updates the tenant microcontroller folder from the local cache. :param mc_main: main class of the microcontroller :param swift_container: container name (microcontroller or dependency) :param object_name: Name of the microcontroller or dependency """ # if enter to this method means that the objects exist in cache cached_target_obj = os.path.join(self.conf["cache_dir"], self.scope, 'vertigo', swift_container, obj_name) docker_target_dir = os.path.join( self.conf["mc_dir"], self.scope, mc_main) docker_target_obj = os.path.join(docker_target_dir, obj_name) update_from_cache = False if not os.path.exists(docker_target_dir): os.makedirs(docker_target_dir, 0o777) update_from_cache = True elif not os.path.isfile(docker_target_obj): update_from_cache = True else: cached_obj_metadata = get_object_metadata(cached_target_obj) docker_obj_metadata = get_object_metadata(docker_target_obj) cached_obj_tstamp = float(cached_obj_metadata['X-Timestamp']) docker_obj_tstamp = float(docker_obj_metadata['X-Timestamp']) if cached_obj_tstamp > docker_obj_tstamp: update_from_cache = True if update_from_cache: self.logger.info('Vertigo - Going to update from cache: ' + swift_container + '/' + obj_name) copy2(cached_target_obj, docker_target_obj) metadata = get_object_metadata(cached_target_obj) set_object_metadata(docker_target_obj, metadata)