Skip to content

Commit

Permalink
Processing split-brain related events based on client-pid
Browse files Browse the repository at this point in the history
tendrl-bug-id: #722
bugzilla: 1666386

Signed-off-by: GowthamShanmugasundaram <[email protected]>
  • Loading branch information
GowthamShanmugam authored and shtripat committed May 16, 2019
1 parent a7d080f commit 60c812c
Showing 1 changed file with 98 additions and 65 deletions.
163 changes: 98 additions & 65 deletions tendrl/gluster_integration/message/callback.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,77 +153,110 @@ def ec_min_bricks_up(self, event):
native_event.save()

def afr_quorum_met(self, event):
context = "afr_quorum_state|" + event['message']['subvol']
message = "Afr quorum is met for subvolume: {0} in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="recovery",
current_value="afr_quorum_met",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()
client_pid = event['message'].get('client-pid', '0')
if int(client_pid) >= 0:
context = "afr_quorum_state|" + event['message']['subvol']
message = "Afr quorum is met for subvolume: {0} in " \
"cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="recovery",
current_value="afr_quorum_met",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()

def afr_quorum_fail(self, event):
context = "afr_quorum_state|" + event['message']['subvol']
message = "Afr quorum has failed for subvolume:"\
" {0} in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="warning",
current_value="afr_quorum_failed",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()
client_pid = event['message'].get('client-pid', '0')
if int(client_pid) >= 0:
context = "afr_quorum_state|" + event['message']['subvol']
message = "Afr quorum has failed for subvolume:"\
" {0} in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="warning",
current_value="afr_quorum_failed",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()

def afr_subvol_up(self, event):
context = "afr_subvol_state|" + event['message']['subvol']
message = "Afr subvolume: {0} is back up in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="recovery",
current_value="afr_subvol_up",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()
"""{
'event': 'AFR_SUBVOL_UP',
'message': {
'subvol': 'glustervol-replicate-0',
'client-pid': '0'
},
'nodeid': '4fa65c79-8a81-4adc-84b7-0e2e10dba1cf',
'ts': 1556003999
}
"""

client_pid = event['message'].get('client-pid', '0')
if int(client_pid) >= 0:
context = "afr_subvol_state|" + event['message']['subvol']
message = "Afr subvolume: {0} is back up in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="recovery",
current_value="afr_subvol_up",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()

def afr_subvols_down(self, event):
context = "afr_subvol_state|" + event['message']['subvol']
message = "Afr subvolume: {0} is down in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="warning",
current_value="afr_subvol_down",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()
"""{
'event': 'AFR_SUBVOLS_DOWN',
'message': {
'subvol': 'glustervol-replicate-0',
'client-pid': '0'
},
'nodeid': '4fa65c79-8a81-4adc-84b7-0e2e10dba1cf',
'ts': 1556001153
}
"""

client_pid = event['message'].get('client-pid', '0')
if int(client_pid) >= 0:
context = "afr_subvol_state|" + event['message']['subvol']
message = "Afr subvolume: {0} is down in cluster {1}".format(
event['message']['subvol'],
self.cluster_short_name
)
volume_name = parse_subvolume(event['message']['subvol'])
native_event = NS.gluster.objects.NativeEvents(
context,
message=message,
severity="warning",
current_value="afr_subvol_down",
tags={"entity_type": RESOURCE_TYPE_VOLUME,
"volume_name": volume_name
}
)
native_event.save()

def unknown_peer(self, event):
context = "unknown_peer|" + event['message']['peer'].split(":")[0]
Expand Down

0 comments on commit 60c812c

Please sign in to comment.