1
1
package container_monitor
2
+
2
3
import (
3
4
"gopkg.in/redis.v4"
4
5
"log"
5
6
)
6
- type RedisListener struct {
7
- Client * redis.Client // Redis client
8
- monitor * ContainerMonitor // Container monitor.
7
+
8
+ type RedisListener struct {
9
+ Client * redis.Client // Redis client
10
+ monitor * ContainerMonitor // Container monitor.
9
11
}
10
12
11
13
// Returns new instance of Redis listener.
12
14
// props: r_url string Redis server URL.
13
15
// password string Redis server password.
14
16
// db int Redis server Data Base ID.
15
- func NewRedisListener (r_url string , password string , db int )( * RedisListener ) {
17
+ func NewRedisListener (r_url string , password string , db int ) * RedisListener {
16
18
return & RedisListener {
17
19
Client : redis .NewClient (& redis.Options {
18
20
Addr : r_url ,
@@ -23,69 +25,70 @@ func NewRedisListener(r_url string, password string, db int)(*RedisListener){
23
25
}
24
26
25
27
// Listens Redis pub/sub channel.
26
- func (l * RedisListener )Listen (){
28
+ func (l * RedisListener ) Listen () {
27
29
defer l .Client .Close ()
28
- pubsub ,err := l .Client .Subscribe (STRESS_TEST_CHANNEL )
29
- if ( err != nil ) {
30
- log .Printf ("CLIENT SUBSCRIBE ERROR: %s" ,err .Error ())
30
+ pubsub , err := l .Client .Subscribe (STRESS_TEST_CHANNEL )
31
+ if err != nil {
32
+ log .Printf ("CLIENT SUBSCRIBE ERROR: %s" , err .Error ())
31
33
return
32
34
}
33
35
defer pubsub .Unsubscribe (STRESS_TEST_CHANNEL )
34
- for {
35
- err := l .ping ()
36
- if ( err != nil ) {
37
- log .Printf ("CLIENT PING ERROR: %s" ,err .Error ())
36
+ for {
37
+ err := l .ping ()
38
+ if err != nil {
39
+ log .Printf ("CLIENT PING ERROR: %s" , err .Error ())
38
40
return
39
41
}
40
- mess ,err := pubsub .ReceiveMessage ()
41
- if ( err == nil ) {
42
+ mess , err := pubsub .ReceiveMessage ()
43
+ if err == nil {
42
44
l .readRedisMessage (mess )
43
45
}
44
46
}
45
47
}
46
48
47
49
// Calls redis pub/sub channel.
48
- func (l * RedisListener )Call (test_id string , command string ){
49
- mess := newRedisMessage (command , test_id )
50
- message_string ,err := marshalRedisMessage (mess )
51
- if ( err != nil ) {
52
- log .Printf ("can not create start redis message %s" ,err .Error ())
50
+ func (l * RedisListener ) Call (test_id string , command string ) {
51
+ mess := newRedisMessage (command , test_id )
52
+ message_string , err := marshalRedisMessage (mess )
53
+ if err != nil {
54
+ log .Printf ("can not create start redis message %s" , err .Error ())
53
55
return
54
56
}
55
- l .Client .Publish (STRESS_TEST_CHANNEL ,message_string )
57
+ l .Client .Publish (STRESS_TEST_CHANNEL , message_string )
56
58
}
57
59
58
60
// Closes listener
59
- func (l * RedisListener )Close (){
61
+ func (l * RedisListener ) Close () {
60
62
l .Client .Close ()
61
63
}
62
64
63
65
// Reads Redis pub/sub messages.
64
- func (l * RedisListener )readRedisMessage (mess * redis.Message ){
65
- message ,err := unmarshalRedisMessage (mess .Payload )
66
- if ( err != nil ) {
67
- log .Printf ("Can not unmarshall redis message: %s" ,err .Error ())
66
+ func (l * RedisListener ) readRedisMessage (mess * redis.Message ) {
67
+ message , err := unmarshalRedisMessage (mess .Payload )
68
+ if err != nil {
69
+ log .Printf ("Can not unmarshall redis message: %s" , err .Error ())
68
70
return
69
71
}
70
- if ( message .Command == START_COMMAND ) {
72
+ if message .Command == START_COMMAND {
71
73
l .startTest (message .TestID )
72
- }else {
74
+ } else {
73
75
l .stopTest (message .TestID )
74
76
}
75
77
}
76
78
77
79
// Starts gathering information about the container system.
78
- func (l * RedisListener )startTest (test_id string ){
79
- if ( l .monitor != nil ) {
80
+ func (l * RedisListener ) startTest (test_id string ) {
81
+ if l .monitor != nil {
80
82
log .Println ("ERROR: last test not finiched!" )
81
83
return
82
84
}
83
- l .monitor = newContainerMonitor (l .Client ,test_id )
85
+ l .monitor = newContainerMonitor (l .Client , test_id )
84
86
go l .monitor .Run ()
85
87
}
88
+
86
89
// Stops gathering information about the container system.
87
- func (l * RedisListener )stopTest (test_id string ){
88
- if ( l .monitor == nil ) {
90
+ func (l * RedisListener ) stopTest (test_id string ) {
91
+ if l .monitor == nil {
89
92
log .Println ("ERROR: test not started!" )
90
93
return
91
94
}
@@ -94,12 +97,10 @@ func (l *RedisListener)stopTest(test_id string){
94
97
}
95
98
96
99
// Pings redis pub/sub channel.
97
- func (l * RedisListener )ping ()( error ) {
98
- err := l .Client .Ping ().Err ()
99
- if ( err != nil ) {
100
+ func (l * RedisListener ) ping () error {
101
+ err := l .Client .Ping ().Err ()
102
+ if err != nil {
100
103
return err
101
104
}
102
105
return nil
103
106
}
104
-
105
-
0 commit comments