forked from itsderek23/highgroove-scout-plugins
/
test.rb
103 lines (91 loc) · 2.98 KB
/
test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
require File.expand_path('../../test_helper.rb', __FILE__)
require File.expand_path('../mysql_replication_monitor.rb', __FILE__)
require 'mysql'
class MysqlReplicationMonitorTest < Test::Unit::TestCase
def setup
@options=parse_defaults("mysql_replication_monitor")
end
def test_replication_success
# Stub the plugin instance where necessary and run
# @plugin=PluginName.new(last_run, memory, options)
# date hash hash
@plugin=MysqlReplicationMonitor.new(nil,{},@options)
ms_res=Mysql::Result.new
ms_res.stubs(:fetch_hash).returns(FIXTURES[:success])
Mysql.any_instance.stubs(:query).with("show slave status").returns(ms_res).once
res= @plugin.run()
# assertions
assert_equal 1, res[:reports].first['Seconds Behind Master']
end
def test_replication_failure
@plugin=MysqlReplicationMonitor.new(nil,{},@options)
ms_res=Mysql::Result.new
ms_res.stubs(:fetch_hash).returns(FIXTURES[:failure])
Mysql.any_instance.stubs(:query).with("show slave status").returns(ms_res).once
res= @plugin.run()
# assertions
assert_equal 1, res[:alerts].size
end
def test_replication_failure_nil_seconds_behind
@plugin=MysqlReplicationMonitor.new(nil,{},@options)
ms_res=Mysql::Result.new
ms_res.stubs(:fetch_hash).returns(FIXTURES[:failure_nil_seconds_behind])
Mysql.any_instance.stubs(:query).with("show slave status").returns(ms_res).once
res= @plugin.run()
# assertions
assert_equal 1, res[:alerts].size
end
FIXTURES=YAML.load(<<-EOS)
:success:
Slave_IO_Running: 'Yes'
Slave_SQL_Running: 'Yes'
Seconds_Behind_Master: 1
:failure:
Slave_IO_Running: 'Yes'
Slave_SQL_Running: 'No'
Seconds_Behind_Master: NULL
:failure_nil_seconds_behind:
Slave_IO_Running: 'Yes'
Slave_SQL_Running: 'Yes'
Seconds_Behind_Master: NULL
:full:
Slave_IO_State: Waiting for master to send event
Master_Host: mysql002.int
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 505440314
Relay_Log_File: slave100-relay.000068
Relay_Log_Pos: 505440459
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: 'Yes'
Slave_SQL_Running: 'Yes'
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 505440314
Relay_Log_Space: 505440656
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: 'No'
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 1
Master_SSL_Verify_Server_Cert: 'No'
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
EOS
end