Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(492)

Side by Side Diff: state/api/provisioner/provisioner_test.go

Issue 78890043: state/api: implement APIHostPorts methods
Patch Set: state/api: implement APIHostPorts methods Created 11 years ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « state/api/provisioner/provisioner.go ('k') | state/api/rsyslog/rsyslog_test.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 Canonical Ltd. 1 // Copyright 2013 Canonical Ltd.
2 // Licensed under the AGPLv3, see LICENCE file for details. 2 // Licensed under the AGPLv3, see LICENCE file for details.
3 3
4 package provisioner_test 4 package provisioner_test
5 5
6 import ( 6 import (
7 stdtesting "testing" 7 stdtesting "testing"
8 8
9 jc "github.com/juju/testing/checkers" 9 jc "github.com/juju/testing/checkers"
10 gc "launchpad.net/gocheck" 10 gc "launchpad.net/gocheck"
11 11
12 "launchpad.net/juju-core/constraints" 12 "launchpad.net/juju-core/constraints"
13 "launchpad.net/juju-core/errors" 13 "launchpad.net/juju-core/errors"
14 "launchpad.net/juju-core/instance" 14 "launchpad.net/juju-core/instance"
15 "launchpad.net/juju-core/juju/testing" 15 "launchpad.net/juju-core/juju/testing"
16 "launchpad.net/juju-core/state" 16 "launchpad.net/juju-core/state"
17 "launchpad.net/juju-core/state/api" 17 "launchpad.net/juju-core/state/api"
18 commontesting "launchpad.net/juju-core/state/api/common/testing"
19 "launchpad.net/juju-core/state/api/params" 18 "launchpad.net/juju-core/state/api/params"
20 "launchpad.net/juju-core/state/api/provisioner" 19 "launchpad.net/juju-core/state/api/provisioner"
20 apitesting "launchpad.net/juju-core/state/api/testing"
21 statetesting "launchpad.net/juju-core/state/testing" 21 statetesting "launchpad.net/juju-core/state/testing"
22 coretesting "launchpad.net/juju-core/testing" 22 coretesting "launchpad.net/juju-core/testing"
23 "launchpad.net/juju-core/tools" 23 "launchpad.net/juju-core/tools"
24 "launchpad.net/juju-core/utils" 24 "launchpad.net/juju-core/utils"
25 "launchpad.net/juju-core/version" 25 "launchpad.net/juju-core/version"
26 ) 26 )
27 27
28 func TestAll(t *stdtesting.T) { 28 func TestAll(t *stdtesting.T) {
29 coretesting.MgoTestPackage(t) 29 coretesting.MgoTestPackage(t)
30 } 30 }
31 31
32 type provisionerSuite struct { 32 type provisionerSuite struct {
33 testing.JujuConnSuite 33 testing.JujuConnSuite
34 » *commontesting.EnvironWatcherTest 34 » *apitesting.EnvironWatcherTests
35 » *apitesting.APIAddresserTests
35 36
36 st *api.State 37 st *api.State
37 machine *state.Machine 38 machine *state.Machine
38 39
39 provisioner *provisioner.State 40 provisioner *provisioner.State
40 } 41 }
41 42
42 var _ = gc.Suite(&provisionerSuite{}) 43 var _ = gc.Suite(&provisionerSuite{})
43 44
44 func (s *provisionerSuite) SetUpTest(c *gc.C) { 45 func (s *provisionerSuite) SetUpTest(c *gc.C) {
45 s.JujuConnSuite.SetUpTest(c) 46 s.JujuConnSuite.SetUpTest(c)
46 47
47 var err error 48 var err error
48 s.machine, err = s.State.AddMachine("quantal", state.JobManageEnviron) 49 s.machine, err = s.State.AddMachine("quantal", state.JobManageEnviron)
49 c.Assert(err, gc.IsNil) 50 c.Assert(err, gc.IsNil)
50 password, err := utils.RandomPassword() 51 password, err := utils.RandomPassword()
51 c.Assert(err, gc.IsNil) 52 c.Assert(err, gc.IsNil)
52 err = s.machine.SetPassword(password) 53 err = s.machine.SetPassword(password)
53 c.Assert(err, gc.IsNil) 54 c.Assert(err, gc.IsNil)
54 err = s.machine.SetProvisioned("i-manager", "fake_nonce", nil) 55 err = s.machine.SetProvisioned("i-manager", "fake_nonce", nil)
55 c.Assert(err, gc.IsNil) 56 c.Assert(err, gc.IsNil)
56 s.st = s.OpenAPIAsMachine(c, s.machine.Tag(), password, "fake_nonce") 57 s.st = s.OpenAPIAsMachine(c, s.machine.Tag(), password, "fake_nonce")
57 c.Assert(s.st, gc.NotNil) 58 c.Assert(s.st, gc.NotNil)
59 err = s.machine.SetAddresses(instance.NewAddresses([]string{"0.1.2.3"}))
60 c.Assert(err, gc.IsNil)
58 61
59 // Create the provisioner API facade. 62 // Create the provisioner API facade.
60 s.provisioner = s.st.Provisioner() 63 s.provisioner = s.st.Provisioner()
61 c.Assert(s.provisioner, gc.NotNil) 64 c.Assert(s.provisioner, gc.NotNil)
62 65
63 » s.EnvironWatcherTest = commontesting.NewEnvironWatcherTest(s.provisioner , s.State, s.BackingState, commontesting.HasSecrets) 66 » s.EnvironWatcherTests = apitesting.NewEnvironWatcherTests(s.provisioner, s.BackingState, apitesting.HasSecrets)
67 » s.APIAddresserTests = apitesting.NewAPIAddresserTests(s.provisioner, s.B ackingState)
64 } 68 }
65 69
66 func (s *provisionerSuite) TestMachineTagAndId(c *gc.C) { 70 func (s *provisionerSuite) TestMachineTagAndId(c *gc.C) {
67 apiMachine, err := s.provisioner.Machine("machine-42") 71 apiMachine, err := s.provisioner.Machine("machine-42")
68 c.Assert(err, gc.ErrorMatches, "machine 42 not found") 72 c.Assert(err, gc.ErrorMatches, "machine 42 not found")
69 c.Assert(err, jc.Satisfies, params.IsCodeNotFound) 73 c.Assert(err, jc.Satisfies, params.IsCodeNotFound)
70 c.Assert(apiMachine, gc.IsNil) 74 c.Assert(apiMachine, gc.IsNil)
71 75
72 apiMachine, err = s.provisioner.Machine(s.machine.Tag()) 76 apiMachine, err = s.provisioner.Machine(s.machine.Tag())
73 c.Assert(err, gc.IsNil) 77 c.Assert(err, gc.IsNil)
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 c.Assert(err, gc.IsNil) 335 c.Assert(err, gc.IsNil)
332 336
333 stateAddresses, err := s.State.Addresses() 337 stateAddresses, err := s.State.Addresses()
334 c.Assert(err, gc.IsNil) 338 c.Assert(err, gc.IsNil)
335 339
336 addresses, err := s.provisioner.StateAddresses() 340 addresses, err := s.provisioner.StateAddresses()
337 c.Assert(err, gc.IsNil) 341 c.Assert(err, gc.IsNil)
338 c.Assert(addresses, gc.DeepEquals, stateAddresses) 342 c.Assert(addresses, gc.DeepEquals, stateAddresses)
339 } 343 }
340 344
341 func (s *provisionerSuite) TestAPIAddresses(c *gc.C) {
342 err := s.machine.SetAddresses([]instance.Address{
343 instance.NewAddress("0.1.2.3"),
344 })
345 c.Assert(err, gc.IsNil)
346
347 apiAddresses, err := s.State.APIAddressesFromMachines()
348 c.Assert(err, gc.IsNil)
349
350 addresses, err := s.provisioner.APIAddresses()
351 c.Assert(err, gc.IsNil)
352 c.Assert(addresses, gc.DeepEquals, apiAddresses)
353 }
354
355 func (s *provisionerSuite) TestContainerConfig(c *gc.C) { 345 func (s *provisionerSuite) TestContainerConfig(c *gc.C) {
356 result, err := s.provisioner.ContainerConfig() 346 result, err := s.provisioner.ContainerConfig()
357 c.Assert(err, gc.IsNil) 347 c.Assert(err, gc.IsNil)
358 c.Assert(result.ProviderType, gc.Equals, "dummy") 348 c.Assert(result.ProviderType, gc.Equals, "dummy")
359 c.Assert(result.AuthorizedKeys, gc.Equals, coretesting.FakeAuthKeys) 349 c.Assert(result.AuthorizedKeys, gc.Equals, coretesting.FakeAuthKeys)
360 c.Assert(result.SSLHostnameVerification, jc.IsTrue) 350 c.Assert(result.SSLHostnameVerification, jc.IsTrue)
361 } 351 }
362 352
363 func (s *provisionerSuite) TestCACert(c *gc.C) {
364 caCert, err := s.provisioner.CACert()
365 c.Assert(err, gc.IsNil)
366 c.Assert(caCert, gc.DeepEquals, s.State.CACert())
367 }
368
369 func (s *provisionerSuite) TestToolsWrongMachine(c *gc.C) { 353 func (s *provisionerSuite) TestToolsWrongMachine(c *gc.C) {
370 tools, err := s.provisioner.Tools("42") 354 tools, err := s.provisioner.Tools("42")
371 c.Assert(err, gc.ErrorMatches, "permission denied") 355 c.Assert(err, gc.ErrorMatches, "permission denied")
372 c.Assert(err, jc.Satisfies, params.IsCodeUnauthorized) 356 c.Assert(err, jc.Satisfies, params.IsCodeUnauthorized)
373 c.Assert(tools, gc.IsNil) 357 c.Assert(tools, gc.IsNil)
374 } 358 }
375 359
376 func (s *provisionerSuite) TestTools(c *gc.C) { 360 func (s *provisionerSuite) TestTools(c *gc.C) {
377 cur := version.Current 361 cur := version.Current
378 curTools := &tools.Tools{Version: cur, URL: ""} 362 curTools := &tools.Tools{Version: cur, URL: ""}
(...skipping 25 matching lines...) Expand all
404 c.Assert(err, gc.IsNil) 388 c.Assert(err, gc.IsNil)
405 err = apiMachine.SupportsNoContainers() 389 err = apiMachine.SupportsNoContainers()
406 c.Assert(err, gc.IsNil) 390 c.Assert(err, gc.IsNil)
407 391
408 err = s.machine.Refresh() 392 err = s.machine.Refresh()
409 c.Assert(err, gc.IsNil) 393 c.Assert(err, gc.IsNil)
410 containers, ok := s.machine.SupportedContainers() 394 containers, ok := s.machine.SupportedContainers()
411 c.Assert(ok, jc.IsTrue) 395 c.Assert(ok, jc.IsTrue)
412 c.Assert(containers, gc.DeepEquals, []instance.ContainerType{}) 396 c.Assert(containers, gc.DeepEquals, []instance.ContainerType{})
413 } 397 }
OLDNEW
« no previous file with comments | « state/api/provisioner/provisioner.go ('k') | state/api/rsyslog/rsyslog_test.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b