~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/cmd/juju/status/status_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
178
178
                        "since":   "01 Apr 15 01:23+10:00",
179
179
                },
180
180
                "series":                   "quantal",
181
 
                "hardware":                 "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
181
                "hardware":                 "arch=amd64 cores=1 mem=1024M root-disk=8192M",
182
182
                "controller-member-status": "adding-vote",
183
183
        }
184
184
        machine1 = M{
193
193
                        "since":   "01 Apr 15 01:23+10:00",
194
194
                },
195
195
                "series":   "quantal",
196
 
                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
196
                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
197
197
        }
198
198
        machine2 = M{
199
199
                "juju-status": M{
207
207
                        "since":   "01 Apr 15 01:23+10:00",
208
208
                },
209
209
                "series":   "quantal",
210
 
                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
210
                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
211
211
        }
212
212
        machine3 = M{
213
213
                "juju-status": M{
221
221
                        "since":   "01 Apr 15 01:23+10:00",
222
222
                },
223
223
                "series":   "quantal",
224
 
                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
224
                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
225
225
        }
226
226
        machine4 = M{
227
227
                "juju-status": M{
235
235
                        "since":   "01 Apr 15 01:23+10:00",
236
236
                },
237
237
                "series":   "quantal",
238
 
                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
238
                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
239
239
        }
240
240
        machine1WithContainers = M{
241
241
                "juju-status": M{
292
292
                },
293
293
 
294
294
                "series":   "quantal",
295
 
                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
295
                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
296
296
        }
297
297
        unexposedService = dummyCharm(M{
298
298
                "application-status": M{
299
 
                        "current": "unknown",
300
 
                        "message": "Waiting for agent initialization to finish",
 
299
                        "current": "waiting",
 
300
                        "message": "waiting for machine",
301
301
                        "since":   "01 Apr 15 01:23+10:00",
302
302
                },
303
303
        })
304
304
        exposedService = dummyCharm(M{
305
305
                "application-status": M{
306
 
                        "current": "unknown",
307
 
                        "message": "Waiting for agent initialization to finish",
 
306
                        "current": "waiting",
 
307
                        "message": "waiting for machine",
308
308
                        "since":   "01 Apr 15 01:23+10:00",
309
309
                },
310
310
                "exposed": true,
343
343
        {"json", json.Marshal, json.Unmarshal},
344
344
}
345
345
 
346
 
var machineCons = constraints.MustParse("cpu-cores=2 mem=8G root-disk=8G")
 
346
var machineCons = constraints.MustParse("cores=2 mem=8G root-disk=8G")
347
347
 
348
348
var statusTests = []testCase{
349
349
        // Status tests
396
396
                                                        "since":   "01 Apr 15 01:23+10:00",
397
397
                                                },
398
398
                                                "series":                   "quantal",
399
 
                                                "hardware":                 "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
399
                                                "hardware":                 "arch=amd64 cores=1 mem=1024M root-disk=8192M",
400
400
                                                "controller-member-status": "adding-vote",
401
401
                                        },
402
402
                                },
404
404
                        },
405
405
                },
406
406
 
407
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
407
                setMachineStatus{"0", status.Started, ""},
408
408
                expect{
409
409
                        "simulate the MA started and set the machine status",
410
410
                        M{
435
435
                                                        "version": "1.2.3",
436
436
                                                },
437
437
                                                "series":                   "quantal",
438
 
                                                "hardware":                 "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
438
                                                "hardware":                 "arch=amd64 cores=1 mem=1024M root-disk=8192M",
439
439
                                                "controller-member-status": "adding-vote",
440
440
                                        },
441
441
                                },
451
451
                        network.NewScopedAddress("controller-0.dns", network.ScopePublic),
452
452
                }},
453
453
                startAliveMachine{"0"},
454
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
454
                setMachineStatus{"0", status.Started, ""},
455
455
                expect{
456
456
                        "machine 0 has specific hardware characteristics",
457
457
                        M{
469
469
                                                        "since":   "01 Apr 15 01:23+10:00",
470
470
                                                },
471
471
                                                "series":                   "quantal",
472
 
                                                "hardware":                 "arch=amd64 cpu-cores=2 mem=8192M root-disk=8192M",
 
472
                                                "hardware":                 "arch=amd64 cores=2 mem=8192M root-disk=8192M",
473
473
                                                "controller-member-status": "adding-vote",
474
474
                                        },
475
475
                                },
481
481
                "instance without addresses",
482
482
                addMachine{machineId: "0", cons: machineCons, job: state.JobManageModel},
483
483
                startAliveMachine{"0"},
484
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
484
                setMachineStatus{"0", status.Started, ""},
485
485
                expect{
486
486
                        "machine 0 has no dns-name",
487
487
                        M{
498
498
                                                        "since":   "01 Apr 15 01:23+10:00",
499
499
                                                },
500
500
                                                "series":                   "quantal",
501
 
                                                "hardware":                 "arch=amd64 cpu-cores=2 mem=8192M root-disk=8192M",
 
501
                                                "hardware":                 "arch=amd64 cores=2 mem=8192M root-disk=8192M",
502
502
                                                "controller-member-status": "adding-vote",
503
503
                                        },
504
504
                                },
550
550
                                                        "since":   "01 Apr 15 01:23+10:00",
551
551
                                                },
552
552
                                                "series":                   "quantal",
553
 
                                                "hardware":                 "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
553
                                                "hardware":                 "arch=amd64 cores=1 mem=1024M root-disk=8192M",
554
554
                                                "controller-member-status": "adding-vote",
555
555
                                        },
556
556
                                },
564
564
                addMachine{machineId: "0", job: state.JobManageModel},
565
565
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
566
566
                startAliveMachine{"0"},
567
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
567
                setMachineStatus{"0", status.Started, ""},
568
568
                addCharm{"dummy"},
569
569
                addService{name: "dummy-application", charm: "dummy"},
570
570
                addService{name: "exposed-application", charm: "dummy"},
602
602
                addMachine{machineId: "1", job: state.JobHostUnits},
603
603
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
604
604
                startAliveMachine{"1"},
605
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
605
                setMachineStatus{"1", status.Started, ""},
606
606
                addMachine{machineId: "2", job: state.JobHostUnits},
607
607
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
608
608
                startAliveMachine{"2"},
609
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
609
                setMachineStatus{"2", status.Started, ""},
610
610
                expect{
611
611
                        "two more machines added",
612
612
                        M{
626
626
                // step 19
627
627
                addAliveUnit{"dummy-application", "1"},
628
628
                addAliveUnit{"exposed-application", "2"},
629
 
                setAgentStatus{"exposed-application/0", status.StatusError, "You Require More Vespene Gas", nil},
 
629
                setAgentStatus{"exposed-application/0", status.Error, "You Require More Vespene Gas", nil},
630
630
                // Open multiple ports with different protocols,
631
631
                // ensure they're sorted on protocol, then number.
632
632
                openUnitPort{"exposed-application/0", "udp", 10},
636
636
                // Simulate some status with no info, while the agent is down.
637
637
                // Status used to be down, we no longer support said state.
638
638
                // now is one of: pending, started, error.
639
 
                setUnitStatus{"dummy-application/0", status.StatusTerminated, "", nil},
640
 
                setAgentStatus{"dummy-application/0", status.StatusIdle, "", nil},
 
639
                setUnitStatus{"dummy-application/0", status.Terminated, "", nil},
 
640
                setAgentStatus{"dummy-application/0", status.Idle, "", nil},
641
641
 
642
642
                expect{
643
643
                        "add two units, one alive (in error state), one started",
704
704
                startMachine{"3"},
705
705
                // Simulate some status with info, while the agent is down.
706
706
                setAddresses{"3", network.NewAddresses("controller-3.dns")},
707
 
                setMachineStatus{"3", status.StatusStopped, "Really?"},
 
707
                setMachineStatus{"3", status.Stopped, "Really?"},
708
708
                addMachine{machineId: "4", job: state.JobHostUnits},
709
709
                setAddresses{"4", network.NewAddresses("controller-4.dns")},
710
710
                startAliveMachine{"4"},
711
 
                setMachineStatus{"4", status.StatusError, "Beware the red toys"},
 
711
                setMachineStatus{"4", status.Error, "Beware the red toys"},
712
712
                ensureDyingUnit{"dummy-application/0"},
713
713
                addMachine{machineId: "5", job: state.JobHostUnits},
714
714
                ensureDeadMachine{"5"},
733
733
                                                        "since":   "01 Apr 15 01:23+10:00",
734
734
                                                },
735
735
                                                "series":   "quantal",
736
 
                                                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
736
                                                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
737
737
                                        },
738
738
                                        "4": M{
739
739
                                                "dns-name":    "controller-4.dns",
748
748
                                                        "since":   "01 Apr 15 01:23+10:00",
749
749
                                                },
750
750
                                                "series":   "quantal",
751
 
                                                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
751
                                                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
752
752
                                        },
