diff options
| author | James Shubin <james@shubin.ca> | 2013-09-18 15:48:35 -0400 |
|---|---|---|
| committer | James Shubin <james@shubin.ca> | 2013-09-18 15:48:35 -0400 |
| commit | 21fd59f04d33b74c9de7608d627cfd2452246b60 (patch) | |
| tree | 94fec93751280d5793825bcafadc4858817dbc7e | |
| parent | 58aae6a64d5f69fbd681058f2bc00255e44c9476 (diff) | |
Also verify peer state for connection tool.
| -rw-r--r-- | files/xml.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/files/xml.py b/files/xml.py index 1f5f3ec..60920b6 100644 --- a/files/xml.py +++ b/files/xml.py @@ -36,6 +36,24 @@ import sys import argparse import lxml.etree as etree +# List of state codes: +# <MESSAGE> <CODE> +# static char *glusterd_friend_sm_state_names[] = { # glusterd-sm.c +# "Establishing Connection", # 0 +# "Probe Sent to Peer", # 1 +# "Probe Received from Peer", # 2 +# "Peer in Cluster", # 3 (verified) +# "Accepted peer request", # 4 +# "Sent and Received peer request", # 5 +# "Peer Rejected", # 6 (verified) +# "Peer detach in progress", # 7 +# "Probe Received from peer", # 8 +# "Connected to Peer", # 9 +# "Peer is connected and Accepted", # 10 +# "Invalid State" # 11 +# }; +valid_peered = ['3'] + parser = argparse.ArgumentParser(description='gluster xml parsing tools') #parser.add_argument('--debug', dest='debug', action='store_true', default=False) subparsers = parser.add_subparsers(dest='mode') @@ -82,8 +100,9 @@ if args.mode == 'connected': for i in root.findall('.//peerStatus'): p = i.find('peer') h = p.find('hostname').text - c = (str(p.find('connected').text) == '1') # connected - store[h] = c # save for later... + c = (str(p.find('connected').text) == '1') # connected...? + s = (str(p.find('state').text) in valid_peered) # valid peering + store[h] = c and s # save for later... # if no peers specified, assume we should check all... if len(peers) == 0: |
