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

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

Issue 94410043: Use lxc clone by default (Closed)
Patch Set: Use lxc clone by default Created 10 years, 10 months 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
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"
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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 }
OLDNEW

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