OLD | NEW |
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" |
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 }) | 543 }) |
544 } | 544 } |
545 | 545 |
546 func (s *provisionerSuite) TestContainerManagerConfigLXC(c *gc.C) { | 546 func (s *provisionerSuite) TestContainerManagerConfigLXC(c *gc.C) { |
547 args := params.ContainerManagerConfigParams{Type: instance.LXC} | 547 args := params.ContainerManagerConfigParams{Type: instance.LXC} |
548 st, err := state.Open(s.StateInfo(c), state.DialOpts{}, state.Policy(nil
)) | 548 st, err := state.Open(s.StateInfo(c), state.DialOpts{}, state.Policy(nil
)) |
549 c.Assert(err, gc.IsNil) | 549 c.Assert(err, gc.IsNil) |
550 defer st.Close() | 550 defer st.Close() |
551 | 551 |
552 tests := []struct { | 552 tests := []struct { |
553 » » lxcUseClone bool | 553 » » lxcUseClone bool |
554 » » expectedUseClone string | 554 » » lxcUseCloneAufs bool |
| 555 » » expectedUseClone string |
| 556 » » expectedUseCloneAufs string |
555 }{{ | 557 }{{ |
556 » » lxcUseClone: false, | 558 » » lxcUseClone: true, |
557 » » expectedUseClone: "false", | 559 » » expectedUseClone: "true", |
| 560 » » expectedUseCloneAufs: "false", |
558 }, { | 561 }, { |
559 » » lxcUseClone: true, | 562 » » lxcUseClone: false, |
560 » » expectedUseClone: "true", | 563 » » expectedUseClone: "false", |
| 564 » » expectedUseCloneAufs: "false", |
| 565 » }, { |
| 566 » » lxcUseCloneAufs: false, |
| 567 » » expectedUseClone: "false", |
| 568 » » expectedUseCloneAufs: "false", |
| 569 » }, { |
| 570 » » lxcUseClone: true, |
| 571 » » lxcUseCloneAufs: true, |
| 572 » » expectedUseClone: "true", |
| 573 » » expectedUseCloneAufs: "true", |
561 }} | 574 }} |
562 | 575 |
563 » // Change lxc-use-clone, and ensure it gets picked up. | 576 » result, err := s.provisioner.ContainerManagerConfig(args) |
| 577 » c.Assert(err, gc.IsNil) |
| 578 » c.Assert(result.ManagerConfig[container.ConfigName], gc.Equals, "juju") |
| 579 » c.Assert(result.ManagerConfig["use-clone"], gc.Equals, "") |
| 580 |
| 581 » // Change lxc-clone, and ensure it gets picked up. |
564 for i, t := range tests { | 582 for i, t := range tests { |
565 c.Logf("test %d: %+v", i, t) | 583 c.Logf("test %d: %+v", i, t) |
566 err = st.UpdateEnvironConfig(map[string]interface{}{ | 584 err = st.UpdateEnvironConfig(map[string]interface{}{ |
567 » » » "lxc-use-clone": t.lxcUseClone, | 585 » » » "lxc-clone": t.lxcUseClone, |
| 586 » » » "lxc-clone-aufs": t.lxcUseCloneAufs, |
568 }, nil, nil) | 587 }, nil, nil) |
569 c.Assert(err, gc.IsNil) | 588 c.Assert(err, gc.IsNil) |
570 result, err := s.provisioner.ContainerManagerConfig(args) | 589 result, err := s.provisioner.ContainerManagerConfig(args) |
571 c.Assert(err, gc.IsNil) | 590 c.Assert(err, gc.IsNil) |
572 » » c.Assert(result.ManagerConfig, gc.DeepEquals, map[string]string{ | 591 » » c.Assert(result.ManagerConfig[container.ConfigName], gc.Equals,
"juju") |
573 » » » container.ConfigName: "juju", | 592 » » c.Assert(result.ManagerConfig["use-clone"], gc.Equals, t.expecte
dUseClone) |
574 » » » "use-clone": t.expectedUseClone, | 593 » » c.Assert(result.ManagerConfig["use-aufs"], gc.Equals, t.expected
UseCloneAufs) |
575 » » }) | |
576 } | 594 } |
577 } | 595 } |
578 | 596 |
579 func (s *provisionerSuite) TestContainerManagerConfigPermissive(c *gc.C) { | 597 func (s *provisionerSuite) TestContainerManagerConfigPermissive(c *gc.C) { |
580 // ContainerManagerConfig is permissive of container types, and | 598 // ContainerManagerConfig is permissive of container types, and |
581 // will just return the basic type-independent configuration. | 599 // will just return the basic type-independent configuration. |
582 args := params.ContainerManagerConfigParams{Type: "invalid"} | 600 args := params.ContainerManagerConfigParams{Type: "invalid"} |
583 result, err := s.provisioner.ContainerManagerConfig(args) | 601 result, err := s.provisioner.ContainerManagerConfig(args) |
584 c.Assert(err, gc.IsNil) | 602 c.Assert(err, gc.IsNil) |
585 c.Assert(result.ManagerConfig, gc.DeepEquals, map[string]string{ | 603 c.Assert(result.ManagerConfig, gc.DeepEquals, map[string]string{ |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 c.Assert(err, gc.IsNil) | 651 c.Assert(err, gc.IsNil) |
634 err = apiMachine.SupportsNoContainers() | 652 err = apiMachine.SupportsNoContainers() |
635 c.Assert(err, gc.IsNil) | 653 c.Assert(err, gc.IsNil) |
636 | 654 |
637 err = s.machine.Refresh() | 655 err = s.machine.Refresh() |
638 c.Assert(err, gc.IsNil) | 656 c.Assert(err, gc.IsNil) |
639 containers, ok := s.machine.SupportedContainers() | 657 containers, ok := s.machine.SupportedContainers() |
640 c.Assert(ok, jc.IsTrue) | 658 c.Assert(ok, jc.IsTrue) |
641 c.Assert(containers, gc.DeepEquals, []instance.ContainerType{}) | 659 c.Assert(containers, gc.DeepEquals, []instance.ContainerType{}) |
642 } | 660 } |
OLD | NEW |