Updated nrpe check for swift replication lag >1 day
Change-Id: Ib1104ea86290cf271e63d1a5aa81e503ed5965c3 Closes-Bug: 1758119
This commit is contained in:
parent
f75bd9762a
commit
9a5314afad
|
@ -111,14 +111,17 @@ def check_replication(base_url, limits):
|
|||
results.append((STATUS_CRIT,
|
||||
"'{}' replication lag not working "
|
||||
'(perms issue? check syslog)'.format(repl)))
|
||||
elif delta.seconds >= limits[1]:
|
||||
results.append((STATUS_CRIT,
|
||||
"'{}' replication lag is {} "
|
||||
"seconds".format(repl, delta.seconds)))
|
||||
elif delta.seconds >= limits[0]:
|
||||
results.append((STATUS_WARN,
|
||||
"'{}' replication lag is {} "
|
||||
"seconds".format(repl, delta.seconds)))
|
||||
else:
|
||||
seconds_since_repl = delta.days * 86400
|
||||
seconds_since_repl += delta.seconds
|
||||
if seconds_since_repl >= limits[1]:
|
||||
results.append((STATUS_CRIT,
|
||||
"'{}' replication lag is {} "
|
||||
"seconds".format(repl, seconds_since_repl)))
|
||||
elif seconds_since_repl >= limits[0]:
|
||||
results.append((STATUS_WARN,
|
||||
"'{}' replication lag is {} "
|
||||
"seconds".format(repl, seconds_since_repl)))
|
||||
|
||||
if not repl_failures:
|
||||
pass
|
||||
|
|
|
@ -255,7 +255,7 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(seconds=12), 0)
|
||||
mock_timestamp.return_value = (MagicMock(days=0, seconds=12), 0)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
|
@ -278,7 +278,7 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(seconds=0), 12)
|
||||
mock_timestamp.return_value = (MagicMock(days=0, seconds=0), 12)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
|
@ -298,7 +298,7 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(seconds=0), -1)
|
||||
mock_timestamp.return_value = (MagicMock(days=0, seconds=0), -1)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
|
@ -320,7 +320,7 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(seconds=5), 0)
|
||||
mock_timestamp.return_value = (MagicMock(days=0, seconds=5), 0)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
|
@ -330,6 +330,29 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
"5 seconds".format(repl))
|
||||
for repl in ('account', 'object', 'container')])
|
||||
|
||||
@patch('check_swift_storage.repl_last_timestamp')
|
||||
def test_check_replication_crit_day_plus_lag(self, mock_timestamp):
|
||||
"""
|
||||
Replication lag CRITS with day wrap, STATUS_CRIT
|
||||
"""
|
||||
base_url = 'http://localhost:6000/recon/'
|
||||
jdata = '{"replication_last": 1493299546.629282, ' \
|
||||
'"replication_stats": {"no_change": 0, "rsync": 0, ' \
|
||||
'"success": 0, "failure": 0, "attempted": 0, "ts_repl": 0, ' \
|
||||
'"remove": 0, "remote_merge": 0, "diff_capped": 0, ' \
|
||||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(days=2, seconds=5), 0)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
self.assertEqual(result,
|
||||
[(STATUS_CRIT,
|
||||
"'{}' replication lag is "
|
||||
"172805 seconds".format(repl))
|
||||
for repl in ('account', 'object', 'container')])
|
||||
|
||||
@patch('check_swift_storage.repl_last_timestamp')
|
||||
def test_check_replication_warn_failures(self, mock_timestamp):
|
||||
"""
|
||||
|
@ -343,7 +366,7 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(seconds=0), 5)
|
||||
mock_timestamp.return_value = (MagicMock(days=0, seconds=0), 5)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
|
@ -364,7 +387,7 @@ class CheckSwiftStorageTestCase(unittest.TestCase):
|
|||
'"start": 1493299546.621624, "hashmatch": 0, "diff": 0, ' \
|
||||
'"empty": 0}, "replication_time": 0.0076580047607421875}'
|
||||
pmock_jdata = PropertyMock(return_value=jdata)
|
||||
mock_timestamp.return_value = (MagicMock(seconds=0), 0)
|
||||
mock_timestamp.return_value = (MagicMock(days=0, seconds=0), 0)
|
||||
with patch('urllib2.urlopen') as mock_urlopen:
|
||||
mock_urlopen.return_value = MagicMock(read=pmock_jdata)
|
||||
result = check_replication(base_url, [4, 10, 4, 10])
|
||||
|
|
Loading…
Reference in New Issue