func (*undertakerSuite) TestMaybeReleaseAddresses_NoNetworking(c *gc.C) { api := fakeAPI{Stub: &testing.Stub{}} u := machineundertaker.Undertaker{API: &api} err := u.MaybeReleaseAddresses(names.NewMachineTag("3")) c.Assert(err, jc.ErrorIsNil) api.CheckCallNames(c) }
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") }
func (*undertakerSuite) TestMaybeReleaseAddresses_NoAddresses(c *gc.C) { api := fakeAPI{Stub: &testing.Stub{}} releaser := fakeReleaser{Stub: &testing.Stub{}} u := machineundertaker.Undertaker{ API: &api, Releaser: &releaser, } err := u.MaybeReleaseAddresses(names.NewMachineTag("4/lxd/4")) c.Assert(err, jc.ErrorIsNil) releaser.CheckCallNames(c) }
func (*undertakerSuite) TestMaybeReleaseAddresses_ErrorGettingInfo(c *gc.C) { api := fakeAPI{Stub: &testing.Stub{}} api.SetErrors(errors.New("a funny thing happened on the way")) releaser := fakeReleaser{} u := machineundertaker.Undertaker{ API: &api, Releaser: &releaser, } err := u.MaybeReleaseAddresses(names.NewMachineTag("4/lxd/2")) c.Assert(err, gc.ErrorMatches, "a funny thing happened on the way") }
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") }
func (*undertakerSuite) TestMaybeReleaseAddresses_Success(c *gc.C) { api := fakeAPI{ Stub: &testing.Stub{}, interfaces: map[string][]network.ProviderInterfaceInfo{ "4/lxd/4": []network.ProviderInterfaceInfo{ {InterfaceName: "chloe"}, }, }, } releaser := fakeReleaser{Stub: &testing.Stub{}} u := machineundertaker.Undertaker{ API: &api, Releaser: &releaser, } err := u.MaybeReleaseAddresses(names.NewMachineTag("4/lxd/4")) c.Assert(err, jc.ErrorIsNil) releaser.CheckCall(c, 0, "ReleaseContainerAddresses", []network.ProviderInterfaceInfo{{InterfaceName: "chloe"}}, ) }
func (*undertakerSuite) TestMaybeReleaseAddresses_ErrorReleasing(c *gc.C) { api := fakeAPI{ Stub: &testing.Stub{}, interfaces: map[string][]network.ProviderInterfaceInfo{ "4/lxd/4": []network.ProviderInterfaceInfo{ {InterfaceName: "chloe"}, }, }, } releaser := fakeReleaser{Stub: &testing.Stub{}} releaser.SetErrors(errors.New("something unexpected")) u := machineundertaker.Undertaker{ API: &api, Releaser: &releaser, } err := u.MaybeReleaseAddresses(names.NewMachineTag("4/lxd/4")) c.Assert(err, gc.ErrorMatches, "something unexpected") releaser.CheckCall(c, 0, "ReleaseContainerAddresses", []network.ProviderInterfaceInfo{{InterfaceName: "chloe"}}, ) }