Move the recovery.conf based role check to a function.

This commit is contained in:
Oleksii Kliukin
2016-04-15 17:32:29 +02:00
parent c15c13876a
commit a07b015679
+5 -2
View File
@@ -79,7 +79,7 @@ class Postgresql(object):
self._state = 'stopped'
self._state_lock = Lock()
self._role = 'replica' if os.path.exists(self.recovery_conf) else 'master'
self._role = self.get_postgres_role_from_data_directory()
self._role_lock = Lock()
if self.is_running():
@@ -124,6 +124,9 @@ class Postgresql(object):
break
return local_address + ':' + self.port
def get_postgres_role_from_data_directory(self):
return 'replica' if os.path.exists(self.recovery_conf) else 'master'
@property
def _connect_kwargs(self):
r = parseurl('postgres://{0}/postgres'.format(self.local_address))
@@ -347,7 +350,7 @@ class Postgresql(object):
logger.error('Cannot start PostgreSQL because one is already running.')
return True
self.set_role('replica' if os.path.exists(self.recovery_conf) else 'master')
self.set_role(self.get_postgres_role_from_data_directory())
if os.path.exists(self.postmaster_pid):
os.remove(self.postmaster_pid)
logger.info('Removed %s', self.postmaster_pid)