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

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/apiserver/client/status_test.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
package client_test
5
5
 
6
6
import (
7
 
        jc "github.com/juju/testing/checkers"
8
 
        gc "gopkg.in/check.v1"
9
 
 
 
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"
15
19
)
16
20
 
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())
47
51
}
48
52
 
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()]
59
 
        if !ok {
60
 
                c.Fatalf("Missing machine with id %q", machine.Id())
61
 
        }
62
 
        c.Check(resultMachine.InstanceId, gc.Equals, instanceId)
63
 
}
64
 
 
65
53
var _ = gc.Suite(&statusUnitTestSuite{})
66
54
 
67
55
type statusUnitTestSuite struct {
164
152
                }
165
153
        }
166
154
}
 
155
 
 
156
type statusUpgradeUnitSuite struct {
 
157
        testing.CharmSuite
 
158
        jujutesting.JujuConnSuite
 
159
 
 
160
        charmrevisionupdater *charmrevisionupdater.CharmRevisionUpdaterAPI
 
161
        resources            *common.Resources
 
162
        authoriser           apiservertesting.FakeAuthorizer
 
163
}
 
164
 
 
165
var _ = gc.Suite(&statusUpgradeUnitSuite{})
 
166
 
 
167
func (s *statusUpgradeUnitSuite) SetUpSuite(c *gc.C) {
 
168
        s.JujuConnSuite.SetUpSuite(c)
 
169
        s.CharmSuite.SetUpSuite(c, &s.JujuConnSuite)
 
170
}
 
171
 
 
172
func (s *statusUpgradeUnitSuite) TearDownSuite(c *gc.C) {
 
173
        s.CharmSuite.TearDownSuite(c)
 
174
        s.JujuConnSuite.TearDownSuite(c)
 
175
}
 
176
 
 
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,
 
184
        }
 
185
        var err error
 
186
        s.charmrevisionupdater, err = charmrevisionupdater.NewCharmRevisionUpdaterAPI(s.State, s.resources, s.authoriser)
 
187
        c.Assert(err, jc.ErrorIsNil)
 
188
}
 
189
 
 
190
func (s *statusUpgradeUnitSuite) TearDownTest(c *gc.C) {
 
191
        s.CharmSuite.TearDownTest(c)
 
192
        s.JujuConnSuite.TearDownTest(c)
 
193
}
 
194
 
 
195
func (s *statusUpgradeUnitSuite) TestUpdateRevisions(c *gc.C) {
 
196
        s.AddMachine(c, "0", state.JobManageModel)
 
197
        s.SetupScenario(c)
 
198
        client := s.APIState.Client()
 
199
        status, _ := client.Status(nil)
 
200
 
 
201
        serviceStatus, ok := status.Services["mysql"]
 
202
        c.Assert(ok, gc.Equals, true)
 
203
        c.Assert(serviceStatus.CanUpgradeTo, gc.Equals, "")
 
204
 
 
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)
 
209
 
 
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")
 
215
}