753
753
                                        "5": M{
754
754
                                                "juju-status": M{
1021
1021
                addMachine{machineId: "0", job: state.JobManageModel},
1022
1022
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
1023
1023
                startAliveMachine{"0"},
1024
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1024
                setMachineStatus{"0", status.Started, ""},
1025
1025
 
1026
1026
                addMachine{machineId: "1", job: state.JobHostUnits},
1027
1027
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
1028
1028
                startAliveMachine{"1"},
1029
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
1029
                setMachineStatus{"1", status.Started, ""},
1030
1030
 
1031
1031
                addCharm{"wordpress"},
1032
1032
                addService{name: "wordpress", charm: "wordpress"},
1038
1038
 
1039
1039
                relateServices{"wordpress", "mysql"},
1040
1040
 
1041
 
                setAgentStatus{"wordpress/0", status.StatusError,
 
1041
                setAgentStatus{"wordpress/0", status.Error,
1042
1042
                        "hook failed: some-relation-changed",
1043
1043
                        map[string]interface{}{"relation-id": 0}},
1044
1044
 
1081
1081
                                                        "server": L{"wordpress"},
1082
1082
                                                },
1083
1083
                                                "application-status": M{
1084
 
                                                        "current": "unknown",
1085
 
                                                        "message": "Waiting for agent initialization to finish",
 
1084
                                                        "current": "waiting",
 
1085
                                                        "message": "waiting for machine",
1086
1086
                                                        "since":   "01 Apr 15 01:23+10:00",
1087
1087
                                                },
1088
1088
                                                "units": M{
1089
1089
                                                        "mysql/0": M{
1090
1090
                                                                "machine": "1",
1091
1091
                                                                "workload-status": M{
1092
 
                                                                        "current": "unknown",
1093
 
                                                                        "message": "Waiting for agent initialization to finish",
 
1092
                                                                        "current": "waiting",
 
1093
                                                                        "message": "waiting for machine",
1094
1094
                                                                        "since":   "01 Apr 15 01:23+10:00",
1095
1095
                                                                },
1096
1096
                                                                "juju-status": M{
1110
1110
                addMachine{machineId: "0", job: state.JobManageModel},
1111
1111
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
1112
1112
                startAliveMachine{"0"},
1113
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1113
                setMachineStatus{"0", status.Started, ""},
1114
1114
 
1115
1115
                addMachine{machineId: "1", job: state.JobHostUnits},
1116
1116
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
1117
1117
                startAliveMachine{"1"},
1118
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
1118
                setMachineStatus{"1", status.Started, ""},
1119
1119
 
1120
1120
                addCharm{"wordpress"},
1121
1121
                addService{name: "wordpress", charm: "wordpress"},
1127
1127
 
1128
1128
                relateServices{"wordpress", "mysql"},
1129
1129
 
1130
 
                setAgentStatus{"wordpress/0", status.StatusError,
 
1130
                setAgentStatus{"wordpress/0", status.Error,
1131
1131
                        "hook failed: some-relation-changed",
1132
1132
                        map[string]interface{}{"relation-id": 0}},
1133
1133
 
1170
1170
                                                        "server": L{"wordpress"},
1171
1171
                                                },
1172
1172
                                                "application-status": M{
1173
 
                                                        "current": "unknown",
1174
 
                                                        "message": "Waiting for agent initialization to finish",
 
1173
                                                        "current": "waiting",
 
1174
                                                        "message": "waiting for machine",
1175
1175
                                                        "since":   "01 Apr 15 01:23+10:00",
1176
1176
                                                },
1177
1177
                                                "units": M{
1178
1178
                                                        "mysql/0": M{
1179
1179
                                                                "machine": "1",
1180
1180
                                                                "workload-status": M{
1181
 
                                                                        "current": "unknown",
1182
 
                                                                        "message": "Waiting for agent initialization to finish",
 
1181
                                                                        "current": "waiting",
 
1182
                                                                        "message": "waiting for machine",
1183
1183
                                                                        "since":   "01 Apr 15 01:23+10:00",
1184
1184
                                                                },
1185
1185
                                                                "juju-status": M{
1224
1224
                                        "dummy-application": dummyCharm(M{
1225
1225
                                                "life": "dying",
1226
1226
                                                "application-status": M{
1227
 
                                                        "current": "unknown",
1228
 
                                                        "message": "Waiting for agent initialization to finish",
 
1227
                                                        "current": "waiting",
 
1228
                                                        "message": "waiting for machine",
1229
1229
                                                        "since":   "01 Apr 15 01:23+10:00",
1230
1230
                                                },
1231
1231
                                                "units": M{
1232
1232
                                                        "dummy-application/0": M{
1233
1233
                                                                "machine": "0",
1234
1234
                                                                "workload-status": M{
1235
 
                                                                        "current": "unknown",
1236
 
                                                                        "message": "Waiting for agent initialization to finish",
 
1235
                                                                        "current": "waiting",
 
1236
                                                                        "message": "waiting for machine",
1237
1237
                                                                        "since":   "01 Apr 15 01:23+10:00",
1238
1238
                                                                },
1239
1239
                                                                "juju-status": M{
1253
1253
                addService{name: "dummy-application", charm: "dummy"},
1254
1254
                addMachine{machineId: "0", job: state.JobHostUnits},
1255
1255
                startAliveMachine{"0"},
1256
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1256
                setMachineStatus{"0", status.Started, ""},
1257
1257
                addUnit{"dummy-application", "0"},
1258
 
                setAgentStatus{"dummy-application/0", status.StatusIdle, "", nil},
1259
 
                setUnitStatus{"dummy-application/0", status.StatusActive, "", nil},
 
1258
                setAgentStatus{"dummy-application/0", status.Idle, "", nil},
 
1259
                setUnitStatus{"dummy-application/0", status.Active, "", nil},
1260
1260
                expect{
1261
1261
                        "unit shows that agent is lost",
1262
1262
                        M{
1274
1274
                                                },
1275
1275
 
1276
1276
                                                "series":   "quantal",
1277
 
                                                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
1277
                                                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
1278
1278
                                        },
1279
1279
                                },
1280
1280
                                "applications": M{
1288
1288
                                                                "machine": "0",
1289
1289
                                                                "workload-status": M{
1290
1290
                                                                        "current": "unknown",
1291
 
                                                                        "message": "agent lost, see 'juju status-history dummy-application/0'",
 
1291
                                                                        "message": "agent lost, see 'juju show-status-log dummy-application/0'",
1292
1292
                                                                        "since":   "01 Apr 15 01:23+10:00",
1293
1293
                                                                },
1294
1294
                                                                "juju-status": M{
1310
1310
                addMachine{machineId: "0", job: state.JobManageModel},
1311
1311
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
1312
1312
                startAliveMachine{"0"},
1313
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1313
                setMachineStatus{"0", status.Started, ""},
1314
1314
                addCharm{"wordpress"},
1315
1315
                addCharm{"mysql"},
1316
1316
                addCharm{"varnish"},
1320
1320
                addMachine{machineId: "1", job: state.JobHostUnits},
1321
1321
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
1322
1322
                startAliveMachine{"1"},
1323
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
1323
                setMachineStatus{"1", status.Started, ""},
1324
1324
                addAliveUnit{"project", "1"},
1325
 
                setAgentStatus{"project/0", status.StatusIdle, "", nil},
1326
 
                setUnitStatus{"project/0", status.StatusActive, "", nil},
 
1325
                setAgentStatus{"project/0", status.Idle, "", nil},
 
1326
                setUnitStatus{"project/0", status.Active, "", nil},
1327
1327
 
1328
1328
                addService{name: "mysql", charm: "mysql"},
1329
1329
                setServiceExposed{"mysql", true},
1330
1330
                addMachine{machineId: "2", job: state.JobHostUnits},
1331
1331
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
1332
1332
                startAliveMachine{"2"},
1333
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
1333
                setMachineStatus{"2", status.Started, ""},
1334
1334
                addAliveUnit{"mysql", "2"},
1335
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
1336
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
 
1335
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
1336
                setUnitStatus{"mysql/0", status.Active, "", nil},
1337
1337
 
1338
1338
                addService{name: "varnish", charm: "varnish"},
1339
1339
                setServiceExposed{"varnish", true},
1340
1340
                addMachine{machineId: "3", job: state.JobHostUnits},
1341
1341
                setAddresses{"3", network.NewAddresses("controller-3.dns")},
1342
1342
                startAliveMachine{"3"},
1343
 
                setMachineStatus{"3", status.StatusStarted, ""},
 
1343
                setMachineStatus{"3", status.Started, ""},
1344
1344
                addAliveUnit{"varnish", "3"},
1345
1345
 
1346
1346
                addService{name: "private", charm: "wordpress"},
1348
1348
                addMachine{machineId: "4", job: state.JobHostUnits},
1349
1349
                setAddresses{"4", network.NewAddresses("controller-4.dns")},
1350
1350
                startAliveMachine{"4"},
1351
 
                setMachineStatus{"4", status.StatusStarted, ""},
 
1351
                setMachineStatus{"4", status.Started, ""},
1352
1352
                addAliveUnit{"private", "4"},
1353
1353
 
1354
1354
                relateServices{"project", "mysql"},
1425
1425
                                                "os":           "ubuntu",
1426
1426
                                                "exposed":      true,
1427
1427
                                                "application-status": M{
1428
 
                                                        "current": "unknown",
1429
 
                                                        "message": "Waiting for agent initialization to finish",
 
1428
                                                        "current": "waiting",
 
1429
                                                        "message": "waiting for machine",
1430
1430
                                                        "since":   "01 Apr 15 01:23+10:00",
1431
1431
                                                },
1432
1432
                                                "units": M{
1433
1433
                                                        "varnish/0": M{
1434
1434
                                                                "machine": "3",
1435
1435
                                                                "workload-status": M{
1436
 
                                                                        "current": "unknown",
1437
 
                                                                        "message": "Waiting for agent initialization to finish",
 
1436
                                                                        "current": "waiting",
 
1437
                                                                        "message": "waiting for machine",
1438
1438
                                                                        "since":   "01 Apr 15 01:23+10:00",
1439
1439
                                                                },
1440
1440
                                                                "juju-status": M{
1451
1451
                                        "private": wordpressCharm(M{
1452
1452
                                                "exposed": true,
1453
1453
                                                "application-status": M{
1454
 
                                                        "current": "unknown",
1455
 
                                                        "message": "Waiting for agent initialization to finish",
 
1454
                                                        "current": "waiting",
 
1455
                                                        "message": "waiting for machine",
1456
1456
                                                        "since":   "01 Apr 15 01:23+10:00",
1457
1457
                                                },
1458
1458
                                                "units": M{
1459
1459
                                                        "private/0": M{
1460
1460
                                                                "machine": "4",
1461
1461
                                                                "workload-status": M{
1462
 
                                                                        "current": "unknown",
1463
 
                                                                        "message": "Waiting for agent initialization to finish",
 
1462
                                                                        "current": "waiting",
 
1463
                                                                        "message": "waiting for machine",
1464
1464
                                                                        "since":   "01 Apr 15 01:23+10:00",
1465
1465
                                                                },
1466
1466
                                                                "juju-status": M{
1483
1483
                addMachine{machineId: "0", job: state.JobManageModel},
1484
1484
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
1485
1485
                startAliveMachine{"0"},
1486
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1486
                setMachineStatus{"0", status.Started, ""},
1487
1487
                addCharm{"riak"},
1488
1488
                addCharm{"wordpress"},
1489
1489
 
1492
1492
                addMachine{machineId: "1", job: state.JobHostUnits},
1493
1493
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
1494
1494
                startAliveMachine{"1"},
1495
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
1495
                setMachineStatus{"1", status.Started, ""},
1496
1496
                addAliveUnit{"riak", "1"},
1497
 
                setAgentStatus{"riak/0", status.StatusIdle, "", nil},
1498
 
                setUnitStatus{"riak/0", status.StatusActive, "", nil},
 
1497
                setAgentStatus{"riak/0", status.Idle, "", nil},
 
1498
                setUnitStatus{"riak/0", status.Active, "", nil},
1499
1499
                addMachine{machineId: "2", job: state.JobHostUnits},
1500
1500
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
1501
1501
                startAliveMachine{"2"},
1502
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
1502
                setMachineStatus{"2", status.Started, ""},
1503
1503
                addAliveUnit{"riak", "2"},
1504
 
                setAgentStatus{"riak/1", status.StatusIdle, "", nil},
1505
 
                setUnitStatus{"riak/1", status.StatusActive, "", nil},
 
1504
                setAgentStatus{"riak/1", status.Idle, "", nil},
 
1505
                setUnitStatus{"riak/1", status.Active, "", nil},
1506
1506
                addMachine{machineId: "3", job: state.JobHostUnits},
1507
1507
                setAddresses{"3", network.NewAddresses("controller-3.dns")},
1508
1508
                startAliveMachine{"3"},
1509
 
                setMachineStatus{"3", status.StatusStarted, ""},
 
1509
                setMachineStatus{"3", status.Started, ""},
1510
1510
                addAliveUnit{"riak", "3"},
1511
 
                setAgentStatus{"riak/2", status.StatusIdle, "", nil},
1512
 
                setUnitStatus{"riak/2", status.StatusActive, "", nil},
 
1511
                setAgentStatus{"riak/2", status.Idle, "", nil},
 
1512
                setUnitStatus{"riak/2", status.Active, "", nil},
1513
1513
 
1514
1514
                expect{
1515
1515
                        "multiples related peer units",
1587
1587
                addMachine{machineId: "0", job: state.JobManageModel},
1588
1588
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
1589
1589
                startAliveMachine{"0"},
1590
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1590
                setMachineStatus{"0", status.Started, ""},
1591
1591
                addCharm{"wordpress"},
1592
1592
                addCharm{"mysql"},
1593
1593
                addCharm{"logging"},
1597
1597
                addMachine{machineId: "1", job: state.JobHostUnits},
1598
1598
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
1599
1599
                startAliveMachine{"1"},
1600
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
1600
                setMachineStatus{"1", status.Started, ""},
1601
1601
                addAliveUnit{"wordpress", "1"},
1602
 
                setAgentStatus{"wordpress/0", status.StatusIdle, "", nil},
1603
 
                setUnitStatus{"wordpress/0", status.StatusActive, "", nil},
 
1602
                setAgentStatus{"wordpress/0", status.Idle, "", nil},
 
1603
                setUnitStatus{"wordpress/0", status.Active, "", nil},
1604
1604
 
1605
1605
                addService{name: "mysql", charm: "mysql"},
1606
1606
                setServiceExposed{"mysql", true},
1607
1607
                addMachine{machineId: "2", job: state.JobHostUnits},
1608
1608
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
1609
1609
                startAliveMachine{"2"},
1610
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
1610
                setMachineStatus{"2", status.Started, ""},
1611
1611
                addAliveUnit{"mysql", "2"},
1612
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
1613
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
 
1612
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
1613
                setUnitStatus{"mysql/0", status.Active, "", nil},
1614
1614
 
1615
1615
                addService{name: "logging", charm: "logging"},
1616
1616
                setServiceExposed{"logging", true},
1623
1623
                addSubordinate{"mysql/0", "logging"},
1624
1624
 
1625
1625
                setUnitsAlive{"logging"},
1626
 
                setAgentStatus{"logging/0", status.StatusIdle, "", nil},
1627
 
                setUnitStatus{"logging/0", status.StatusActive, "", nil},
1628
 
                setAgentStatus{"logging/1", status.StatusError, "somehow lost in all those logs", nil},
 
1626
                setAgentStatus{"logging/0", status.Idle, "", nil},
 
1627
                setUnitStatus{"logging/0", status.Active, "", nil},
 
1628
                setAgentStatus{"logging/1", status.Error, "somehow lost in all those logs", nil},
1629
1629
 
1630
1630
                expect{
1631
1631
                        "multiples related peer units",
1871
1871
                addMachine{machineId: "0", job: state.JobManageModel},
1872
1872
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
1873
1873
                startAliveMachine{"0"},
1874
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
1874
                setMachineStatus{"0", status.Started, ""},
1875
1875
                addCharm{"mysql"},
1876
1876
                addService{name: "mysql", charm: "mysql"},
1877
1877
                setServiceExposed{"mysql", true},
1880
1880
                addMachine{machineId: "1", job: state.JobHostUnits},
1881
1881
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
1882
1882
                startAliveMachine{"1"},
1883
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
1883
                setMachineStatus{"1", status.Started, ""},
1884
1884
                addAliveUnit{"mysql", "1"},
1885
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
1886
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
 
1885
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
1886
                setUnitStatus{"mysql/0", status.Active, "", nil},
1887
1887
 
1888
1888
                // step 14: A container on machine 1.
1889
1889
                addContainer{"1", "1/lxd/0", state.JobHostUnits},
1890
1890
                setAddresses{"1/lxd/0", network.NewAddresses("controller-2.dns")},
1891
1891
                startAliveMachine{"1/lxd/0"},
1892
 
                setMachineStatus{"1/lxd/0", status.StatusStarted, ""},
 
1892
                setMachineStatus{"1/lxd/0", status.Started, ""},
1893
1893
                addAliveUnit{"mysql", "1/lxd/0"},
1894
 
                setAgentStatus{"mysql/1", status.StatusIdle, "", nil},
1895
 
                setUnitStatus{"mysql/1", status.StatusActive, "", nil},
 
1894
                setAgentStatus{"mysql/1", status.Idle, "", nil},
 
1895
                setUnitStatus{"mysql/1", status.Active, "", nil},
1896
1896
                addContainer{"1", "1/lxd/1", state.JobHostUnits},
1897
1897
 
1898
1898
                // step 22: A nested container.
1899
1899
                addContainer{"1/lxd/0", "1/lxd/0/lxd/0", state.JobHostUnits},
1900
1900
                setAddresses{"1/lxd/0/lxd/0", network.NewAddresses("controller-3.dns")},
1901
1901
                startAliveMachine{"1/lxd/0/lxd/0"},
1902
 
                setMachineStatus{"1/lxd/0/lxd/0", status.StatusStarted, ""},
 
1902
                setMachineStatus{"1/lxd/0/lxd/0", status.Started, ""},
1903
1903
 
1904
1904
                expect{
1905
1905
                        "machines with nested containers",
1983
1983
                                                },
1984
1984
 
1985
1985
                                                "series":   "quantal",
1986
 
                                                "hardware": "arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M",
 
1986
                                                "hardware": "arch=amd64 cores=1 mem=1024M root-disk=8192M",
1987
1987
                                        },
1988
1988
                                },
1989
1989
                                "applications": M{
2017
2017
                addMachine{machineId: "0", job: state.JobManageModel},
2018
2018
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2019
2019
                startAliveMachine{"0"},
2020
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2020
                setMachineStatus{"0", status.Started, ""},
2021
2021
                addMachine{machineId: "1", job: state.JobHostUnits},
2022
2022
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2023
2023
                startAliveMachine{"1"},
2024
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2024
                setMachineStatus{"1", status.Started, ""},
2025
2025
                addCharm{"mysql"},
2026
2026
                addService{name: "mysql", charm: "mysql"},
2027
2027
                setServiceExposed{"mysql", true},
2041
2041
                                                "can-upgrade-to": "cs:quantal/mysql-23",
2042
2042
                                                "exposed":        true,
2043
2043
                                                "application-status": M{
2044
 
                                                        "current": "unknown",
2045
 
                                                        "message": "Waiting for agent initialization to finish",
 
2044
                                                        "current": "waiting",
 
2045
                                                        "message": "waiting for machine",
2046
2046
                                                        "since":   "01 Apr 15 01:23+10:00",
2047
2047
                                                },
2048
2048
                                                "units": M{
2049
2049
                                                        "mysql/0": M{
2050
2050
                                                                "machine": "1",
2051
2051
                                                                "workload-status": M{
2052
 
                                                                        "current": "unknown",
2053
 
                                                                        "message": "Waiting for agent initialization to finish",
 
2052
                                                                        "current": "waiting",
 
2053
                                                                        "message": "waiting for machine",
2054
2054
                                                                        "since":   "01 Apr 15 01:23+10:00",
2055
2055
                                                                },
2056
2056
                                                                "juju-status": M{
2070
2070
                addMachine{machineId: "0", job: state.JobManageModel},
2071
2071
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2072
2072
                startAliveMachine{"0"},
2073
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2073
                setMachineStatus{"0", status.Started, ""},
2074
2074
                addMachine{machineId: "1", job: state.JobHostUnits},
2075
2075
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2076
2076
                startAliveMachine{"1"},
2077
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2077
                setMachineStatus{"1", status.Started, ""},
2078
2078
                addCharm{"mysql"},
2079
2079
                addService{name: "mysql", charm: "mysql"},
2080
2080
                setServiceExposed{"mysql", true},
2125
2125
                addMachine{machineId: "0", job: state.JobManageModel},
2126
2126
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2127
2127
                startAliveMachine{"0"},
2128
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2128
                setMachineStatus{"0", status.Started, ""},
2129
2129
                addMachine{machineId: "1", job: state.JobHostUnits},
2130
2130
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2131
2131
                startAliveMachine{"1"},
2132
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2132
                setMachineStatus{"1", status.Started, ""},
2133
2133
                addCharm{"mysql"},
2134
2134
                addService{name: "mysql", charm: "mysql"},
2135
2135
                setServiceExposed{"mysql", true},
2182
2182
                addMachine{machineId: "0", job: state.JobManageModel},
2183
2183
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2184
2184
                startAliveMachine{"0"},
2185
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2185
                setMachineStatus{"0", status.Started, ""},
2186
2186
                addMachine{machineId: "1", job: state.JobHostUnits},
2187
2187
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2188
2188
                startAliveMachine{"1"},
2189
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2189
                setMachineStatus{"1", status.Started, ""},
2190
2190
                addCharm{"mysql"},
2191
2191
                addService{name: "mysql", charm: "mysql"},
2192
2192
                setServiceExposed{"mysql", true},
2238
2238
                addMachine{machineId: "0", job: state.JobManageModel},
2239
2239
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2240
2240
                startAliveMachine{"0"},
2241
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2241
                setMachineStatus{"0", status.Started, ""},
2242
2242
 
2243
2243
                addMachine{machineId: "1", job: state.JobHostUnits},
2244
2244
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2245
2245
                startAliveMachine{"1"},
2246
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2246
                setMachineStatus{"1", status.Started, ""},
2247
2247
 
2248
2248
                addMachine{machineId: "2", job: state.JobHostUnits},
2249
2249
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
2250
2250
                startAliveMachine{"2"},
2251
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
2251
                setMachineStatus{"2", status.Started, ""},
2252
2252
 
2253
2253
                addMachine{machineId: "3", job: state.JobHostUnits},
2254
2254
                setAddresses{"3", network.NewAddresses("controller-3.dns")},
2255
2255
                startAliveMachine{"3"},
2256
 
                setMachineStatus{"3", status.StatusStarted, ""},
 
2256
                setMachineStatus{"3", status.Started, ""},
2257
2257
 
2258
2258
                addMachine{machineId: "4", job: state.JobHostUnits},
2259
2259
                setAddresses{"4", network.NewAddresses("controller-4.dns")},
2260
2260
                startAliveMachine{"4"},
2261
 
                setMachineStatus{"4", status.StatusStarted, ""},
 
2261
                setMachineStatus{"4", status.Started, ""},
2262
2262
 
2263
2263
                addCharm{"mysql"},
2264
2264
                addService{name: "mysql", charm: "mysql"},
2265
2265
                setServiceExposed{"mysql", true},
2266
2266
 
2267
 
                addService{name: "servicewithmeterstatus", charm: "mysql"},
 
2267
                addCharm{"metered"},
 
2268
                addService{name: "servicewithmeterstatus", charm: "metered"},
2268
2269
 
2269
2270
                addAliveUnit{"mysql", "1"},
2270
2271
                addAliveUnit{"servicewithmeterstatus", "2"},
2273
2274
 
2274
2275
                setServiceExposed{"mysql", true},
2275
2276
 
2276
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
2277
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
2278
 
                setAgentStatus{"servicewithmeterstatus/0", status.StatusIdle, "", nil},
2279
 
                setUnitStatus{"servicewithmeterstatus/0", status.StatusActive, "", nil},
2280
 
                setAgentStatus{"servicewithmeterstatus/1", status.StatusIdle, "", nil},
2281
 
                setUnitStatus{"servicewithmeterstatus/1", status.StatusActive, "", nil},
2282
 
                setAgentStatus{"servicewithmeterstatus/2", status.StatusIdle, "", nil},
2283
 
                setUnitStatus{"servicewithmeterstatus/2", status.StatusActive, "", nil},
 
2277
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
2278
                setUnitStatus{"mysql/0", status.Active, "", nil},
 
2279
                setAgentStatus{"servicewithmeterstatus/0", status.Idle, "", nil},
 
2280
                setUnitStatus{"servicewithmeterstatus/0", status.Active, "", nil},
 
2281
                setAgentStatus{"servicewithmeterstatus/1", status.Idle, "", nil},
 
2282
                setUnitStatus{"servicewithmeterstatus/1", status.Active, "", nil},
 
2283
                setAgentStatus{"servicewithmeterstatus/2", status.Idle, "", nil},
 
2284
                setUnitStatus{"servicewithmeterstatus/2", status.Active, "", nil},
2284
2285
 
2285
2286
                setUnitMeterStatus{"servicewithmeterstatus/1", "GREEN", "test green status"},
2286
2287
                setUnitMeterStatus{"servicewithmeterstatus/2", "RED", "test red status"},
2319
2320
                                                },
2320
2321
                                        }),
2321
2322
 
2322
 
                                        "servicewithmeterstatus": mysqlCharm(M{
 
2323
                                        "servicewithmeterstatus": meteredCharm(M{
2323
2324
                                                "application-status": M{
2324
2325
                                                        "current": "active",
2325
2326
                                                        "since":   "01 Apr 15 01:23+10:00",
2399
2400
                addMachine{machineId: "0", job: state.JobManageModel},
2400
2401
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2401
2402
                startAliveMachine{"0"},
2402
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2403
                setMachineStatus{"0", status.Started, ""},
2403
2404
 
2404
2405
                addCharm{"mysql"},
2405
2406
                addService{name: "mysql", charm: "mysql"},
2407
2408
                addMachine{machineId: "1", job: state.JobHostUnits},
2408
2409
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2409
2410
                startAliveMachine{"1"},
2410
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2411
                setMachineStatus{"1", status.Started, ""},
2411
2412
                addAliveUnit{"mysql", "1"},
2412
2413
                setUnitWorkloadVersion{"mysql/0", "the best!"},
2413
2414
 
2423
2424
                                        "mysql": mysqlCharm(M{
2424
2425
                                                "version": "the best!",
2425
2426
                                                "application-status": M{
2426
 
                                                        "current": "unknown",
2427
 
                                                        "message": "Waiting for agent initialization to finish",
 
2427
                                                        "current": "waiting",
 
2428
                                                        "message": "waiting for machine",
2428
2429
                                                        "since":   "01 Apr 15 01:23+10:00",
2429
2430
                                                },
2430
2431
                                                "units": M{
2431
2432
                                                        "mysql/0": M{
2432
2433
                                                                "machine": "1",
2433
2434
                                                                "workload-status": M{
2434
 
                                                                        "current": "unknown",
2435
 
                                                                        "message": "Waiting for agent initialization to finish",
 
2435
                                                                        "current": "waiting",
 
2436
                                                                        "message": "waiting for machine",
2436
2437
                                                                        "since":   "01 Apr 15 01:23+10:00",
2437
2438
                                                                },
2438
2439
                                                                "juju-status": M{
2452
2453
                addMachine{machineId: "0", job: state.JobManageModel},
2453
2454
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
2454
2455
                startAliveMachine{"0"},
2455
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
2456
                setMachineStatus{"0", status.Started, ""},
2456
2457
 
2457
2458
                addCharm{"mysql"},
2458
2459
                addService{name: "mysql", charm: "mysql"},
2460
2461
                addMachine{machineId: "1", job: state.JobHostUnits},
2461
2462
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
2462
2463
                startAliveMachine{"1"},
2463
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
2464
                setMachineStatus{"1", status.Started, ""},
2464
2465
                addAliveUnit{"mysql", "1"},
2465
2466
                setUnitWorkloadVersion{"mysql/0", "the best!"},
2466
2467
 
2467
2468
                addMachine{machineId: "2", job: state.JobHostUnits},
2468
2469
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
2469
2470
                startAliveMachine{"2"},
2470
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
2471
                setMachineStatus{"2", status.Started, ""},
2471
2472
                addAliveUnit{"mysql", "2"},
2472
2473
                setUnitWorkloadVersion{"mysql/1", "not as good"},
2473
2474
 
2484
2485
                                        "mysql": mysqlCharm(M{
2485
2486
                                                "version": "not as good",
2486
2487
                                                "application-status": M{
2487
 
                                                        "current": "unknown",
2488
 
                                                        "message": "Waiting for agent initialization to finish",
 
2488
                                                        "current": "waiting",
 
2489
                                                        "message": "waiting for machine",
2489
2490
                                                        "since":   "01 Apr 15 01:23+10:00",
2490
2491
                                                },
2491
2492
                                                "units": M{
2492
2493
                                                        "mysql/0": M{
2493
2494
                                                                "machine": "1",
2494
2495
                                                                "workload-status": M{
2495
 
                                                                        "current": "unknown",
2496
 
                                                                        "message": "Waiting for agent initialization to finish",
 
2496
                                                                        "current": "waiting",
 
2497
                                                                        "message": "waiting for machine",
2497
2498
                                                                        "since":   "01 Apr 15 01:23+10:00",
2498
2499
                                                                },
2499
2500
                                                                "juju-status": M{
2505
2506
                                                        "mysql/1": M{
2506
2507
                                                                "machine": "2",
2507
2508
                                                                "workload-status": M{
2508
 
                                                                        "current": "unknown",
2509
 
                                                                        "message": "Waiting for agent initialization to finish",
 
2509
                                                                        "current": "waiting",
 
2510
                                                                        "message": "waiting for machine",
2510
2511
                                                                        "since":   "01 Apr 15 01:23+10:00",
2511
2512
                                                                },
2512
2513
                                                                "juju-status": M{
2539
2540
        return charm
2540
2541
}
2541
2542
 
 
2543
func meteredCharm(extras M) M {
 
2544
        charm := M{
 
2545
                "charm":        "cs:quantal/metered-1",
 
2546
                "charm-origin": "jujucharms",
 
2547
                "charm-name":   "metered",
 
2548
                "charm-rev":    1,
 
2549
                "series":       "quantal",
 
2550
                "os":           "ubuntu",
 
2551
                "exposed":      false,
 
2552
        }
 
2553
        for key, value := range extras {
 
2554
                charm[key] = value
 
2555
        }
 
2556
        return charm
 
2557
}
 
2558
 
2542
2559
func dummyCharm(extras M) M {
2543
2560
        charm := M{
2544
2561
                "charm":        "cs:quantal/dummy-1",
2638
2655
        // lp:1558657
2639
2656
        now := time.Now()
2640
2657
        s := status.StatusInfo{
2641
 
                Status:  status.StatusUnknown,
 
2658
                Status:  status.Unknown,
2642
2659
                Message: "missing",
2643
2660
                Since:   &now,
2644
2661
        }
2933
2950
        // lp:1558657
2934
2951
        now := time.Now()
2935
2952
        s := status.StatusInfo{
2936
 
                Status:  status.StatusActive,
 
2953
                Status:  status.Active,
2937
2954
                Message: "",
2938
2955
                Since:   &now,
2939
2956
        }
2940
2957
        err = u.SetStatus(s)
2941
2958
        c.Assert(err, jc.ErrorIsNil)
2942
2959
        sInfo := status.StatusInfo{
2943
 
                Status:  status.StatusIdle,
 
2960
                Status:  status.Idle,
2944
2961
                Message: "",
2945
2962
                Since:   &now,
2946
2963
        }
3256
3273
        mig, err := hostedSt.CreateMigration(state.MigrationSpec{
3257
3274
                InitiatedBy: names.NewUserTag("admin"),
3258
3275
                TargetInfo: migration.TargetInfo{
3259
 
                        ControllerTag: names.NewModelTag(utils.MustNewUUID().String()),
 
3276
                        ControllerTag: names.NewControllerTag(utils.MustNewUUID().String()),
3260
3277
                        Addrs:         []string{"1.2.3.4:5555", "4.3.2.1:6666"},
3261
3278
                        CACert:        "cert",
3262
3279
                        AuthTag:       names.NewUserTag("user"),
3293
3310
                addMachine{machineId: "0", job: state.JobManageModel},
3294
3311
                setAddresses{"0", network.NewAddresses("localhost")},
3295
3312
                startAliveMachine{"0"},
3296
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
3313
                setMachineStatus{"0", status.Started, ""},
3297
3314
                addCharm{"wordpress"},
3298
3315
                addCharm{"mysql"},
3299
3316
                addCharm{"logging"},
3302
3319
                addMachine{machineId: "1", job: state.JobHostUnits},
3303
3320
                setAddresses{"1", network.NewAddresses("localhost")},
3304
3321
                startAliveMachine{"1"},
3305
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
3322
                setMachineStatus{"1", status.Started, ""},
3306
3323
                addAliveUnit{"wordpress", "1"},
3307
 
                setAgentStatus{"wordpress/0", status.StatusIdle, "", nil},
3308
 
                setUnitStatus{"wordpress/0", status.StatusActive, "", nil},
 
3324
                setAgentStatus{"wordpress/0", status.Idle, "", nil},
 
3325
                setUnitStatus{"wordpress/0", status.Active, "", nil},
3309
3326
                addService{name: "mysql", charm: "mysql"},
3310
3327
                setServiceExposed{"mysql", true},
3311
3328
                addMachine{machineId: "2", job: state.JobHostUnits},
3312
3329
                setAddresses{"2", network.NewAddresses("10.0.0.1")},
3313
3330
                startAliveMachine{"2"},
3314
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
3331
                setMachineStatus{"2", status.Started, ""},
3315
3332
                addAliveUnit{"mysql", "2"},
3316
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
3317
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
 
3333
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
3334
                setUnitStatus{"mysql/0", status.Active, "", nil},
3318
3335
                addService{name: "logging", charm: "logging"},
3319
3336
                setServiceExposed{"logging", true},
3320
3337
                relateServices{"wordpress", "mysql"},
3323
3340
                addSubordinate{"wordpress/0", "logging"},
3324
3341
                addSubordinate{"mysql/0", "logging"},
3325
3342
                setUnitsAlive{"logging"},
3326
 
                setAgentStatus{"logging/0", status.StatusIdle, "", nil},
3327
 
                setUnitStatus{"logging/0", status.StatusActive, "", nil},
3328
 
                setAgentStatus{"logging/1", status.StatusError, "somehow lost in all those logs", nil},
 
3343
                setAgentStatus{"logging/0", status.Idle, "", nil},
 
3344
                setUnitStatus{"logging/0", status.Active, "", nil},
 
3345
                setAgentStatus{"logging/1", status.Error, "somehow lost in all those logs", nil},
3329
3346
        }
3330
3347
        for _, s := range steps {
3331
3348
                s.step(c, ctx)
3357
3374
                addMachine{machineId: "0", job: state.JobManageModel},
3358
3375
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
3359
3376
                startAliveMachine{"0"},
3360
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
3377
                setMachineStatus{"0", status.Started, ""},
3361
3378
                addCharm{"wordpress"},
3362
3379
                addCharm{"mysql"},
3363
3380
                addCharm{"logging"},
3367
3384
                addMachine{machineId: "1", job: state.JobHostUnits},
3368
3385
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
3369
3386
                startAliveMachine{"1"},
3370
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
3387
                setMachineStatus{"1", status.Started, ""},
3371
3388
                addAliveUnit{"wordpress", "1"},
3372
 
                setAgentStatus{"wordpress/0", status.StatusIdle, "", nil},
3373
 
                setUnitStatus{"wordpress/0", status.StatusActive, "", nil},
 
3389
                setAgentStatus{"wordpress/0", status.Idle, "", nil},
 
3390
                setUnitStatus{"wordpress/0", status.Active, "", nil},
3374
3391
 
3375
3392
                addService{name: "mysql", charm: "mysql"},
3376
3393
                setServiceExposed{"mysql", true},
3377
3394
                addMachine{machineId: "2", job: state.JobHostUnits},
3378
3395
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
3379
3396
                startAliveMachine{"2"},
3380
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
3397
                setMachineStatus{"2", status.Started, ""},
3381
3398
                addAliveUnit{"mysql", "2"},
3382
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
3383
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
 
3399
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
3400
                setUnitStatus{"mysql/0", status.Active, "", nil},
3384
3401
 
3385
3402
                addService{name: "logging", charm: "logging"},
3386
3403
                setServiceExposed{"logging", true},
3393
3410
                addSubordinate{"mysql/0", "logging"},
3394
3411
 
3395
3412
                setUnitsAlive{"logging"},
3396
 
                setAgentStatus{"logging/0", status.StatusIdle, "", nil},
3397
 
                setUnitStatus{"logging/0", status.StatusActive, "", nil},
3398
 
                setAgentStatus{"logging/1", status.StatusError, "somehow lost in all those logs", nil},
 
3413
                setAgentStatus{"logging/0", status.Idle, "", nil},
 
3414
                setUnitStatus{"logging/0", status.Active, "", nil},
 
3415
                setAgentStatus{"logging/1", status.Error, "somehow lost in all those logs", nil},
3399
3416
        }
3400
3417
 
3401
3418
        ctx.run(c, steps)
3435
3452
                addMachine{machineId: "0", job: state.JobManageModel},
3436
3453
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
3437
3454
                startMachineWithHardware{"0", instance.MustParseHardware("availability-zone=us-east-1a")},
3438
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
3455
                setMachineStatus{"0", status.Started, ""},
3439
3456
                addCharm{"wordpress"},
3440
3457
                addCharm{"mysql"},
3441
3458
                addCharm{"logging"},
3444
3461
                addMachine{machineId: "1", job: state.JobHostUnits},
3445
3462
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
3446
3463
                startAliveMachine{"1"},
3447
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
3464
                setMachineStatus{"1", status.Started, ""},
3448
3465
                addAliveUnit{"wordpress", "1"},
3449
 
                setAgentStatus{"wordpress/0", status.StatusIdle, "", nil},
3450
 
                setUnitStatus{"wordpress/0", status.StatusActive, "", nil},
 
3466
                setAgentStatus{"wordpress/0", status.Idle, "", nil},
 
3467
                setUnitStatus{"wordpress/0", status.Active, "", nil},
3451
3468
                setUnitTools{"wordpress/0", version.MustParseBinary("1.2.3-trusty-ppc")},
3452
3469
                addService{name: "mysql", charm: "mysql"},
3453
3470
                setServiceExposed{"mysql", true},
3454
3471
                addMachine{machineId: "2", job: state.JobHostUnits},
3455
3472
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
3456
3473
                startAliveMachine{"2"},
3457
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
3474
                setMachineStatus{"2", status.Started, ""},
3458
3475
                addAliveUnit{"mysql", "2"},
3459
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
 
3476
                setAgentStatus{"mysql/0", status.Idle, "", nil},
3460
3477
                setUnitStatus{
3461
3478
                        "mysql/0",
3462
 
                        status.StatusMaintenance,
 
3479
                        status.Maintenance,
3463
3480
                        "installing all the things", nil},
3464
3481
                setUnitTools{"mysql/0", version.MustParseBinary("1.2.3-trusty-ppc")},
3465
3482
                addService{name: "logging", charm: "logging"},
3470
3487
                addSubordinate{"wordpress/0", "logging"},
3471
3488
                addSubordinate{"mysql/0", "logging"},
3472
3489
                setUnitsAlive{"logging"},
3473
 
                setAgentStatus{"logging/0", status.StatusIdle, "", nil},
3474
 
                setUnitStatus{"logging/0", status.StatusActive, "", nil},
3475
 
                setAgentStatus{"logging/1", status.StatusError, "somehow lost in all those logs", nil},
 
3490
                setAgentStatus{"logging/0", status.Idle, "", nil},
 
3491
                setUnitStatus{"logging/0", status.Active, "", nil},
 
3492
                setAgentStatus{"logging/1", status.Error, "somehow lost in all those logs", nil},
3476
3493
                setUnitWorkloadVersion{"logging/1", "a bit too long, really"},
3477
3494
                setUnitWorkloadVersion{"wordpress/0", "4.5.3"},
3478
3495
                setUnitWorkloadVersion{"mysql/0", "5.7.13"},
3497
3514
MODEL       CONTROLLER  CLOUD/REGION        VERSION  NOTES
3498
3515
controller  kontroll    dummy/dummy-region  1.2.3    upgrade available: 1.2.4
3499
3516
 
3500
 
APP        VERSION  STATUS       SCALE  CHARM      STORE       REV  OS      NOTES
3501
 
logging    a bi...  error            2  logging    jujucharms    1  ubuntu  exposed
3502
 
mysql      5.7.13   maintenance      1  mysql      jujucharms    1  ubuntu  exposed
3503
 
wordpress  4.5.3    active           1  wordpress  jujucharms    3  ubuntu  exposed
3504
 
 
3505
 
RELATION           PROVIDES   CONSUMES   TYPE
3506
 
juju-info          logging    mysql      regular
3507
 
logging-dir        logging    wordpress  regular
3508
 
info               mysql      logging    subordinate
3509
 
db                 mysql      wordpress  regular
3510
 
logging-directory  wordpress  logging    subordinate
 
3517
APP        VERSION          STATUS       SCALE  CHARM      STORE       REV  OS      NOTES
 
3518
logging    a bit too lo...  error            2  logging    jujucharms    1  ubuntu  exposed
 
3519
mysql      5.7.13           maintenance      1  mysql      jujucharms    1  ubuntu  exposed
 
3520
wordpress  4.5.3            active           1  wordpress  jujucharms    3  ubuntu  exposed
3511
3521
 
3512
3522
UNIT         WORKLOAD     AGENT  MACHINE  PUBLIC-ADDRESS    PORTS  MESSAGE
3513
3523
mysql/0      maintenance  idle   2        controller-2.dns         installing all the things
3520
3530
1        started  controller-1.dns  controller-1  quantal  
3521
3531
2        started  controller-2.dns  controller-2  quantal  
3522
3532
 
 
3533
RELATION           PROVIDES   CONSUMES   TYPE
 
3534
juju-info          logging    mysql      regular
 
3535
logging-dir        logging    wordpress  regular
 
3536
info               mysql      logging    subordinate
 
3537
db                 mysql      wordpress  regular
 
3538
logging-directory  wordpress  logging    subordinate
 
3539
 
3523
3540
`[1:]
3524
3541
        c.Assert(string(stdout), gc.Equals, expected)
3525
3542
}
3535
3552
                                Units: map[string]unitStatus{
3536
3553
                                        "foo/0": {
3537
3554
                                                JujuStatusInfo: statusInfoContents{
3538
 
                                                        Current: status.StatusExecuting,
 
3555
                                                        Current: status.Executing,
3539
3556
                                                        Message: "running config-changed hook",
3540
3557
                                                },
3541
3558
                                                WorkloadStatusInfo: statusInfoContents{
3542
 
                                                        Current: status.StatusMaintenance,
 
3559
                                                        Current: status.Maintenance,
3543
3560
                                                        Message: "doing some work",
3544
3561
                                                },
3545
3562
                                        },
3546
3563
                                        "foo/1": {
3547
3564
                                                JujuStatusInfo: statusInfoContents{
3548
 
                                                        Current: status.StatusExecuting,
 
3565
                                                        Current: status.Executing,
3549
3566
                                                        Message: "running action backup database",
3550
3567
                                                },
3551
3568
                                                WorkloadStatusInfo: statusInfoContents{
3552
 
                                                        Current: status.StatusMaintenance,
 
3569
                                                        Current: status.Maintenance,
3553
3570
                                                        Message: "doing some work",
3554
3571
                                                },
3555
3572
                                        },
3609
3626
                addMachine{machineId: "0", job: state.JobManageModel},
3610
3627
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
3611
3628
                startAliveMachine{"0"},
3612
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
3629
                setMachineStatus{"0", status.Started, ""},
3613
3630
        }
3614
3631
 
3615
3632
        for _, s := range steps {
3686
3703
                // And the machine's job is to manage the environment
3687
3704
                addMachine{machineId: "0", job: state.JobManageModel},
3688
3705
                startAliveMachine{"0"},
3689
 
                setMachineStatus{"0", status.StatusStarted, ""},
 
3706
                setMachineStatus{"0", status.Started, ""},
3690
3707
                // And the machine's address is "controller-0.dns"
3691
3708
                setAddresses{"0", network.NewAddresses("controller-0.dns")},
3692
3709
                // And a container is started
3707
3724
                // And the machine's job is to host units
3708
3725
                addMachine{machineId: "1", job: state.JobHostUnits},
3709
3726
                startAliveMachine{"1"},
3710
 
                setMachineStatus{"1", status.StatusStarted, ""},
 
3727
                setMachineStatus{"1", status.Started, ""},
3711
3728
                // And the machine's address is "controller-1.dns"
3712
3729
                setAddresses{"1", network.NewAddresses("controller-1.dns")},
3713
3730
                // And a unit of "wordpress" is deployed to machine "1"
3714
3731
                addAliveUnit{"wordpress", "1"},
3715
3732
                // And the unit is started
3716
 
                setAgentStatus{"wordpress/0", status.StatusIdle, "", nil},
3717
 
                setUnitStatus{"wordpress/0", status.StatusActive, "", nil},
 
3733
                setAgentStatus{"wordpress/0", status.Idle, "", nil},
 
3734
                setUnitStatus{"wordpress/0", status.Active, "", nil},
3718
3735
                // And a machine is started
3719
3736
 
3720
3737
                // And the machine's ID is "2"
3721
3738
                // And the machine's job is to host units
3722
3739
                addMachine{machineId: "2", job: state.JobHostUnits},
3723
3740
                startAliveMachine{"2"},
3724
 
                setMachineStatus{"2", status.StatusStarted, ""},
 
3741
                setMachineStatus{"2", status.Started, ""},
3725
3742
                // And the machine's address is "controller-2.dns"
3726
3743
                setAddresses{"2", network.NewAddresses("controller-2.dns")},
3727
3744
                // And a unit of "mysql" is deployed to machine "2"
3728
3745
                addAliveUnit{"mysql", "2"},
3729
3746
                // And the unit is started
3730
 
                setAgentStatus{"mysql/0", status.StatusIdle, "", nil},
3731
 
                setUnitStatus{"mysql/0", status.StatusActive, "", nil},
 
3747
                setAgentStatus{"mysql/0", status.Idle, "", nil},
 
3748
                setUnitStatus{"mysql/0", status.Active, "", nil},
3732
3749
                // And the "logging" service is added
3733
3750
                addService{name: "logging", charm: "logging"},
3734
3751
                // And the service is exposed
3741
3758
                relateServices{"mysql", "logging"},
3742
3759
                // And the "logging" service is a subordinate to unit 0 of the "wordpress" service
3743
3760
                addSubordinate{"wordpress/0", "logging"},
3744
 
                setAgentStatus{"logging/0", status.StatusIdle, "", nil},
3745
 
                setUnitStatus{"logging/0", status.StatusActive, "", nil},
 
3761
                setAgentStatus{"logging/0", status.Idle, "", nil},
 
3762
                setUnitStatus{"logging/0", status.Active, "", nil},
3746
3763
                // And the "logging" service is a subordinate to unit 0 of the "mysql" service
3747
3764
                addSubordinate{"mysql/0", "logging"},
3748
 
                setAgentStatus{"logging/1", status.StatusIdle, "", nil},
3749
 
                setUnitStatus{"logging/1", status.StatusActive, "", nil},
 
3765
                setAgentStatus{"logging/1", status.Idle, "", nil},
 
3766
                setUnitStatus{"logging/1", status.Active, "", nil},
3750
3767
                setUnitsAlive{"logging"},
3751
3768
        }
3752
3769
 
3760
3777
        defer s.resetContext(c, ctx)
3761
3778
 
3762
3779
        // Given unit 1 of the "logging" service has an error
3763
 
        setAgentStatus{"logging/1", status.StatusError, "mock error", nil}.step(c, ctx)
 
3780
        setAgentStatus{"logging/1", status.Error, "mock error", nil}.step(c, ctx)
3764
3781
        // And unit 0 of the "mysql" service has an error
3765
 
        setAgentStatus{"mysql/0", status.StatusError, "mock error", nil}.step(c, ctx)
 
3782
        setAgentStatus{"mysql/0", status.Error, "mock error", nil}.step(c, ctx)
3766
3783
        // When I run juju status --format oneline started
3767
3784
        _, stdout, stderr := runStatus(c, "--format", "oneline", "active")
3768
3785
        c.Assert(string(stderr), gc.Equals, "")
3842
3859
                "          current: pending\n" +
3843
3860
                "          since: 01 Apr 15 01:23+10:00\n" +
3844
3861
                "        series: quantal\n" +
3845
 
                "    hardware: arch=amd64 cpu-cores=1 mem=1024M root-disk=8192M\n" +
 
3862
                "    hardware: arch=amd64 cores=1 mem=1024M root-disk=8192M\n" +
3846
3863
                "    controller-member-status: adding-vote\n" +
3847
3864
                "applications: {}\n"
3848
3865
 
3855
3872
        defer s.resetContext(c, ctx)
3856
3873
 
3857
3874
        // Given unit 1 of the "logging" service has an error
3858
 
        setAgentStatus{"logging/1", status.StatusError, "mock error", nil}.step(c, ctx)
 
3875
        setAgentStatus{"logging/1", status.Error, "mock error", nil}.step(c, ctx)
3859
3876
        // When I run juju status --format oneline error
3860
3877
        _, stdout, stderr := runStatus(c, "--format", "oneline", "error")
3861
3878
        c.Assert(stderr, gc.IsNil)
4095
4112
        addMachine{machineId: "0", job: state.JobManageModel},
4096
4113
        setAddresses{"0", network.NewAddresses("controller-0.dns")},
4097
4114
        startAliveMachine{"0"},
4098
 
        setMachineStatus{"0", status.StatusStarted, ""},
 
4115
        setMachineStatus{"0", status.Started, ""},
4099
4116
        addCharm{"dummy"},
4100
4117
        addService{name: "dummy-application", charm: "dummy"},
4101
4118
 
4102
4119
        addMachine{machineId: "1", job: state.JobHostUnits},
4103
4120
        startAliveMachine{"1"},
4104
4121
        setAddresses{"1", network.NewAddresses("controller-1.dns")},
4105
 
        setMachineStatus{"1", status.StatusStarted, ""},
 
4122
        setMachineStatus{"1", status.Started, ""},
4106
4123
 
4107
4124
        addAliveUnit{"dummy-application", "1"},
4108
4125
        expect{
4122
4139
                        "applications": M{
4123
4140
                                "dummy-application": dummyCharm(M{
4124
4141
                                        "application-status": M{
4125
 
                                                "current": "unknown",
4126
 
                                                "message": "Waiting for agent initialization to finish",
 
4142
                                                "current": "waiting",
 
4143
                                                "message": "waiting for machine",
4127
4144
                                                "since":   "01 Apr 15 01:23+10:00",
4128
4145
                                        },
4129
4146
                                        "units": M{
4130
4147
                                                "dummy-application/0": M{
4131
4148
                                                        "machine": "1",
4132
4149
                                                        "workload-status": M{
4133
 
                                                                "current": "unknown",
4134
 
                                                                "message": "Waiting for agent initialization to finish",
 
4150
                                                                "current": "waiting",
 
4151
                                                                "message": "waiting for machine",
4135
4152
                                                                "since":   "01 Apr 15 01:23+10:00",
4136
4153
                                                        },
4137
4154
                                                        "juju-status": M{
4159
4176
 
4160
4177
func (s *StatusSuite) TestFormatProvisioningError(c *gc.C) {
4161
4178
        status := &params.FullStatus{
 
4179
                Model: params.ModelStatusInfo{
 
4180
                        CloudTag: "cloud-dummy",
 
4181
                },
4162
4182
                Machines: map[string]params.MachineStatus{
4163
4183
                        "1": {
4164
4184
                                AgentStatus: params.DetailedStatus{
4174
4194
                },
4175
4195
        }
4176
4196
        formatter := NewStatusFormatter(status, true)
4177
 
        formatted := formatter.format()
 
4197
        formatted, err := formatter.format()
 
4198
        c.Assert(err, jc.ErrorIsNil)
4178
4199
 
4179
4200
        c.Check(formatted, jc.DeepEquals, formattedStatus{
 
4201
                Model: modelStatus{
 
4202
                        Cloud: "dummy",
 
4203
                },
4180
4204
                Machines: map[string]machineStatus{
4181
4205
                        "1": {
4182
4206
                                JujuStatus: statusInfoContents{Current: "error", Message: "<error while provisioning>"},