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
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
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
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
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
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))