Ejemplo n.º 1
0
func (*undertakerSuite) TestHandle_NoRemovalOnErrorReleasing(c *gc.C) {
	api := fakeAPI{
		Stub:     &testing.Stub{},
		removals: []string{"3", "4/lxd/4", "5"},
		interfaces: map[string][]network.ProviderInterfaceInfo{
			"4/lxd/4": []network.ProviderInterfaceInfo{
				{InterfaceName: "chloe"},
			},
		},
	}
	releaser := fakeReleaser{Stub: &testing.Stub{}}
	releaser.SetErrors(errors.New("couldn't release address"))
	u := machineundertaker.Undertaker{
		API:      &api,
		Releaser: &releaser,
	}
	err := u.Handle(nil)
	c.Assert(err, jc.ErrorIsNil)

	c.Assert(releaser.Calls(), gc.HasLen, 1)
	releaser.CheckCall(c, 0, "ReleaseContainerAddresses",
		[]network.ProviderInterfaceInfo{{InterfaceName: "chloe"}},
	)

	checkRemovalsMatch(c, api.Stub, "3", "5")
}
Ejemplo n.º 2
0
func (*undertakerSuite) TestHandle_ErrorOnRemoval(c *gc.C) {
	api := fakeAPI{
		Stub:     &testing.Stub{},
		removals: []string{"3", "4/lxd/4"},
	}
	api.SetErrors(nil, errors.New("couldn't remove machine 3"))
	u := machineundertaker.Undertaker{API: &api}
	err := u.Handle(nil)
	c.Assert(err, jc.ErrorIsNil)
	checkRemovalsMatch(c, api.Stub, "3", "4/lxd/4")
}