func (s *linkLayerDevicesStateSuite) TestSetLinkLayerDevicesUpdatesProviderIDWhenNotSetOriginally(c *gc.C) { args := state.LinkLayerDeviceArgs{ Name: "foo", Type: state.EthernetDevice, } s.assertSetLinkLayerDevicesSucceedsAndResultMatchesArgs(c, args) args.ProviderID = "42" s.assertSetLinkLayerDevicesSucceedsAndResultMatchesArgs(c, args) }
func (s *linkLayerDevicesStateSuite) TestSetLinkLayerDevicesFailsForProviderIDChange(c *gc.C) { args := state.LinkLayerDeviceArgs{ Name: "foo", Type: state.EthernetDevice, ProviderID: "42", } s.assertSetLinkLayerDevicesSucceedsAndResultMatchesArgs(c, args) args.ProviderID = "43" s.assertSetLinkLayerDevicesFailsForArgs(c, args, `cannot change ProviderID of link layer device "foo"`) }
func (s *linkLayerDevicesStateSuite) TestSetLinkLayerDevicesDoesNotClearProviderIDOnceSet(c *gc.C) { args := state.LinkLayerDeviceArgs{ Name: "foo", Type: state.EthernetDevice, ProviderID: "42", } s.assertSetLinkLayerDevicesSucceedsAndResultMatchesArgs(c, args) args.ProviderID = "" err := s.machine.SetLinkLayerDevices(args) c.Assert(err, jc.ErrorIsNil) device, err := s.machine.LinkLayerDevice(args.Name) c.Assert(err, jc.ErrorIsNil) c.Assert(device.ProviderID(), gc.Equals, network.Id("42")) }
func (s *linkLayerDevicesStateSuite) TestSetLinkLayerDevicesUpdateWithDuplicateProviderIDFails(c *gc.C) { args := state.LinkLayerDeviceArgs{ Name: "foo", Type: state.EthernetDevice, ProviderID: "42", } s.assertSetLinkLayerDevicesSucceedsAndResultMatchesArgs(c, args) args.Name = "bar" args.ProviderID = "" s.assertSetLinkLayerDevicesSucceedsAndResultMatchesArgs(c, args) args.ProviderID = "42" err := s.assertSetLinkLayerDevicesFailsValidationForArgs(c, args, `ProviderID\(s\) not unique: 42`) c.Assert(err, jc.Satisfies, state.IsProviderIDNotUniqueError) }