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

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/api/controller/controller_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:
7
7
        "fmt"
8
8
        "time"
9
9
 
 
10
        "github.com/juju/errors"
10
11
        "github.com/juju/names"
11
12
        jc "github.com/juju/testing/checkers"
 
13
        "github.com/juju/utils"
12
14
        gc "gopkg.in/check.v1"
13
15
 
14
16
        "github.com/juju/juju/api/base"
54
56
                obtained = append(obtained, fmt.Sprintf("%s/%s", env.Owner, env.Name))
55
57
        }
56
58
        expected := []string{
57
 
                "admin@local/dummymodel",
 
59
                "admin@local/admin",
58
60
                "user@remote/first",
59
61
                "user@remote/second",
60
62
        }
65
67
        sysManager := s.OpenAPI(c)
66
68
        env, err := sysManager.ModelConfig()
67
69
        c.Assert(err, jc.ErrorIsNil)
68
 
        c.Assert(env["name"], gc.Equals, "dummymodel")
 
70
        c.Assert(env["name"], gc.Equals, "admin")
69
71
}
70
72
 
71
73
func (s *controllerSuite) TestDestroyController(c *gc.C) {
86
88
        c.Assert(err, jc.ErrorIsNil)
87
89
        c.Assert(results, jc.DeepEquals, []params.ModelBlockInfo{
88
90
                params.ModelBlockInfo{
89
 
                        Name:     "dummymodel",
 
91
                        Name:     "admin",
90
92
                        UUID:     s.State.ModelUUID(),
91
93
                        OwnerTag: s.AdminUserTag(c).String(),
92
94
                        Blocks: []string{
160
162
                Life:               params.Alive,
161
163
        }})
162
164
}
 
165
 
 
166
func (s *controllerSuite) TestInitiateModelMigration(c *gc.C) {
 
167
        st := s.Factory.MakeModel(c, nil)
 
168
        defer st.Close()
 
169
 
 
170
        _, err := st.GetModelMigration()
 
171
        c.Assert(errors.IsNotFound(err), jc.IsTrue)
 
172
 
 
173
        spec := controller.ModelMigrationSpec{
 
174
                ModelUUID:            st.ModelUUID(),
 
175
                TargetControllerUUID: randomUUID(),
 
176
                TargetAddrs:          []string{"1.2.3.4:5"},
 
177
                TargetCACert:         "cert",
 
178
                TargetUser:           "someone",
 
179
                TargetPassword:       "secret",
 
180
        }
 
181
 
 
182
        controller := s.OpenAPI(c)
 
183
        id, err := controller.InitiateModelMigration(spec)
 
184
        c.Assert(err, jc.ErrorIsNil)
 
185
        expectedId := st.ModelUUID() + ":0"
 
186
        c.Check(id, gc.Equals, expectedId)
 
187
 
 
188
        // Check database.
 
189
        mig, err := st.GetModelMigration()
 
190
        c.Assert(err, jc.ErrorIsNil)
 
191
        c.Check(mig.Id(), gc.Equals, expectedId)
 
192
}
 
193
 
 
194
func (s *controllerSuite) TestInitiateModelMigrationError(c *gc.C) {
 
195
        spec := controller.ModelMigrationSpec{
 
196
                ModelUUID:            randomUUID(), // Model doesn't exist.
 
197
                TargetControllerUUID: randomUUID(),
 
198
                TargetAddrs:          []string{"1.2.3.4:5"},
 
199
                TargetCACert:         "cert",
 
200
                TargetUser:           "someone",
 
201
                TargetPassword:       "secret",
 
202
        }
 
203
 
 
204
        controller := s.OpenAPI(c)
 
205
        id, err := controller.InitiateModelMigration(spec)
 
206
        c.Check(id, gc.Equals, "")
 
207
        c.Check(err, gc.ErrorMatches, "unable to read model: .+")
 
208
}
 
209
 
 
210
func randomUUID() string {
 
211
        return utils.MustNewUUID().String()
 
212
}