LEFT | RIGHT |
(no file at all) | |
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 "fmt" | 7 "fmt" |
8 stdtesting "testing" | 8 stdtesting "testing" |
9 | 9 |
10 gc "launchpad.net/gocheck" | 10 gc "launchpad.net/gocheck" |
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
730 | 730 |
731 args := params.Entities{Entities: []params.Entity{agent}} | 731 args := params.Entities{Entities: []params.Entity{agent}} |
732 results, err := s.provisioner.Tools(args) | 732 results, err := s.provisioner.Tools(args) |
733 c.Assert(err, gc.IsNil) | 733 c.Assert(err, gc.IsNil) |
734 c.Check(results.Results, gc.HasLen, 1) | 734 c.Check(results.Results, gc.HasLen, 1) |
735 c.Assert(results.Results[0].Error, gc.IsNil) | 735 c.Assert(results.Results[0].Error, gc.IsNil) |
736 agentTools := results.Results[0].Tools | 736 agentTools := results.Results[0].Tools |
737 c.Check(agentTools.URL, gc.Not(gc.Equals), "") | 737 c.Check(agentTools.URL, gc.Not(gc.Equals), "") |
738 c.Check(agentTools.Version, gc.DeepEquals, cur) | 738 c.Check(agentTools.Version, gc.DeepEquals, cur) |
739 } | 739 } |
| 740 |
| 741 func (s *provisionerSuite) TestAddSupportedContainers(c *gc.C) { |
| 742 args := params.AddSupportedContainers{ |
| 743 Params: []params.AddMachineSupportedContainers{ |
| 744 { |
| 745 MachineTag: "machine-0", |
| 746 ContainerTypes: []instance.ContainerType{instanc
e.LXC}, |
| 747 }, |
| 748 { |
| 749 MachineTag: "machine-1", |
| 750 ContainerTypes: []instance.ContainerType{instanc
e.LXC, instance.KVM}, |
| 751 }, |
| 752 }, |
| 753 } |
| 754 results, err := s.provisioner.AddSupportedContainers(args) |
| 755 c.Assert(err, gc.IsNil) |
| 756 c.Assert(results.Results, gc.HasLen, 2) |
| 757 for _, result := range results.Results { |
| 758 c.Assert(result.Error, gc.IsNil) |
| 759 } |
| 760 m0, err := s.State.Machine("0") |
| 761 c.Assert(err, gc.IsNil) |
| 762 containers, ok := m0.SupportedContainers() |
| 763 c.Assert(ok, jc.IsTrue) |
| 764 c.Assert(containers, gc.DeepEquals, []instance.ContainerType{instance.LX
C}) |
| 765 m1, err := s.State.Machine("1") |
| 766 c.Assert(err, gc.IsNil) |
| 767 containers, ok = m1.SupportedContainers() |
| 768 c.Assert(ok, jc.IsTrue) |
| 769 c.Assert(containers, gc.DeepEquals, []instance.ContainerType{instance.LX
C, instance.KVM}) |
| 770 } |
| 771 |
| 772 func (s *provisionerSuite) TestAddSupportedContainersPermissions(c *gc.C) { |
| 773 // Login as a machine agent for machine 0. |
| 774 anAuthorizer := s.authorizer |
| 775 anAuthorizer.MachineAgent = true |
| 776 anAuthorizer.Manager = false |
| 777 anAuthorizer.Tag = s.machines[0].Tag() |
| 778 aProvisioner, err := provisioner.NewProvisionerAPI(s.State, s.resources,
anAuthorizer) |
| 779 c.Assert(err, gc.IsNil) |
| 780 c.Assert(aProvisioner, gc.NotNil) |
| 781 |
| 782 args := params.AddSupportedContainers{ |
| 783 Params: []params.AddMachineSupportedContainers{ |
| 784 { |
| 785 MachineTag: "machine-0", |
| 786 ContainerTypes: []instance.ContainerType{instanc
e.LXC}, |
| 787 }, |
| 788 { |
| 789 MachineTag: "machine-1", |
| 790 ContainerTypes: []instance.ContainerType{instanc
e.LXC}, |
| 791 }, |
| 792 }, |
| 793 } |
| 794 // Only machine 0 can have it's containers updated. |
| 795 results, err := aProvisioner.AddSupportedContainers(args) |
| 796 c.Assert(results, gc.DeepEquals, params.ErrorResults{ |
| 797 Results: []params.ErrorResult{ |
| 798 {Error: nil}, |
| 799 {Error: apiservertesting.ErrUnauthorized}, |
| 800 }, |
| 801 }) |
| 802 } |
LEFT | RIGHT |