Added is_leader to ceph

This commit is contained in:
James Page 2012-10-19 16:50:18 +01:00
parent eeaafbafe9
commit cf3b804304
1 changed files with 27 additions and 1 deletions

View File

@ -13,7 +13,9 @@ import time
import utils
import os
QUORUM = ['leader', 'peon']
LEADER = 'leader'
PEON = 'peon'
QUORUM = [LEADER, PEON]
def is_quorum():
@ -40,6 +42,30 @@ def is_quorum():
return False
def is_leader():
asok = "/var/run/ceph/ceph-mon.{}.asok".format(utils.get_unit_hostname())
cmd = [
"ceph",
"--admin-daemon",
asok,
"mon_status"
]
if os.path.exists(asok):
try:
result = json.loads(subprocess.check_output(cmd))
except subprocess.CalledProcessError:
return False
except ValueError:
# Non JSON response from mon_status
return False
if result['state'] == LEADER:
return True
else:
return False
else:
return False
def wait_for_quorum():
while not is_quorum():
time.sleep(3)