Example #1
0
    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
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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)