if os.getenv('GOVERNOR_POSTGRESQL_LISTEN'): config['postgresql']['listen'] = os.getenv('GOVERNOR_POSTGRESQL_LISTEN') if os.getenv('GOVERNOR_POSTGRESQL_READ_ONLY_PORT'): config['postgresql']['read_only_port'] = os.getenv( 'GOVERNOR_POSTGRESQL_READ_ONLY_PORT') if os.getenv('GOVERNOR_POSTGRESQL_DATA_DIR'): config['postgresql']['data_dir'] = os.getenv( 'GOVERNOR_POSTGRESQL_DATA_DIR') if os.getenv('GOVERNOR_POSTGRESQL_REPLICATION_NETWORK'): config['postgresql']['replication']['network'] = os.getenv( 'GOVERNOR_POSTGRESQL_REPLICATION_NETWORK') etcd = Etcd(config["etcd"]) postgresql = Postgresql(config["postgresql"]) ha = Ha(postgresql, etcd) # leave things clean when shutting down, if possible def shutdown(signal, frame): logging.info("Governor Shutting Down: Received Shutdown Signal") try: if ha.has_lock(): logging.info("Governor Shutting Down: Abdicating Leadership") etcd.abdicate(postgresql.name) logging.info("Governor Shutting Down: Removing Membership") etcd.delete_member(postgresql.name) except: