@@ -12,7 +12,7 @@ import (
12
12
)
13
13
14
14
// this is the default port for talking to remote consul agents
15
- const ConsulPort = 8500
15
+ const defaultPort = 8500
16
16
17
17
type verbosityLevel uint8
18
18
@@ -25,10 +25,10 @@ func (v verbosityLevel) allows(other verbosityLevel) bool {
25
25
}
26
26
27
27
const (
28
- V0 verbosityLevel = iota
29
- V1
30
- V2
31
- V3
28
+ verbosityLevel0 verbosityLevel = iota
29
+ verbosityLevel1
30
+ verbosityLevel2
31
+ verbosityLevel3
32
32
)
33
33
34
34
func usage (code int ) {
@@ -42,18 +42,23 @@ func main() {
42
42
serviceString := fs .String ("s" , "" , "Limit search by service address (regexp)" )
43
43
tag := fs .String ("t" , "" , "Limit search by tag" )
44
44
force := fs .Bool ("f" , false , "Force killing of all matches, including healthy services" )
45
+ port := fs .Int ("port" , defaultPort , "Port to use when connecting to remote agents" )
46
+ token := fs .String ("token" , "" , "Token to use when connecting to remote agents" )
45
47
v1 := fs .Bool ("v" , false , "Verbose" )
46
48
v2 := fs .Bool ("vv" , false , "Increased Verbosity" )
47
49
v3 := fs .Bool ("vvv" , false , "Super Verbosity" )
48
- fs .Parse (os .Args [1 :])
50
+ if err := fs .Parse (os .Args [1 :]); err != nil {
51
+ log .Printf ("Error parsing args: %s" , err )
52
+ os .Exit (1 )
53
+ }
49
54
50
55
var verbosity verbosityLevel
51
56
if * v3 {
52
- verbosity = V3
57
+ verbosity = verbosityLevel3
53
58
} else if * v2 {
54
- verbosity = V2
59
+ verbosity = verbosityLevel2
55
60
} else if * v1 {
56
- verbosity = V1
61
+ verbosity = verbosityLevel1
57
62
}
58
63
59
64
// show usage if there are not command line args
@@ -66,12 +71,12 @@ func main() {
66
71
switch cmd {
67
72
// define a couple synonyms to "hunt" as well
68
73
case "hunt" , "find" , "search" :
69
- serviceList := getList (* serviceString , * tag )
74
+ serviceList := getList (* serviceString , * token , * tag )
70
75
printList (serviceList , verbosity )
71
76
72
77
case "kill" :
73
- serviceList := getList (* serviceString , * tag )
74
- deregister (serviceList , * force )
78
+ serviceList := getList (* serviceString , * token , * tag )
79
+ deregister (serviceList , * port , * token , * force )
75
80
76
81
default :
77
82
usage (1 )
@@ -105,7 +110,7 @@ func printList(serviceList []*api.ServiceEntry, v verbosityLevel) {
105
110
}
106
111
107
112
switch true {
108
- case v .allows (V3 ), v .allows (V2 ), v .allows (V1 ):
113
+ case v .allows (verbosityLevel3 ), v .allows (verbosityLevel2 ), v .allows (verbosityLevel1 ):
109
114
table .Append ([]string {
110
115
se .Node .Node ,
111
116
se .Service .ID ,
@@ -137,12 +142,12 @@ func printList(serviceList []*api.ServiceEntry, v verbosityLevel) {
137
142
}
138
143
139
144
// kill those services that are failing in the passed list, or all if force is true
140
- func deregister (serviceList []* api.ServiceEntry , force bool ) {
145
+ func deregister (serviceList []* api.ServiceEntry , port int , token string , force bool ) {
141
146
for _ , se := range serviceList {
142
147
if ! isHealthy (se ) || force {
143
- fullAddress := fmt .Sprintf ("%s:%d" , se .Node .Address , ConsulPort )
148
+ fullAddress := fmt .Sprintf ("%s:%d" , se .Node .Address , port )
144
149
fmt .Printf ("Deregistering %s: %s (%s)\n " , se .Service .Service , se .Service .ID , fullAddress )
145
- client , err := getClient (fullAddress )
150
+ client , err := getClient (fullAddress , token )
146
151
if err != nil {
147
152
log .Fatalf ("Unable to get consul client: %s\n " , err )
148
153
}
0 commit comments