95
96
map[string]interface{}{
96
97
"machines": map[int]interface{}{
97
98
0: map[string]interface{}{
98
"dns-name": "palermo-0.dns",
99
"instance-id": "palermo-0",
99
"dns-name": "palermo-0.dns",
100
"instance-id": "palermo-0",
101
"agent-version": "0.0.0",
102
"proposed-agent-version": "0.0.0",
105
"services": make(map[string]interface{}),
109
"simulate the MA setting the version",
110
func(st *state.State, conn *juju.Conn, c *C) {
111
m, err := st.Machine(0)
114
Binary: version.Binary{
115
Number: version.MustParse("1.2.3"),
119
URL: "http://canonical.com/",
121
err = m.SetAgentTools(t)
124
map[string]interface{}{
125
"machines": map[int]interface{}{
126
0: map[string]interface{}{
127
"dns-name": "palermo-0.dns",
128
"instance-id": "palermo-0",
129
"agent-version": "1.2.3",
130
"proposed-agent-version": "0.0.0",
133
"services": make(map[string]interface{}),
137
"simulate setting the proposed version",
138
func(st *state.State, conn *juju.Conn, c *C) {
139
m, err := st.Machine(0)
142
Binary: version.Binary{
143
Number: version.MustParse("2.0.3"),
147
URL: "http://canonical.com/",
149
err = m.ProposeAgentTools(t)
152
map[string]interface{}{
153
"machines": map[int]interface{}{
154
0: map[string]interface{}{
155
"dns-name": "palermo-0.dns",
156
"instance-id": "palermo-0",
157
"agent-version": "1.2.3",
158
"proposed-agent-version": "2.0.3",
102
161
"services": make(map[string]interface{}),
123
182
map[string]interface{}{
124
183
"machines": map[int]interface{}{
125
184
0: map[string]interface{}{
126
"dns-name": "palermo-0.dns",
127
"instance-id": "palermo-0",
130
"services": map[string]interface{}{
131
"dummy-service": map[string]interface{}{
135
"exposed-service": map[string]interface{}{
185
"dns-name": "palermo-0.dns",
186
"instance-id": "palermo-0",
187
"agent-version": "1.2.3",
188
"proposed-agent-version": "2.0.3",
191
"services": map[string]interface{}{
192
"dummy-service": map[string]interface{}{
196
"exposed-service": map[string]interface{}{
204
"add two more machines for units",
205
func(st *state.State, conn *juju.Conn, c *C) {
206
for i := 1; i < 3; i++ {
207
m, err := st.AddMachine()
209
c.Assert(m.Id(), Equals, i)
210
inst, err := conn.Environ.StartInstance(m.Id(), nil, nil)
212
err = m.SetInstanceId(inst.Id())
216
map[string]interface{}{
217
"machines": map[int]interface{}{
218
0: map[string]interface{}{
219
"dns-name": "palermo-0.dns",
220
"instance-id": "palermo-0",
221
"agent-version": "1.2.3",
222
"proposed-agent-version": "2.0.3",
224
1: map[string]interface{}{
225
"dns-name": "palermo-1.dns",
226
"instance-id": "palermo-1",
227
"agent-version": "0.0.0",
228
"proposed-agent-version": "0.0.0",
230
2: map[string]interface{}{
231
"dns-name": "palermo-2.dns",
232
"instance-id": "palermo-2",
233
"agent-version": "0.0.0",
234
"proposed-agent-version": "0.0.0",
237
"services": map[string]interface{}{
238
"dummy-service": map[string]interface{}{
242
"exposed-service": map[string]interface{}{
250
"add units for services",
251
func(st *state.State, conn *juju.Conn, c *C) {
252
for i, n := range []string{"dummy-service", "exposed-service"} {
253
s, err := st.Service(n)
255
u, err := s.AddUnit()
257
m, err := st.Machine(i + 1)
259
err = u.AssignToMachine(m)
262
if n == "exposed-service" {
263
err := u.SetStatus("error", "You Require More Vespene Gas")
268
map[string]interface{}{
269
"machines": map[int]interface{}{
270
0: map[string]interface{}{
271
"dns-name": "palermo-0.dns",
272
"instance-id": "palermo-0",
273
"agent-version": "1.2.3",
274
"proposed-agent-version": "2.0.3",
276
1: map[string]interface{}{
277
"dns-name": "palermo-1.dns",
278
"instance-id": "palermo-1",
279
"agent-version": "0.0.0",
280
"proposed-agent-version": "0.0.0",
282
2: map[string]interface{}{
283
"dns-name": "palermo-2.dns",
284
"instance-id": "palermo-2",
285
"agent-version": "0.0.0",
286
"proposed-agent-version": "0.0.0",
289
"services": map[string]interface{}{
290
"exposed-service": map[string]interface{}{
292
"units": map[string]interface{}{
293
"exposed-service/0": map[string]interface{}{
294
"agent-version": "0.0.0",
295
"proposed-agent-version": "0.0.0",
298
"status-info": "You Require More Vespene Gas",
303
"dummy-service": map[string]interface{}{
306
"units": map[string]interface{}{
307
"dummy-service/0": map[string]interface{}{
308
"agent-version": "0.0.0",
309
"proposed-agent-version": "0.0.0",
319
// TODO(dfc) test failing components by destructively mutating zk under the hood
144
322
func (s *StatusSuite) testStatus(format string, marshal func(v interface{}) ([]byte, error), unmarshal func(data []byte, v interface{}) error, c *C) {