Merge lp:~axwalk/juju-core/lp1303735-fix-address-logic-1.18 into lp:juju-core/1.18
- lp1303735-fix-address-logic-1.18
- Merge into 1.18
Status: | Merged |
---|---|
Merged at revision: | 2281 |
Proposed branch: | lp:~axwalk/juju-core/lp1303735-fix-address-logic-1.18 |
Merge into: | lp:juju-core/1.18 |
Diff against target: |
262 lines (+97/-17) 4 files modified
agent/bootstrap.go (+4/-0) agent/bootstrap_test.go (+3/-0) cmd/jujud/bootstrap.go (+17/-0) cmd/jujud/bootstrap_test.go (+73/-17) |
To merge this branch: | bzr merge lp:~axwalk/juju-core/lp1303735-fix-address-logic-1.18 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju Engineering | Pending | ||
Review via email: mp+215345@code.launchpad.net |
Commit message
Backport fix for lp:1303735
Description of the change
Backport fix for lp:1303735
Andrew Wilkins (axwalk) wrote : | # |
Ian Booth (wallyworld) wrote : | # |
Go Bot (go-bot) wrote : | # |
The attempt to merge lp:~axwalk/juju-core/lp1303735-fix-address-logic-1.18 into lp:juju-core/1.18 failed. Below is the output from the failed tests.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
? launchpad.
? launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
-------
FAIL: addresses_
addresses_
// The last address is marked public, all others are unknown.
c.Assert(
... obtained instance.
... expected instance.
OOPS: 18 passed, 1 FAILED
--- FAIL: Test (10.25 seconds)
FAIL
FAIL launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
Go Bot (go-bot) wrote : | # |
The attempt to merge lp:~axwalk/juju-core/lp1303735-fix-address-logic-1.18 into lp:juju-core/1.18 failed. Below is the output from the failed tests.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
? launchpad.
? launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
? launchpad.
ok launchpad.
ok launchpad.
Go Bot (go-bot) wrote : | # |
There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.
Andrew Wilkins (axwalk) wrote : | # |
Please take a look.
Andrew Wilkins (axwalk) wrote : | # |
On 2014/04/30 19:26:15, axw wrote:
> Please take a look.
Ignore this...
Preview Diff
1 | === modified file 'agent/bootstrap.go' | |||
2 | --- agent/bootstrap.go 2014-03-05 16:30:01 +0000 | |||
3 | +++ agent/bootstrap.go 2014-04-30 19:25:06 +0000 | |||
4 | @@ -35,6 +35,9 @@ | |||
5 | 35 | // BootstrapMachineConfig holds configuration information | 35 | // BootstrapMachineConfig holds configuration information |
6 | 36 | // to attach to the bootstrap machine. | 36 | // to attach to the bootstrap machine. |
7 | 37 | type BootstrapMachineConfig struct { | 37 | type BootstrapMachineConfig struct { |
8 | 38 | // Addresses holds the bootstrap machine's addresses. | ||
9 | 39 | Addresses []instance.Address | ||
10 | 40 | |||
11 | 38 | // Constraints holds the bootstrap machine's constraints. | 41 | // Constraints holds the bootstrap machine's constraints. |
12 | 39 | // This value is also used for the environment-level constraints. | 42 | // This value is also used for the environment-level constraints. |
13 | 40 | Constraints constraints.Value | 43 | Constraints constraints.Value |
14 | @@ -132,6 +135,7 @@ | |||
15 | 132 | jobs[i] = machineJob | 135 | jobs[i] = machineJob |
16 | 133 | } | 136 | } |
17 | 134 | m, err := st.AddOneMachine(state.MachineTemplate{ | 137 | m, err := st.AddOneMachine(state.MachineTemplate{ |
18 | 138 | Addresses: cfg.Addresses, | ||
19 | 135 | Series: version.Current.Series, | 139 | Series: version.Current.Series, |
20 | 136 | Nonce: state.BootstrapNonce, | 140 | Nonce: state.BootstrapNonce, |
21 | 137 | Constraints: cfg.Constraints, | 141 | Constraints: cfg.Constraints, |
22 | 138 | 142 | ||
23 | === modified file 'agent/bootstrap_test.go' | |||
24 | --- agent/bootstrap_test.go 2014-03-13 07:54:56 +0000 | |||
25 | +++ agent/bootstrap_test.go 2014-04-30 19:25:06 +0000 | |||
26 | @@ -63,6 +63,7 @@ | |||
27 | 63 | expectConstraints := constraints.MustParse("mem=1024M") | 63 | expectConstraints := constraints.MustParse("mem=1024M") |
28 | 64 | expectHW := instance.MustParseHardware("mem=2048M") | 64 | expectHW := instance.MustParseHardware("mem=2048M") |
29 | 65 | mcfg := agent.BootstrapMachineConfig{ | 65 | mcfg := agent.BootstrapMachineConfig{ |
30 | 66 | Addresses: instance.NewAddresses([]string{"testing.invalid", "0.1.2.3"}), | ||
31 | 66 | Constraints: expectConstraints, | 67 | Constraints: expectConstraints, |
32 | 67 | Jobs: []params.MachineJob{params.JobHostUnits}, | 68 | Jobs: []params.MachineJob{params.JobHostUnits}, |
33 | 68 | InstanceId: "i-bootstrap", | 69 | InstanceId: "i-bootstrap", |
34 | @@ -101,6 +102,8 @@ | |||
35 | 101 | gotHW, err := m.HardwareCharacteristics() | 102 | gotHW, err := m.HardwareCharacteristics() |
36 | 102 | c.Assert(err, gc.IsNil) | 103 | c.Assert(err, gc.IsNil) |
37 | 103 | c.Assert(*gotHW, gc.DeepEquals, expectHW) | 104 | c.Assert(*gotHW, gc.DeepEquals, expectHW) |
38 | 105 | gotAddrs := m.Addresses() | ||
39 | 106 | c.Assert(gotAddrs, gc.DeepEquals, mcfg.Addresses) | ||
40 | 104 | 107 | ||
41 | 105 | // Check that the machine agent's config has been written | 108 | // Check that the machine agent's config has been written |
42 | 106 | // and that we can use it to connect to the state. | 109 | // and that we can use it to connect to the state. |
43 | 107 | 110 | ||
44 | === modified file 'cmd/jujud/bootstrap.go' | |||
45 | --- cmd/jujud/bootstrap.go 2014-03-24 03:15:34 +0000 | |||
46 | +++ cmd/jujud/bootstrap.go 2014-04-30 19:25:06 +0000 | |||
47 | @@ -65,6 +65,22 @@ | |||
48 | 65 | if err := c.Conf.read("machine-0"); err != nil { | 65 | if err := c.Conf.read("machine-0"); err != nil { |
49 | 66 | return err | 66 | return err |
50 | 67 | } | 67 | } |
51 | 68 | |||
52 | 69 | // Get the bootstrap machine's addresses from the provider. | ||
53 | 70 | env, err := environs.New(envCfg) | ||
54 | 71 | if err != nil { | ||
55 | 72 | return err | ||
56 | 73 | } | ||
57 | 74 | instanceId := instance.Id(c.InstanceId) | ||
58 | 75 | instances, err := env.Instances([]instance.Id{instanceId}) | ||
59 | 76 | if err != nil { | ||
60 | 77 | return err | ||
61 | 78 | } | ||
62 | 79 | addrs, err := instances[0].Addresses() | ||
63 | 80 | if err != nil { | ||
64 | 81 | return err | ||
65 | 82 | } | ||
66 | 83 | |||
67 | 68 | // agent.Jobs is an optional field in the agent config, and was | 84 | // agent.Jobs is an optional field in the agent config, and was |
68 | 69 | // introduced after 1.17.2. We default to allowing units on | 85 | // introduced after 1.17.2. We default to allowing units on |
69 | 70 | // machine-0 if missing. | 86 | // machine-0 if missing. |
70 | @@ -76,6 +92,7 @@ | |||
71 | 76 | } | 92 | } |
72 | 77 | } | 93 | } |
73 | 78 | st, _, err := c.Conf.config.InitializeState(envCfg, agent.BootstrapMachineConfig{ | 94 | st, _, err := c.Conf.config.InitializeState(envCfg, agent.BootstrapMachineConfig{ |
74 | 95 | Addresses: addrs, | ||
75 | 79 | Constraints: c.Constraints, | 96 | Constraints: c.Constraints, |
76 | 80 | Jobs: jobs, | 97 | Jobs: jobs, |
77 | 81 | InstanceId: instance.Id(c.InstanceId), | 98 | InstanceId: instance.Id(c.InstanceId), |
78 | 82 | 99 | ||
79 | === modified file 'cmd/jujud/bootstrap_test.go' | |||
80 | --- cmd/jujud/bootstrap_test.go 2014-03-21 14:39:23 +0000 | |||
81 | +++ cmd/jujud/bootstrap_test.go 2014-04-30 19:25:06 +0000 | |||
82 | @@ -5,16 +5,22 @@ | |||
83 | 5 | 5 | ||
84 | 6 | import ( | 6 | import ( |
85 | 7 | "encoding/base64" | 7 | "encoding/base64" |
86 | 8 | "io" | ||
87 | 9 | "io/ioutil" | ||
88 | 8 | 10 | ||
89 | 9 | jc "github.com/juju/testing/checkers" | 11 | jc "github.com/juju/testing/checkers" |
90 | 10 | gc "launchpad.net/gocheck" | 12 | gc "launchpad.net/gocheck" |
91 | 11 | "launchpad.net/goyaml" | 13 | "launchpad.net/goyaml" |
92 | 12 | 14 | ||
93 | 13 | "launchpad.net/juju-core/agent" | 15 | "launchpad.net/juju-core/agent" |
94 | 16 | "launchpad.net/juju-core/cmd" | ||
95 | 14 | "launchpad.net/juju-core/constraints" | 17 | "launchpad.net/juju-core/constraints" |
96 | 15 | "launchpad.net/juju-core/environs" | 18 | "launchpad.net/juju-core/environs" |
97 | 19 | "launchpad.net/juju-core/environs/config" | ||
98 | 20 | envtesting "launchpad.net/juju-core/environs/testing" | ||
99 | 16 | "launchpad.net/juju-core/errors" | 21 | "launchpad.net/juju-core/errors" |
100 | 17 | "launchpad.net/juju-core/instance" | 22 | "launchpad.net/juju-core/instance" |
101 | 23 | jujutesting "launchpad.net/juju-core/juju/testing" | ||
102 | 18 | "launchpad.net/juju-core/provider/dummy" | 24 | "launchpad.net/juju-core/provider/dummy" |
103 | 19 | "launchpad.net/juju-core/state" | 25 | "launchpad.net/juju-core/state" |
104 | 20 | "launchpad.net/juju-core/state/api/params" | 26 | "launchpad.net/juju-core/state/api/params" |
105 | @@ -29,8 +35,11 @@ | |||
106 | 29 | type BootstrapSuite struct { | 35 | type BootstrapSuite struct { |
107 | 30 | testbase.LoggingSuite | 36 | testbase.LoggingSuite |
108 | 31 | testing.MgoSuite | 37 | testing.MgoSuite |
111 | 32 | dataDir string | 38 | envcfg string |
112 | 33 | logDir string | 39 | instance instance.Instance |
113 | 40 | dataDir string | ||
114 | 41 | logDir string | ||
115 | 42 | bootstrapName string | ||
116 | 34 | } | 43 | } |
117 | 35 | 44 | ||
118 | 36 | var _ = gc.Suite(&BootstrapSuite{}) | 45 | var _ = gc.Suite(&BootstrapSuite{}) |
119 | @@ -38,11 +47,13 @@ | |||
120 | 38 | func (s *BootstrapSuite) SetUpSuite(c *gc.C) { | 47 | func (s *BootstrapSuite) SetUpSuite(c *gc.C) { |
121 | 39 | s.LoggingSuite.SetUpSuite(c) | 48 | s.LoggingSuite.SetUpSuite(c) |
122 | 40 | s.MgoSuite.SetUpSuite(c) | 49 | s.MgoSuite.SetUpSuite(c) |
123 | 50 | s.makeTestEnv(c) | ||
124 | 41 | } | 51 | } |
125 | 42 | 52 | ||
126 | 43 | func (s *BootstrapSuite) TearDownSuite(c *gc.C) { | 53 | func (s *BootstrapSuite) TearDownSuite(c *gc.C) { |
127 | 44 | s.MgoSuite.TearDownSuite(c) | 54 | s.MgoSuite.TearDownSuite(c) |
128 | 45 | s.LoggingSuite.TearDownSuite(c) | 55 | s.LoggingSuite.TearDownSuite(c) |
129 | 56 | dummy.Reset() | ||
130 | 46 | } | 57 | } |
131 | 47 | 58 | ||
132 | 48 | func (s *BootstrapSuite) SetUpTest(c *gc.C) { | 59 | func (s *BootstrapSuite) SetUpTest(c *gc.C) { |
133 | @@ -102,7 +113,7 @@ | |||
134 | 102 | 113 | ||
135 | 103 | func (s *BootstrapSuite) TestInitializeEnvironment(c *gc.C) { | 114 | func (s *BootstrapSuite) TestInitializeEnvironment(c *gc.C) { |
136 | 104 | hw := instance.MustParseHardware("arch=amd64 mem=8G") | 115 | hw := instance.MustParseHardware("arch=amd64 mem=8G") |
138 | 105 | _, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", testConfig, "--instance-id", "anything", "--hardware", hw.String()) | 116 | _, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", s.envcfg, "--instance-id", string(s.instance.Id()), "--hardware", hw.String()) |
139 | 106 | c.Assert(err, gc.IsNil) | 117 | c.Assert(err, gc.IsNil) |
140 | 107 | err = cmd.Run(nil) | 118 | err = cmd.Run(nil) |
141 | 108 | c.Assert(err, gc.IsNil) | 119 | c.Assert(err, gc.IsNil) |
142 | @@ -120,7 +131,7 @@ | |||
143 | 120 | 131 | ||
144 | 121 | instid, err := machines[0].InstanceId() | 132 | instid, err := machines[0].InstanceId() |
145 | 122 | c.Assert(err, gc.IsNil) | 133 | c.Assert(err, gc.IsNil) |
147 | 123 | c.Assert(instid, gc.Equals, instance.Id("anything")) | 134 | c.Assert(instid, gc.Equals, s.instance.Id()) |
148 | 124 | 135 | ||
149 | 125 | stateHw, err := machines[0].HardwareCharacteristics() | 136 | stateHw, err := machines[0].HardwareCharacteristics() |
150 | 126 | c.Assert(err, gc.IsNil) | 137 | c.Assert(err, gc.IsNil) |
151 | @@ -135,8 +146,8 @@ | |||
152 | 135 | func (s *BootstrapSuite) TestSetConstraints(c *gc.C) { | 146 | func (s *BootstrapSuite) TestSetConstraints(c *gc.C) { |
153 | 136 | tcons := constraints.Value{Mem: uint64p(2048), CpuCores: uint64p(2)} | 147 | tcons := constraints.Value{Mem: uint64p(2048), CpuCores: uint64p(2)} |
154 | 137 | _, cmd, err := s.initBootstrapCommand(c, nil, | 148 | _, cmd, err := s.initBootstrapCommand(c, nil, |
157 | 138 | "--env-config", testConfig, | 149 | "--env-config", s.envcfg, |
158 | 139 | "--instance-id", "anything", | 150 | "--instance-id", string(s.instance.Id()), |
159 | 140 | "--constraints", tcons.String(), | 151 | "--constraints", tcons.String(), |
160 | 141 | ) | 152 | ) |
161 | 142 | c.Assert(err, gc.IsNil) | 153 | c.Assert(err, gc.IsNil) |
162 | @@ -170,7 +181,7 @@ | |||
163 | 170 | expectedJobs := []state.MachineJob{ | 181 | expectedJobs := []state.MachineJob{ |
164 | 171 | state.JobManageEnviron, state.JobHostUnits, | 182 | state.JobManageEnviron, state.JobHostUnits, |
165 | 172 | } | 183 | } |
167 | 173 | _, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", testConfig, "--instance-id", "anything") | 184 | _, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", s.envcfg, "--instance-id", string(s.instance.Id())) |
168 | 174 | c.Assert(err, gc.IsNil) | 185 | c.Assert(err, gc.IsNil) |
169 | 175 | err = cmd.Run(nil) | 186 | err = cmd.Run(nil) |
170 | 176 | c.Assert(err, gc.IsNil) | 187 | c.Assert(err, gc.IsNil) |
171 | @@ -187,9 +198,31 @@ | |||
172 | 187 | c.Assert(m.Jobs(), gc.DeepEquals, expectedJobs) | 198 | c.Assert(m.Jobs(), gc.DeepEquals, expectedJobs) |
173 | 188 | } | 199 | } |
174 | 189 | 200 | ||
175 | 201 | func (s *BootstrapSuite) TestMachineAddresses(c *gc.C) { | ||
176 | 202 | addrs := instance.NewAddresses([]string{"testing.invalid", "0.1.2.3"}) | ||
177 | 203 | dummy.SetInstanceAddresses(s.instance, addrs) | ||
178 | 204 | |||
179 | 205 | _, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", s.envcfg, "--instance-id", string(s.instance.Id())) | ||
180 | 206 | c.Assert(err, gc.IsNil) | ||
181 | 207 | err = cmd.Run(nil) | ||
182 | 208 | c.Assert(err, gc.IsNil) | ||
183 | 209 | |||
184 | 210 | st, err := state.Open(&state.Info{ | ||
185 | 211 | Addrs: []string{testing.MgoServer.Addr()}, | ||
186 | 212 | CACert: []byte(testing.CACert), | ||
187 | 213 | Password: testPasswordHash(), | ||
188 | 214 | }, state.DefaultDialOpts(), environs.NewStatePolicy()) | ||
189 | 215 | c.Assert(err, gc.IsNil) | ||
190 | 216 | defer st.Close() | ||
191 | 217 | |||
192 | 218 | m, err := st.Machine("0") | ||
193 | 219 | c.Assert(err, gc.IsNil) | ||
194 | 220 | c.Assert(m.Addresses(), gc.DeepEquals, addrs) | ||
195 | 221 | } | ||
196 | 222 | |||
197 | 190 | func (s *BootstrapSuite) TestConfiguredMachineJobs(c *gc.C) { | 223 | func (s *BootstrapSuite) TestConfiguredMachineJobs(c *gc.C) { |
198 | 191 | jobs := []params.MachineJob{params.JobManageEnviron} | 224 | jobs := []params.MachineJob{params.JobManageEnviron} |
200 | 192 | _, cmd, err := s.initBootstrapCommand(c, jobs, "--env-config", testConfig, "--instance-id", "anything") | 225 | _, cmd, err := s.initBootstrapCommand(c, jobs, "--env-config", s.envcfg, "--instance-id", string(s.instance.Id())) |
201 | 193 | c.Assert(err, gc.IsNil) | 226 | c.Assert(err, gc.IsNil) |
202 | 194 | err = cmd.Run(nil) | 227 | err = cmd.Run(nil) |
203 | 195 | c.Assert(err, gc.IsNil) | 228 | c.Assert(err, gc.IsNil) |
204 | @@ -219,7 +252,7 @@ | |||
205 | 219 | } | 252 | } |
206 | 220 | 253 | ||
207 | 221 | func (s *BootstrapSuite) TestInitialPassword(c *gc.C) { | 254 | func (s *BootstrapSuite) TestInitialPassword(c *gc.C) { |
209 | 222 | machineConf, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", testConfig, "--instance-id", "anything") | 255 | machineConf, cmd, err := s.initBootstrapCommand(c, nil, "--env-config", s.envcfg, "--instance-id", string(s.instance.Id())) |
210 | 223 | c.Assert(err, gc.IsNil) | 256 | c.Assert(err, gc.IsNil) |
211 | 224 | 257 | ||
212 | 225 | err = cmd.Run(nil) | 258 | err = cmd.Run(nil) |
213 | @@ -333,6 +366,37 @@ | |||
214 | 333 | } | 366 | } |
215 | 334 | } | 367 | } |
216 | 335 | 368 | ||
217 | 369 | func (s *BootstrapSuite) makeTestEnv(c *gc.C) { | ||
218 | 370 | attrs := dummy.SampleConfig().Merge( | ||
219 | 371 | testing.Attrs{ | ||
220 | 372 | "agent-version": version.Current.Number.String(), | ||
221 | 373 | }, | ||
222 | 374 | ).Delete("admin-secret", "ca-private-key") | ||
223 | 375 | |||
224 | 376 | cfg, err := config.New(config.NoDefaults, attrs) | ||
225 | 377 | c.Assert(err, gc.IsNil) | ||
226 | 378 | provider, err := environs.Provider(cfg.Type()) | ||
227 | 379 | c.Assert(err, gc.IsNil) | ||
228 | 380 | env, err := provider.Prepare(nullContext(), cfg) | ||
229 | 381 | c.Assert(err, gc.IsNil) | ||
230 | 382 | |||
231 | 383 | envtesting.MustUploadFakeTools(env.Storage()) | ||
232 | 384 | inst, _, err := jujutesting.StartInstance(env, "0") | ||
233 | 385 | c.Assert(err, gc.IsNil) | ||
234 | 386 | s.instance = inst | ||
235 | 387 | s.bootstrapName, err = inst.DNSName() | ||
236 | 388 | c.Assert(err, gc.IsNil) | ||
237 | 389 | s.envcfg = b64yaml(env.Config().AllAttrs()).encode() | ||
238 | 390 | } | ||
239 | 391 | |||
240 | 392 | func nullContext() *cmd.Context { | ||
241 | 393 | ctx, _ := cmd.DefaultContext() | ||
242 | 394 | ctx.Stdin = io.LimitReader(nil, 0) | ||
243 | 395 | ctx.Stdout = ioutil.Discard | ||
244 | 396 | ctx.Stderr = ioutil.Discard | ||
245 | 397 | return ctx | ||
246 | 398 | } | ||
247 | 399 | |||
248 | 336 | type b64yaml map[string]interface{} | 400 | type b64yaml map[string]interface{} |
249 | 337 | 401 | ||
250 | 338 | func (m b64yaml) encode() string { | 402 | func (m b64yaml) encode() string { |
251 | @@ -342,11 +406,3 @@ | |||
252 | 342 | } | 406 | } |
253 | 343 | return base64.StdEncoding.EncodeToString(data) | 407 | return base64.StdEncoding.EncodeToString(data) |
254 | 344 | } | 408 | } |
255 | 345 | |||
256 | 346 | var testConfig = b64yaml( | ||
257 | 347 | dummy.SampleConfig().Merge( | ||
258 | 348 | testing.Attrs{ | ||
259 | 349 | "state-server": false, | ||
260 | 350 | "agent-version": "3.4.5", | ||
261 | 351 | }, | ||
262 | 352 | ).Delete("admin-secret", "ca-private-key")).encode() |
Reviewers: mp+215345_ code.launchpad. net,
Message:
Please take a look.
Description:
Backport fix for lp:1303735
https:/ /code.launchpad .net/~axwalk/ juju-core/ lp1303735- fix-address- logic-1. 18/+merge/ 215345
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/86720043/
Affected files (+281, -105 lines): status_ test.go address_ test.go maas/instance. go openstack/ provider. go openstack/ provider_ test.go machiner/ machiner_ test.go /machine/ machiner. go test.go machiner/ machiner. go machiner/ machiner_ test.go peergrouper/ worker_ test.go
A [revision details]
M cmd/juju/
M instance/address.go
M instance/
M provider/
M provider/
M provider/
M state/api/
M state/apiserver
M state/machine.go
M state/machine_
M state/unit_test.go
M worker/
M worker/
M worker/