Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/zalando/spilo
Browse files Browse the repository at this point in the history
  • Loading branch information
alexeyklyukin committed Apr 29, 2015
2 parents 9279682 + 2510134 commit 727f223
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions etcd-cluster-appliance/etcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
import os
import requests
import shutil
import signal
import subprocess
import sys
import time

from boto.ec2.instance import Instance
Expand Down Expand Up @@ -389,7 +391,7 @@ def remove_unhealthy_members(self, autoscaling_members):
members[m.addr] = m

for m in autoscaling_members:
members.pop(m.private_ip_address)
members.pop(m.private_ip_address, None)

for m in members.values():
self.me.delete_member(m)
Expand Down Expand Up @@ -445,15 +447,36 @@ def run(self):
time.sleep(self.NAPTIME)


def sigterm_handler(signo, stack_frame):
sys.exit()


def main():
hosted_zone = os.environ.get('HOSTED_ZONE', None)
manager = EtcdManager()
house_keeper = HouseKeeper(manager, hosted_zone)
house_keeper.start()
manager.run()
try:
house_keeper = HouseKeeper(manager, hosted_zone)
house_keeper.start()
manager.run()
finally:
logging.info('Trying to remove myself from cluster...')
try:
cluster = EtcdCluster(manager)
cluster.load_members()
if cluster.accessible_member:
if cluster.me:
if not cluster.accessible_member.delete_member(cluster.me):
logging.error('Can not remove myself from cluster')
else:
logging.error('Can not find me in existing cluster')
else:
logging.error('Cluster does not have accessible member')
except:
logging.exception()


if __name__ == '__main__':
signal.signal(signal.SIGTERM, sigterm_handler)
logging.basicConfig(format='%(levelname)-6s %(asctime)s - %(message)s', level=logging.DEBUG)
os.chdir(os.path.dirname(os.path.realpath(__file__)))
main()

0 comments on commit 727f223

Please sign in to comment.