Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(513)

Side by Side Diff: cmd/jujud/agent.go

Issue 6501106: environs: remove VarDir global
Patch Set: environs: remove VarDir global Created 11 years, 6 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cmd/juju/cmd_test.go ('k') | cmd/jujud/machine.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/environs"
8 "launchpad.net/juju-core/state" 7 "launchpad.net/juju-core/state"
9 "regexp" 8 "regexp"
10 "strings" 9 "strings"
11 ) 10 )
12 11
13 // requiredError is useful when complaining about missing command-line options. 12 // requiredError is useful when complaining about missing command-line options.
14 func requiredError(name string) error { 13 func requiredError(name string) error {
15 return fmt.Errorf("--%s option must be set", name) 14 return fmt.Errorf("--%s option must be set", name)
16 } 15 }
17 16
(...skipping 24 matching lines...) Expand all
42 } 41 }
43 42
44 // stateInfoVar sets up a gnuflag flag analagously to FlagSet.*Var methods. 43 // stateInfoVar sets up a gnuflag flag analagously to FlagSet.*Var methods.
45 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) {
46 target.Addrs = value 45 target.Addrs = value
47 fs.Var((*stateInfoValue)(target), name, usage) 46 fs.Var((*stateInfoValue)(target), name, usage)
48 } 47 }
49 48
50 // AgentConf handles command-line flags shared by all agents. 49 // AgentConf handles command-line flags shared by all agents.
51 type AgentConf struct { 50 type AgentConf struct {
52 » JujuDir string 51 » DataDir string
53 StateInfo state.Info 52 StateInfo state.Info
54 } 53 }
55 54
56 // addFlags injects common agent flags into f. 55 // addFlags injects common agent flags into f.
57 func (c *AgentConf) addFlags(f *gnuflag.FlagSet) { 56 func (c *AgentConf) addFlags(f *gnuflag.FlagSet) {
58 » f.StringVar(&c.JujuDir, "juju-directory", environs.VarDir, "juju working directory") 57 » f.StringVar(&c.DataDir, "data-dir", "/var/lib/juju", "directory for juju data")
59 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")
60 } 59 }
61 60
62 // 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.
63 func (c *AgentConf) checkArgs(args []string) error { 62 func (c *AgentConf) checkArgs(args []string) error {
64 » if c.JujuDir == "" { 63 » if c.DataDir == "" {
65 » » return requiredError("juju-directory") 64 » » return requiredError("data-dir")
66 } 65 }
67 if c.StateInfo.Addrs == nil { 66 if c.StateInfo.Addrs == nil {
68 return requiredError("zookeeper-servers") 67 return requiredError("zookeeper-servers")
69 } 68 }
70 return cmd.CheckEmpty(args) 69 return cmd.CheckEmpty(args)
71 } 70 }
72 71
73 type task interface { 72 type task interface {
74 Stop() error 73 Stop() error
75 Wait() error 74 Wait() error
(...skipping 21 matching lines...) Expand all
97 break waiting 96 break waiting
98 } 97 }
99 } 98 }
100 for _, t := range tasks { 99 for _, t := range tasks {
101 if terr := t.Stop(); terr != nil && err == nil { 100 if terr := t.Stop(); terr != nil && err == nil {
102 err = terr 101 err = terr
103 } 102 }
104 } 103 }
105 return 104 return
106 } 105 }
OLDNEW
« no previous file with comments | « cmd/juju/cmd_test.go ('k') | cmd/jujud/machine.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b