LEFT | RIGHT |
1 package main | 1 package main |
2 | 2 |
3 import ( | 3 import ( |
4 "fmt" | 4 "fmt" |
5 "launchpad.net/gnuflag" | 5 "launchpad.net/gnuflag" |
6 "launchpad.net/juju-core/cmd" | 6 "launchpad.net/juju-core/cmd" |
7 "launchpad.net/juju-core/state" | 7 "launchpad.net/juju-core/state" |
8 "regexp" | 8 "regexp" |
9 "strings" | 9 "strings" |
10 ) | 10 ) |
(...skipping 30 matching lines...) Expand all Loading... |
41 } | 41 } |
42 | 42 |
43 // stateInfoVar sets up a gnuflag flag analagously to FlagSet.*Var methods. | 43 // stateInfoVar sets up a gnuflag flag analagously to FlagSet.*Var methods. |
44 func stateInfoVar(fs *gnuflag.FlagSet, target *state.Info, name string, value []
string, usage string) { | 44 func stateInfoVar(fs *gnuflag.FlagSet, target *state.Info, name string, value []
string, usage string) { |
45 target.Addrs = value | 45 target.Addrs = value |
46 fs.Var((*stateInfoValue)(target), name, usage) | 46 fs.Var((*stateInfoValue)(target), name, usage) |
47 } | 47 } |
48 | 48 |
49 // AgentConf handles command-line flags shared by all agents. | 49 // AgentConf handles command-line flags shared by all agents. |
50 type AgentConf struct { | 50 type AgentConf struct { |
51 » VarDir string | 51 » DataDir string |
52 StateInfo state.Info | 52 StateInfo state.Info |
53 } | 53 } |
54 | 54 |
55 // addFlags injects common agent flags into f. | 55 // addFlags injects common agent flags into f. |
56 func (c *AgentConf) addFlags(f *gnuflag.FlagSet) { | 56 func (c *AgentConf) addFlags(f *gnuflag.FlagSet) { |
57 » f.StringVar(&c.VarDir, "juju-directory", "/var/lib/juju", "juju working
directory") | 57 » f.StringVar(&c.DataDir, "data-dir", "/var/lib/juju", "directory for juju
data") |
58 stateInfoVar(f, &c.StateInfo, "zookeeper-servers", nil, "zookeeper serve
rs to connect to") | 58 stateInfoVar(f, &c.StateInfo, "zookeeper-servers", nil, "zookeeper serve
rs to connect to") |
59 } | 59 } |
60 | 60 |
61 // checkArgs checks that required flags have been set and that args is empty. | 61 // checkArgs checks that required flags have been set and that args is empty. |
62 func (c *AgentConf) checkArgs(args []string) error { | 62 func (c *AgentConf) checkArgs(args []string) error { |
63 » if c.VarDir == "" { | 63 » if c.DataDir == "" { |
64 » » return requiredError("juju-directory") | 64 » » return requiredError("data-dir") |
65 } | 65 } |
66 if c.StateInfo.Addrs == nil { | 66 if c.StateInfo.Addrs == nil { |
67 return requiredError("zookeeper-servers") | 67 return requiredError("zookeeper-servers") |
68 } | 68 } |
69 return cmd.CheckEmpty(args) | 69 return cmd.CheckEmpty(args) |
70 } | 70 } |
71 | 71 |
72 type task interface { | 72 type task interface { |
73 Stop() error | 73 Stop() error |
74 Wait() error | 74 Wait() error |
(...skipping 21 matching lines...) Expand all Loading... |
96 break waiting | 96 break waiting |
97 } | 97 } |
98 } | 98 } |
99 for _, t := range tasks { | 99 for _, t := range tasks { |
100 if terr := t.Stop(); terr != nil && err == nil { | 100 if terr := t.Stop(); terr != nil && err == nil { |
101 err = terr | 101 err = terr |
102 } | 102 } |
103 } | 103 } |
104 return | 104 return |
105 } | 105 } |
LEFT | RIGHT |