-
Notifications
You must be signed in to change notification settings - Fork 0
/
statsdb.go
31 lines (26 loc) · 993 Bytes
/
statsdb.go
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
package system
// StatsDBCtl is the RabbitMQ statsdb control system
type StatsDBCtl struct {
name string
}
// NewStatsDBCtl creates a new StatsDBCtl instance
func NewStatsDBCtl() *StatsDBCtl {
return &StatsDBCtl{
name: "/sbin/rabbitmqctl",
}
}
// Reset reset the RabbitMQ statsdb
func (s *StatsDBCtl) Reset() (bool, string, error) {
output, err := ExecCommand(s.name, []string{"eval", "application:stop(rabbitmq_management), application:start(rabbitmq_management)."})
return err == nil, output, err
}
// Terminate terminate the RabbitMQ statsdb
func (s *StatsDBCtl) Terminate() (bool, string, error) {
output, err := ExecCommand(s.name, []string{"eval", "exit(erlang:whereis(rabbit_mgmt_db), please_terminate)."})
return err == nil, output, err
}
// Crash crash the RabbitMQ statsdb
func (s *StatsDBCtl) Crash() (bool, string, error) {
output, err := ExecCommand(s.name, []string{"eval", "exit(erlang:whereis(rabbit_mgmt_db), please_crash)."})
return err == nil, output, err
}