func (s *archSuite) TestSupportedArchitecturesMany(c *gc.C) { env, cloudSpec := s.setupMetadata(c, []string{"ppc64el", "amd64"}) imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{ CloudSpec: cloudSpec, }) arches, err := common.SupportedArchitectures(env, imageConstraint) c.Assert(err, jc.ErrorIsNil) c.Assert(arches, jc.SameContents, []string{"amd64", "ppc64el"}) }
func (s *archSuite) TestSupportedArchitecturesNone(c *gc.C) { env, cloudSpec := s.setupMetadata(c, nil) imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{ CloudSpec: cloudSpec, }) arches, err := common.SupportedArchitectures(env, imageConstraint) c.Assert(err, jc.ErrorIsNil) c.Assert(arches, gc.HasLen, 0) }
// SupportedArchitectures is specified on the EnvironCapability interface. func (e *Environ) SupportedArchitectures() ([]string, error) { e.archMutex.Lock() defer e.archMutex.Unlock() if e.supportedArchitectures != nil { return e.supportedArchitectures, nil } // Create a filter to get all images from our region and for the correct stream. cloudSpec, err := e.Region() if err != nil { return nil, err } imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{ CloudSpec: cloudSpec, Stream: e.Config().ImageStream(), }) e.supportedArchitectures, err = common.SupportedArchitectures(e, imageConstraint) return e.supportedArchitectures, err }
func (env *environ) SupportedArchitectures() ([]string, error) { env.archMutex.Lock() defer env.archMutex.Unlock() if env.supportedArchitectures != nil { return env.supportedArchitectures, nil } logger.Debugf("Getting supported architectures from simplestream.") cloudSpec, err := env.Region() if err != nil { return nil, err } imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{ CloudSpec: cloudSpec, Stream: env.Config().ImageStream(), }) env.supportedArchitectures, err = common.SupportedArchitectures(env, imageConstraint) logger.Debugf("Supported architectures: %v", env.supportedArchitectures) return env.supportedArchitectures, err }
// SupportedArchitectures is specified on the EnvironCapability interface. func (env *joyentEnviron) SupportedArchitectures() ([]string, error) { env.archLock.Lock() defer env.archLock.Unlock() if env.supportedArchitectures != nil { return env.supportedArchitectures, nil } cfg := env.Ecfg() // Create a filter to get all images from our region and for the correct stream. cloudSpec := simplestreams.CloudSpec{ Region: cfg.Region(), Endpoint: cfg.SdcUrl(), } imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{ CloudSpec: cloudSpec, Stream: cfg.ImageStream(), }) var err error env.supportedArchitectures, err = common.SupportedArchitectures(env, imageConstraint) return env.supportedArchitectures, err }
// SupportedArchitectures is specified on the EnvironCapability interface. func (env *azureEnviron) SupportedArchitectures() ([]string, error) { env.archMutex.Lock() defer env.archMutex.Unlock() if env.supportedArchitectures != nil { return env.supportedArchitectures, nil } // Create a filter to get all images from our region and for the correct stream. ecfg := env.getSnapshot().ecfg region := ecfg.location() cloudSpec := simplestreams.CloudSpec{ Region: region, Endpoint: getEndpoint(region), } imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{ CloudSpec: cloudSpec, Stream: ecfg.ImageStream(), }) var err error env.supportedArchitectures, err = common.SupportedArchitectures(env, imageConstraint) return env.supportedArchitectures, err }