7
jc "github.com/juju/testing/checkers"
7
"github.com/juju/juju/apiserver/charmrevisionupdater"
8
"github.com/juju/juju/apiserver/charmrevisionupdater/testing"
10
9
"github.com/juju/juju/apiserver/client"
10
"github.com/juju/juju/apiserver/common"
11
11
"github.com/juju/juju/apiserver/params"
12
apiservertesting "github.com/juju/juju/apiserver/testing"
12
13
"github.com/juju/juju/instance"
14
jujutesting "github.com/juju/juju/juju/testing"
13
15
"github.com/juju/juju/state"
14
16
"github.com/juju/juju/testing/factory"
17
jc "github.com/juju/testing/checkers"
18
gc "gopkg.in/check.v1"
17
21
type statusSuite struct {
34
38
client := s.APIState.Client()
35
39
status, err := client.Status(nil)
36
40
c.Assert(err, jc.ErrorIsNil)
37
c.Check(status.ModelName, gc.Equals, "dummymodel")
41
c.Check(status.ModelName, gc.Equals, "admin")
38
42
c.Check(status.Services, gc.HasLen, 0)
39
43
c.Check(status.Machines, gc.HasLen, 1)
40
44
c.Check(status.Networks, gc.HasLen, 0)
46
50
c.Check(resultMachine.Series, gc.Equals, machine.Series())
49
func (s *statusSuite) TestLegacyStatus(c *gc.C) {
50
machine := s.addMachine(c)
51
instanceId := "i-fakeinstance"
52
err := machine.SetProvisioned(instance.Id(instanceId), "fakenonce", nil)
53
c.Assert(err, jc.ErrorIsNil)
54
client := s.APIState.Client()
55
status, err := client.LegacyStatus()
56
c.Assert(err, jc.ErrorIsNil)
57
c.Check(status.Machines, gc.HasLen, 1)
58
resultMachine, ok := status.Machines[machine.Id()]
60
c.Fatalf("Missing machine with id %q", machine.Id())
62
c.Check(resultMachine.InstanceId, gc.Equals, instanceId)
65
53
var _ = gc.Suite(&statusUnitTestSuite{})
67
55
type statusUnitTestSuite struct {
156
type statusUpgradeUnitSuite struct {
158
jujutesting.JujuConnSuite
160
charmrevisionupdater *charmrevisionupdater.CharmRevisionUpdaterAPI
161
resources *common.Resources
162
authoriser apiservertesting.FakeAuthorizer
165
var _ = gc.Suite(&statusUpgradeUnitSuite{})
167
func (s *statusUpgradeUnitSuite) SetUpSuite(c *gc.C) {
168
s.JujuConnSuite.SetUpSuite(c)
169
s.CharmSuite.SetUpSuite(c, &s.JujuConnSuite)
172
func (s *statusUpgradeUnitSuite) TearDownSuite(c *gc.C) {
173
s.CharmSuite.TearDownSuite(c)
174
s.JujuConnSuite.TearDownSuite(c)
177
func (s *statusUpgradeUnitSuite) SetUpTest(c *gc.C) {
178
s.JujuConnSuite.SetUpTest(c)
179
s.CharmSuite.SetUpTest(c)
180
s.resources = common.NewResources()
181
s.AddCleanup(func(_ *gc.C) { s.resources.StopAll() })
182
s.authoriser = apiservertesting.FakeAuthorizer{
183
EnvironManager: true,
186
s.charmrevisionupdater, err = charmrevisionupdater.NewCharmRevisionUpdaterAPI(s.State, s.resources, s.authoriser)
187
c.Assert(err, jc.ErrorIsNil)
190
func (s *statusUpgradeUnitSuite) TearDownTest(c *gc.C) {
191
s.CharmSuite.TearDownTest(c)
192
s.JujuConnSuite.TearDownTest(c)
195
func (s *statusUpgradeUnitSuite) TestUpdateRevisions(c *gc.C) {
196
s.AddMachine(c, "0", state.JobManageModel)
198
client := s.APIState.Client()
199
status, _ := client.Status(nil)
201
serviceStatus, ok := status.Services["mysql"]
202
c.Assert(ok, gc.Equals, true)
203
c.Assert(serviceStatus.CanUpgradeTo, gc.Equals, "")
205
// Update to the latest available charm revision.
206
result, err := s.charmrevisionupdater.UpdateLatestRevisions()
207
c.Assert(err, jc.ErrorIsNil)
208
c.Assert(result.Error, gc.IsNil)
210
// Check if CanUpgradeTo suggest the latest revision.
211
status, _ = client.Status(nil)
212
serviceStatus, ok = status.Services["mysql"]
213
c.Assert(ok, gc.Equals, true)
214
c.Assert(serviceStatus.CanUpgradeTo, gc.Equals, "cs:quantal/mysql-23")