func (s *SubnetsSuite) TestAllZonesWithNoBackingZonesAndOpenFails(c *gc.C) { apiservertesting.BackingInstance.SetUp( c, apiservertesting.StubZonedEnvironName, apiservertesting.WithoutZones, apiservertesting.WithSpaces, apiservertesting.WithSubnets) apiservertesting.SharedStub.SetErrors( nil, // Backing.AvailabilityZones nil, // Backing.ModelConfig nil, // Backing.CloudSpec errors.NotValidf("config"), // Provider.Open ) results, err := networkingcommon.AllZones(apiservertesting.BackingInstance) c.Assert(err, gc.ErrorMatches, `cannot update known zones: opening environment: config not valid`, ) // Verify the cause is not obscured. c.Assert(err, jc.Satisfies, errors.IsNotValid) c.Assert(results, jc.DeepEquals, params.ZoneResults{}) apiservertesting.CheckMethodCalls(c, apiservertesting.SharedStub, apiservertesting.BackingCall("AvailabilityZones"), apiservertesting.BackingCall("ModelConfig"), apiservertesting.BackingCall("CloudSpec"), apiservertesting.ProviderCall("Open", apiservertesting.BackingInstance.EnvConfig), ) }
func (s *SubnetsSuite) TestAllZonesWithNoBackingZonesAndModelConfigFails(c *gc.C) { apiservertesting.BackingInstance.SetUp( c, apiservertesting.StubZonedEnvironName, apiservertesting.WithoutZones, apiservertesting.WithSpaces, apiservertesting.WithSubnets) apiservertesting.SharedStub.SetErrors( nil, // Backing.AvailabilityZones errors.NotFoundf("config"), // Backing.ModelConfig ) results, err := networkingcommon.AllZones(apiservertesting.BackingInstance) c.Assert(err, gc.ErrorMatches, `cannot update known zones: getting model config: config not found`, ) // Verify the cause is not obscured. c.Assert(err, jc.Satisfies, errors.IsNotFound) c.Assert(results, jc.DeepEquals, params.ZoneResults{}) apiservertesting.CheckMethodCalls(c, apiservertesting.SharedStub, apiservertesting.BackingCall("AvailabilityZones"), apiservertesting.BackingCall("ModelConfig"), ) }
func (s *SubnetsSuite) TestAllZonesUsesBackingZonesWhenAvailable(c *gc.C) { results, err := networkingcommon.AllZones(apiservertesting.BackingInstance) c.Assert(err, jc.ErrorIsNil) s.AssertAllZonesResult(c, results, apiservertesting.BackingInstance.Zones) apiservertesting.CheckMethodCalls(c, apiservertesting.SharedStub, apiservertesting.BackingCall("AvailabilityZones"), ) }
func (s *SubnetsSuite) TestAllZonesWhenBackingAvailabilityZonesFails(c *gc.C) { apiservertesting.SharedStub.SetErrors(errors.NotSupportedf("zones")) results, err := networkingcommon.AllZones(apiservertesting.BackingInstance) c.Assert(err, gc.ErrorMatches, "zones not supported") // Verify the cause is not obscured. c.Assert(err, jc.Satisfies, errors.IsNotSupported) c.Assert(results, jc.DeepEquals, params.ZoneResults{}) apiservertesting.CheckMethodCalls(c, apiservertesting.SharedStub, apiservertesting.BackingCall("AvailabilityZones"), ) }
func (s *SubnetsSuite) TestAllZonesWithNoBackingZonesUpdates(c *gc.C) { apiservertesting.BackingInstance.SetUp( c, apiservertesting.StubZonedEnvironName, apiservertesting.WithoutZones, apiservertesting.WithSpaces, apiservertesting.WithSubnets) results, err := networkingcommon.AllZones(apiservertesting.BackingInstance) c.Assert(err, jc.ErrorIsNil) s.AssertAllZonesResult(c, results, apiservertesting.ProviderInstance.Zones) apiservertesting.CheckMethodCalls(c, apiservertesting.SharedStub, apiservertesting.BackingCall("AvailabilityZones"), apiservertesting.BackingCall("ModelConfig"), apiservertesting.ProviderCall("Open", apiservertesting.BackingInstance.EnvConfig), apiservertesting.ZonedEnvironCall("AvailabilityZones"), apiservertesting.BackingCall("SetAvailabilityZones", apiservertesting.ProviderInstance.Zones), ) }
func (s *SubnetsSuite) TestAllZonesWithNoBackingZonesAndZonesNotSupported(c *gc.C) { // ZonedEnviron not supported apiservertesting.BackingInstance.SetUp( c, apiservertesting.StubEnvironName, apiservertesting.WithoutZones, apiservertesting.WithSpaces, apiservertesting.WithSubnets) results, err := networkingcommon.AllZones(apiservertesting.BackingInstance) c.Assert(err, gc.ErrorMatches, `cannot update known zones: availability zones not supported`, ) // Verify the cause is not obscured. c.Assert(err, jc.Satisfies, errors.IsNotSupported) c.Assert(results, jc.DeepEquals, params.ZoneResults{}) apiservertesting.CheckMethodCalls(c, apiservertesting.SharedStub, apiservertesting.BackingCall("AvailabilityZones"), apiservertesting.BackingCall("ModelConfig"), apiservertesting.ProviderCall("Open", apiservertesting.BackingInstance.EnvConfig), ) }
// AllZones is defined on the API interface. func (api *subnetsAPI) AllZones() (params.ZoneResults, error) { return networkingcommon.AllZones(api.backing) }
// AllZones is defined on the API interface. func (api *subnetsAPI) AllZones() (params.ZoneResults, error) { if err := api.checkCanRead(); err != nil { return params.ZoneResults{}, err } return networkingcommon.AllZones(api.backing) }