func (s *InstancePollerSuite) TestAreManuallyProvisionedFailure(c *gc.C) { s.st.SetErrors( errors.New("pow!"), // m1 := FindEntity("1") nil, // m2 := FindEntity("2") errors.New("FAIL"), // m2.IsManual() errors.NotProvisionedf("machine 42"), // FindEntity("3") (ensure wrapping is preserved) ) s.st.SetMachineInfo(c, machineInfo{id: "1", isManual: true}) s.st.SetMachineInfo(c, machineInfo{id: "2", isManual: false}) result, err := s.api.AreManuallyProvisioned(s.machineEntities) c.Assert(err, jc.ErrorIsNil) c.Assert(result, jc.DeepEquals, params.BoolResults{ Results: []params.BoolResult{ {Error: apiservertesting.ServerError("pow!")}, {Error: apiservertesting.ServerError("FAIL")}, {Error: apiservertesting.NotProvisionedError("42")}, }}, ) s.st.CheckFindEntityCall(c, 0, "1") s.st.CheckFindEntityCall(c, 1, "2") s.st.CheckCall(c, 2, "IsManual") s.st.CheckFindEntityCall(c, 3, "3") }
func (s *InstancePollerSuite) TestProviderAddressesFailure(c *gc.C) { s.st.SetErrors( errors.New("pow!"), // m1 := FindEntity("1") nil, // m2 := FindEntity("2") errors.New("FAIL"), // m2.ProviderAddresses()- unused errors.NotProvisionedf("machine 42"), // FindEntity("3") (ensure wrapping is preserved) ) s.st.SetMachineInfo(c, machineInfo{id: "1"}) s.st.SetMachineInfo(c, machineInfo{id: "2"}) result, err := s.api.ProviderAddresses(s.machineEntities) c.Assert(err, jc.ErrorIsNil) c.Assert(result, jc.DeepEquals, params.MachineAddressesResults{ Results: []params.MachineAddressesResult{ {Error: apiservertesting.ServerError("pow!")}, {Addresses: nil}, {Error: apiservertesting.NotProvisionedError("42")}, }}, ) s.st.CheckFindEntityCall(c, 0, "1") s.st.CheckFindEntityCall(c, 1, "2") s.st.CheckCall(c, 2, "ProviderAddresses") s.st.CheckFindEntityCall(c, 3, "3") }
func (s *InstancePollerSuite) TestInstanceIdFailure(c *gc.C) { s.st.SetErrors( errors.New("pow!"), // m1 := FindEntity("1"); InstanceId not called nil, // m2 := FindEntity("2") errors.New("FAIL"), // m2.InstanceId() errors.NotProvisionedf("machine 42"), // FindEntity("3") (ensure wrapping is preserved) ) s.st.SetMachineInfo(c, machineInfo{id: "1", instanceId: ""}) s.st.SetMachineInfo(c, machineInfo{id: "2", instanceId: "i-bar"}) result, err := s.api.InstanceId(s.machineEntities) c.Assert(err, jc.ErrorIsNil) c.Assert(result, jc.DeepEquals, params.StringResults{ Results: []params.StringResult{ {Error: apiservertesting.ServerError("pow!")}, {Error: apiservertesting.ServerError("FAIL")}, {Error: apiservertesting.NotProvisionedError("42")}, }}, ) s.st.CheckFindEntityCall(c, 0, "1") s.st.CheckFindEntityCall(c, 1, "2") s.st.CheckCall(c, 2, "InstanceId") s.st.CheckFindEntityCall(c, 3, "3") }
func (s *InstancePollerSuite) TestLifeFailure(c *gc.C) { s.st.SetErrors( errors.New("pow!"), // m1 := FindEntity("1"); Life not called nil, // m2 := FindEntity("2") errors.New("FAIL"), // m2.Life() - unused errors.NotProvisionedf("machine 42"), // FindEntity("3") (ensure wrapping is preserved) ) s.st.SetMachineInfo(c, machineInfo{id: "1", life: state.Alive}) s.st.SetMachineInfo(c, machineInfo{id: "2", life: state.Dead}) s.st.SetMachineInfo(c, machineInfo{id: "3", life: state.Dying}) result, err := s.api.Life(s.machineEntities) c.Assert(err, jc.ErrorIsNil) c.Assert(result, jc.DeepEquals, params.LifeResults{ Results: []params.LifeResult{ {Error: apiservertesting.ServerError("pow!")}, {Life: params.Dead}, {Error: apiservertesting.NotProvisionedError("42")}, }}, ) s.st.CheckFindEntityCall(c, 0, "1") s.st.CheckFindEntityCall(c, 1, "2") s.st.CheckCall(c, 2, "Life") s.st.CheckFindEntityCall(c, 3, "3") }
func (s *withoutStateServerSuite) TestInstanceId(c *gc.C) { // Provision 2 machines first. err := s.machines[0].SetProvisioned("i-am", "fake_nonce", nil) c.Assert(err, gc.IsNil) hwChars := instance.MustParseHardware("arch=i386", "mem=4G") err = s.machines[1].SetProvisioned("i-am-not", "fake_nonce", &hwChars) c.Assert(err, gc.IsNil) args := params.Entities{Entities: []params.Entity{ {Tag: s.machines[0].Tag().String()}, {Tag: s.machines[1].Tag().String()}, {Tag: s.machines[2].Tag().String()}, {Tag: "machine-42"}, {Tag: "unit-foo-0"}, {Tag: "service-bar"}, }} result, err := s.provisioner.InstanceId(args) c.Assert(err, gc.IsNil) c.Assert(result, gc.DeepEquals, params.StringResults{ Results: []params.StringResult{ {Result: "i-am"}, {Result: "i-am-not"}, {Error: apiservertesting.NotProvisionedError("2")}, {Error: apiservertesting.NotFoundError("machine 42")}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, }, }) }
func (s *InstancePollerSuite) SetUpTest(c *gc.C) { s.BaseSuite.SetUpTest(c) s.authoriser = apiservertesting.FakeAuthorizer{ EnvironManager: true, } s.resources = common.NewResources() s.AddCleanup(func(*gc.C) { s.resources.StopAll() }) s.st = NewMockState() instancepoller.PatchState(s, s.st) var err error s.clock = jujutesting.NewClock(time.Now()) s.api, err = instancepoller.NewInstancePollerAPI(nil, s.resources, s.authoriser, s.clock) c.Assert(err, jc.ErrorIsNil) s.machineEntities = params.Entities{ Entities: []params.Entity{ {Tag: "machine-1"}, {Tag: "machine-2"}, {Tag: "machine-3"}, }} s.machineErrorResults = params.ErrorResults{ Results: []params.ErrorResult{ {Error: apiservertesting.ServerError("pow!")}, {Error: apiservertesting.ServerError("FAIL")}, {Error: apiservertesting.NotProvisionedError("42")}, }} s.mixedEntities = params.Entities{ Entities: []params.Entity{ {Tag: "machine-1"}, {Tag: "machine-2"}, {Tag: "machine-42"}, {Tag: "application-unknown"}, {Tag: "invalid-tag"}, {Tag: "unit-missing-1"}, {Tag: ""}, {Tag: "42"}, }} s.mixedErrorResults = params.ErrorResults{ Results: []params.ErrorResult{ {Error: nil}, {Error: nil}, {Error: apiservertesting.NotFoundError("machine 42")}, {Error: apiservertesting.ServerError(`"application-unknown" is not a valid machine tag`)}, {Error: apiservertesting.ServerError(`"invalid-tag" is not a valid tag`)}, {Error: apiservertesting.ServerError(`"unit-missing-1" is not a valid machine tag`)}, {Error: apiservertesting.ServerError(`"" is not a valid tag`)}, {Error: apiservertesting.ServerError(`"42" is not a valid tag`)}, }} }
func (s *machinerSuite) TestSetProviderNetworkConfigPermissions(c *gc.C) { args := params.Entities{Entities: []params.Entity{ {Tag: "machine-1"}, {Tag: "machine-0"}, {Tag: "machine-42"}, }} result, err := s.machiner.SetProviderNetworkConfig(args) c.Assert(err, jc.ErrorIsNil) c.Assert(result, gc.DeepEquals, params.ErrorResults{ Results: []params.ErrorResult{ {Error: apiservertesting.NotProvisionedError(s.machine1.Id())}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, }, }) }
func (s *firewallerBaseSuite) testInstanceId( c *gc.C, facade interface { InstanceId(args params.Entities) (params.StringResults, error) }, ) { // Provision 2 machines first. err := s.machines[0].SetProvisioned("i-am", "fake_nonce", nil) c.Assert(err, jc.ErrorIsNil) hwChars := instance.MustParseHardware("arch=i386", "mem=4G") err = s.machines[1].SetProvisioned("i-am-not", "fake_nonce", &hwChars) c.Assert(err, jc.ErrorIsNil) args := addFakeEntities(params.Entities{Entities: []params.Entity{ {Tag: s.machines[0].Tag().String()}, {Tag: s.machines[1].Tag().String()}, {Tag: s.machines[2].Tag().String()}, {Tag: s.service.Tag().String()}, {Tag: s.units[2].Tag().String()}, }}) result, err := facade.InstanceId(args) c.Assert(err, jc.ErrorIsNil) c.Assert(result, jc.DeepEquals, params.StringResults{ Results: []params.StringResult{ {Result: "i-am"}, {Result: "i-am-not"}, {Error: apiservertesting.NotProvisionedError("2")}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.NotFoundError("machine 42")}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, {Error: apiservertesting.ErrUnauthorized}, }, }) }