Beispiel #1
0
    def _set_environment_specific_options(self, container_opts={}):
        """
        This function is used to setup these fields: namespace, log_prefix, and
        logfiles_links_source.
        """

        logger.info('setup_namespace_and_metadata: long_id=' + self.long_id)

        _map = container_opts.get('long_id_to_namespace_map', {})
        if self.long_id in _map:
            self.namespace = _map[self.long_id]
            self.log_prefix = ''
            self.logfiles_links_source = []
            return

        host_namespace = container_opts.get('host_namespace', 'undefined')
        options = defaults.DEFAULT_CRAWL_OPTIONS
        default_logs = options['logcrawler']['default_log_files']

        try:
            _options = {
                'root_fs': self.root_fs,
                'type': 'docker',
                'name': self.name,
                'host_namespace': host_namespace,
                'container_logs': default_logs
            }
            runtime_env = plugins_manager.get_runtime_env_plugin()
            namespace = runtime_env.get_container_namespace(
                self.long_id, _options)
            if not namespace:
                _env = runtime_env.get_environment_name()
                logger.warning('Container %s does not have %s '
                               'metadata.' % (self.short_id, _env))
                raise ContainerInvalidEnvironment('')
            self.namespace = namespace

            self.log_prefix = runtime_env.get_container_log_prefix(
                self.long_id, _options)

            self.logfiles_links_source.extend(
                runtime_env.get_container_log_file_list(
                    self.long_id, _options))
        except ValueError:
            # XXX-kollerr: plugins are not supposed to throw ValueError
            logger.warning('Container %s does not have a valid alchemy '
                           'metadata json file.' % self.short_id)
            raise ContainerInvalidEnvironment()
Beispiel #2
0
    def _set_environment_specific_options(self, container_opts={}):
        """
        This function is used to setup these environment specific fields:
        namespace, log_prefix, and logfile_links.

        The environment is defined by the --environment argument.
        """

        logger.info('setup_namespace_and_metadata: long_id=' + self.long_id)

        host_namespace = container_opts.get('host_namespace', 'undefined')

        try:
            _options = {
                'root_fs': self.root_fs,
                'type': 'docker',
                'name': self.name,
                'host_namespace': host_namespace,
                'container_logs': DEFAULT_LOG_FILES
            }
            env = plugins_manager.get_runtime_env_plugin()
            namespace = env.get_container_namespace(self.long_id, _options)
            if not namespace:
                _env = env.get_environment_name()
                logger.warning('Container %s does not have %s '
                               'metadata.' % (self.short_id, _env))
                raise ContainerInvalidEnvironment('')
            self.namespace = namespace

            self.log_prefix = env.get_container_log_prefix(
                self.long_id, _options)

            self.logs_list_input.extend([
                LogFileLink(name=log['name'])
                for log in env.get_container_log_file_list(
                    self.long_id, _options)
            ])
        except ValueError:
            # XXX-kollerr: plugins are not supposed to throw ValueError
            logger.warning('Container %s does not have a valid alchemy '
                           'metadata json file.' % self.short_id)
            raise ContainerInvalidEnvironment()
    def _set_environment_specific_options(self,
                                          container_opts={}):
        logger.info('setup_namespace_and_metadata: long_id=' +
                    self.long_id)

        _map = container_opts.get('long_id_to_namespace_map', {})
        if self.long_id in _map:
            self.namespace = _map[self.long_id]
            self.log_prefix = ''
            self.logfiles_links_source = []
            return

        host_namespace = container_opts.get('host_namespace', 'undefined')
        options=defaults.DEFAULT_CRAWL_OPTIONS
        default_logs = options['logcrawler']['default_log_files']

        try:
            _options = {'root_fs': self.root_fs, 'type': 'docker',
                        'name': self.name, 'host_namespace': host_namespace,
                        'container_logs': default_logs}
            runtime_env = plugins_manager.get_runtime_env_plugin()
            namespace = runtime_env.get_container_namespace(
                self.long_id, _options)
            if not namespace:
                _env = runtime_env.get_environment_name()
                logger.warning('Container %s does not have %s '
                               'metadata.' % (_env, self.short_id))
                raise ContainerInvalidEnvironment('')
            self.namespace = namespace

            self.log_prefix = runtime_env.get_container_log_prefix(
                self.long_id, _options)

            self.logfiles_links_source.extend(runtime_env.get_container_log_file_list(
                self.long_id, _options))
        except ValueError:
            # XXX-kollerr: plugins are not supposed to throw ValueError 
            logger.warning('Container %s does not have a valid alchemy '
                           'metadata json file.' % self.short_id)
            raise ContainerInvalidEnvironment()
    def _set_environment_specific_options(self):
        """
        This function is used to setup these environment specific fields:
        namespace, log_prefix, and logfile_links.
        """

        logger.info('setup_namespace_and_metadata: long_id=' +
                    self.long_id)

        try:
            _options = {
                'root_fs': self.root_fs,
                'type': 'docker',
                'name': self.name,
                'host_namespace': self.host_namespace,
                'container_logs': DEFAULT_LOG_FILES}
            env = plugins_manager.get_runtime_env_plugin()
            namespace = env.get_container_namespace(
                self.long_id, _options)
            if not namespace:
                _env = env.get_environment_name()
                logger.warning('Container %s does not have %s '
                               'metadata.' % (self.short_id, _env))
                raise ContainerInvalidEnvironment('')
            self.namespace = namespace

            self.log_prefix = env.get_container_log_prefix(
                self.long_id, _options)

            self.logs_list_input.extend([LogFileLink(name=log['name'])
                                         for log in
                                         env.get_container_log_file_list(
                                         self.long_id, _options)])
        except ValueError:
            # XXX-kollerr: plugins are not supposed to throw ValueError
            logger.warning('Container %s does not have a valid alchemy '
                           'metadata json file.' % self.short_id)
            raise ContainerInvalidEnvironment()