本文整理匯總了Golang中github.com/juju/juju/environs.Environ.Region方法的典型用法代碼示例。如果您正苦於以下問題:Golang Environ.Region方法的具體用法?Golang Environ.Region怎麽用?Golang Environ.Region使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/juju/juju/environs.Environ
的用法示例。
在下文中一共展示了Environ.Region方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: FindTools
// FindTools returns a List containing all tools in the given stream, with a given
// major.minor version number available in the cloud instance, filtered by filter.
// If minorVersion = -1, then only majorVersion is considered.
// If no *available* tools have the supplied major.minor version number, or match the
// supplied filter, the function returns a *NotFoundError.
func FindTools(env environs.Environ, majorVersion, minorVersion int, stream string,
filter coretools.Filter) (list coretools.List, err error) {
var cloudSpec simplestreams.CloudSpec
switch env := env.(type) {
case simplestreams.HasRegion:
if cloudSpec, err = env.Region(); err != nil {
return nil, err
}
case HasAgentMirror:
if cloudSpec, err = env.AgentMirror(); err != nil {
return nil, err
}
}
// If only one of region or endpoint is provided, that is a problem.
if cloudSpec.Region != cloudSpec.Endpoint && (cloudSpec.Region == "" || cloudSpec.Endpoint == "") {
return nil, fmt.Errorf("cannot find tools without a complete cloud configuration")
}
logger.Infof("finding tools in stream %q", stream)
if minorVersion >= 0 {
logger.Infof("reading tools with major.minor version %d.%d", majorVersion, minorVersion)
} else {
logger.Infof("reading tools with major version %d", majorVersion)
}
defer convertToolsError(&err)
// Construct a tools filter.
// Discard all that are known to be irrelevant.
if filter.Number != version.Zero {
logger.Infof("filtering tools by version: %s", filter.Number)
}
if filter.Series != "" {
logger.Infof("filtering tools by series: %s", filter.Series)
}
if filter.Arch != "" {
logger.Infof("filtering tools by architecture: %s", filter.Arch)
}
sources, err := GetMetadataSources(env)
if err != nil {
return nil, err
}
return FindToolsForCloud(sources, cloudSpec, stream, majorVersion, minorVersion, filter)
}