コード例 #1
0
    def setup(self):
        ''' Setup configuration, and read config files '''

        self.config_parser = ConfigParser.ConfigParser()

        if not self.config_parser.read([
                '/etc/daikon/daikon.conf',
                os.path.expanduser('~/.daikon.conf'), 'daikon.conf'
        ]):
            msg = 'No config file found!'
            raise exceptions.ConfigError(msg)
        elif not self.config_parser.has_section(self.cluster()):
            msg = 'No cluster section defined for this cluster!'
            raise exceptions.ConfigError(msg)
        else:
            return self.config_parser
コード例 #2
0
    def port(self):
        ''' Port configuration '''

        if self._port is not None:
            return self._port

        if not self.config_parser.get(self.cluster(), 'port'):
            raise exceptions.ConfigError('No default port defined!')
        elif hasattr(self.arguments, 'port') and self.arguments.port:
            self._port = self.arguments.port
        else:
            self._port = self.config_parser.get(self.cluster(), 'port')

        return self._port
コード例 #3
0
    def host(self):
        ''' Host configuration '''

        if self._host is not None:
            return self._host

        if not self.config_parser.get(self.cluster(), 'host'):
            raise exceptions.ConfigError('No default host defined!')
        elif hasattr(self.arguments, 'host') and self.arguments.host:
            self._hsot = self.arguments.host
        else:
            self._host = self.config_parser.get(self.cluster(), 'host')

        return self._host
コード例 #4
0
    def shards(self):
        ''' Shards configuration '''

        if self._shards is not None:
            return self._shards

        if not self.config_parser.get(self.cluster(), 'shards'):
            raise exceptions.ConfigError('No default shards defined!')
        elif hasattr(self.arguments, 'shards') and self.arguments.shards:
            self._shards = self.arguments.shards
        else:
            self._shards = self.config_parser.get(self.cluster(), 'shards')

        return self._shards
コード例 #5
0
    def replicas(self):
        ''' Replicas configuration '''

        if self._replicas is not None:
            return self._replicas

        if not self.config_parser.get(self.cluster(), 'replicas'):
            raise exceptions.ConfigError('No default replicas defined!')
        elif hasattr(self.arguments, 'replicas') and self.arguments.replicas:
            self._replicas = self.arguments.replicas
        else:
            self._replicas = self.config_parser.get(self.cluster(), 'replicas')

        return self._replicas
コード例 #6
0
    def version(self):
        ''' Get ElasticSearch Version '''

        if self._version is not None:
            return self._version

        if self._host is None:
            self._host = self.host()

        if self._port is None:
            self._port = self.port()

        try:
            request_url = 'http://%s:%s' % (self._host, self._port)
            request = requests.get(request_url)
            request.raise_for_status()
            self._version = json.loads(request.content)[u'version'][u'number']
            return self._version
        except requests.RequestException, e:
            raise exceptions.ConfigError('Error fetching version - ' + str(e))