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

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/container/lxc/lxc_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:
35
35
        instancetest "github.com/juju/juju/instance/testing"
36
36
        "github.com/juju/juju/network"
37
37
        "github.com/juju/juju/provider/dummy"
 
38
        "github.com/juju/juju/status"
38
39
        coretesting "github.com/juju/juju/testing"
39
40
)
40
41
 
158
159
                mgr, err := lxc.NewContainerManager(container.ManagerConfig{
159
160
                        container.ConfigName: "juju",
160
161
                        "use-clone":          test.useClone,
161
 
                }, &containertesting.MockURLGetter{}, nil)
 
162
                }, &containertesting.MockURLGetter{})
162
163
                c.Assert(err, jc.ErrorIsNil)
163
164
                c.Check(lxc.GetCreateWithCloneValue(mgr), gc.Equals, test.expectClone)
164
165
        }
599
600
        if s.useAUFS {
600
601
                params["use-aufs"] = "true"
601
602
        }
602
 
        manager, err := lxc.NewContainerManager(
 
603
        manager, err := lxc.NewContainerManagerForTest(
603
604
                params, &containertesting.MockURLGetter{},
604
605
                &s.loopDeviceManager,
605
606
        )
611
612
        _, err := lxc.NewContainerManager(container.ManagerConfig{
612
613
                container.ConfigName: "BillyBatson",
613
614
                "shazam":             "Captain Marvel",
614
 
        }, &containertesting.MockURLGetter{}, nil)
 
615
        }, &containertesting.MockURLGetter{})
615
616
        c.Assert(err, jc.ErrorIsNil)
616
617
        c.Assert(c.GetTestLog(), jc.Contains, `WARNING juju.container unused config option: "shazam" -> "Captain Marvel"`)
617
618
}
793
794
        authorizedKeys := "authorized keys list"
794
795
        aptProxy := proxy.Settings{}
795
796
        aptMirror := "http://my.archive.ubuntu.com/ubuntu"
 
797
        callback := func(containerStatus status.Status, info string, data map[string]interface{}) error { return nil }
796
798
        template, err := lxc.EnsureCloneTemplate(
797
799
                "ext4",
798
800
                "quantal",
804
806
                true,
805
807
                &containertesting.MockURLGetter{},
806
808
                false,
 
809
                callback,
807
810
        )
808
811
        c.Assert(err, jc.ErrorIsNil)
809
812
        c.Assert(template.Name(), gc.Equals, name)
836
839
}
837
840
 
838
841
func (s *LxcSuite) TestCreateContainerEventsWithCloneExistingTemplate(c *gc.C) {
 
842
        s.HookCommandOutput(&lxc.FsCommandOutput, []byte("Type\next4\n"), nil)
839
843
        s.createTemplate(c)
840
844
        s.PatchValue(&s.useClone, true)
841
845
        manager := s.makeManager(c, "test")
848
852
}
849
853
 
850
854
func (s *LxcSuite) TestCreateContainerEventsWithCloneExistingTemplateAUFS(c *gc.C) {
 
855
        s.HookCommandOutput(&lxc.FsCommandOutput, []byte("Type\next4\n"), nil)
851
856
        s.createTemplate(c)
852
857
        s.PatchValue(&s.useClone, true)
853
858
        s.PatchValue(&s.useAUFS, true)
860
865
        s.AssertEvent(c, <-s.events, mock.Started, name)
861
866
}
862
867
 
 
868
func (s *LxcSuite) TestCreateContainerEventsWithCloneExistingTemplateBtrfs(c *gc.C) {
 
869
        s.HookCommandOutput(&lxc.FsCommandOutput, []byte("Type\nbtrfs\n"), nil)
 
870
        s.createTemplate(c)
 
871
        s.PatchValue(&s.useClone, true)
 
872
        manager := s.makeManager(c, "test")
 
873
        instance := containertesting.CreateContainer(c, manager, "1")
 
874
        name := string(instance.Id())
 
875
        cloned := <-s.events
 
876
        s.AssertEvent(c, cloned, mock.Cloned, "juju-quantal-lxc-template")
 
877
        c.Assert(cloned.Args, gc.DeepEquals, []string{"--snapshot"})
 
878
        s.AssertEvent(c, <-s.events, mock.Started, name)
 
879
}
 
880
 
863
881
func (s *LxcSuite) TestCreateContainerWithCloneMountsAndAutostarts(c *gc.C) {
864
882
        s.createTemplate(c)
865
883
        s.PatchValue(&s.useClone, true)
876
894
}
877
895
 
878
896
func (s *LxcSuite) TestContainerState(c *gc.C) {
 
897
        // TODO(perrito666) refactor state reporting to return a proper state.
879
898
        manager := s.makeManager(c, "test")
880
899
        c.Logf("%#v", manager)
881
900
        instance := containertesting.CreateContainer(c, manager, "1/lxc/0")
882
901
 
883
902
        // The mock container will be immediately "running".
884
 
        c.Assert(instance.Status(), gc.Equals, string(golxc.StateRunning))
 
903
        c.Assert(instance.Status().Message, gc.Equals, string(golxc.StateRunning))
885
904
 
886
905
        // DestroyContainer stops and then destroys the container, putting it
887
906
        // into "unknown" state.
888
907
        err := manager.DestroyContainer(instance.Id())
889
908
        c.Assert(err, jc.ErrorIsNil)
890
 
        c.Assert(instance.Status(), gc.Equals, string(golxc.StateUnknown))
 
909
        c.Assert(instance.Status().Message, gc.Equals, string(golxc.StateUnknown))
891
910
}
892
911
 
893
912
func (s *LxcSuite) TestDestroyContainer(c *gc.C) {