本文整理汇总了Golang中github.com/juju/juju/juju/arch.HostArch函数的典型用法代码示例。如果您正苦于以下问题:Golang HostArch函数的具体用法?Golang HostArch怎么用?Golang HostArch使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HostArch函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Bootstrap
// Bootstrap is specified in the Environ interface.
func (env *localEnviron) Bootstrap(ctx environs.BootstrapContext, args environs.BootstrapParams) (string, string, environs.BootstrapFinalizer, error) {
if err := ensureNotRoot(); err != nil {
return "", "", nil, err
}
// Make sure there are tools available for the
// host's architecture and series.
if _, err := args.AvailableTools.Match(tools.Filter{
Arch: arch.HostArch(),
Series: version.Current.Series,
}); err != nil {
return "", "", nil, err
}
cfg, err := env.Config().Apply(map[string]interface{}{
// Record the bootstrap IP, so the containers know where to go for storage.
"bootstrap-ip": env.bridgeAddress,
})
if err == nil {
err = env.SetConfig(cfg)
}
if err != nil {
logger.Errorf("failed to apply bootstrap-ip to config: %v", err)
return "", "", nil, err
}
return arch.HostArch(), version.Current.Series, env.finishBootstrap, nil
}
开发者ID:mhilton,项目名称:juju,代码行数:28,代码来源:environ.go
示例2: testFindToolsExact
func (s *toolsSuite) testFindToolsExact(c *gc.C, t common.ToolsStorageGetter, inStorage bool, develVersion bool) {
var called bool
s.PatchValue(common.EnvtoolsFindTools, func(e environs.Environ, major, minor int, stream string, filter coretools.Filter) (list coretools.List, err error) {
called = true
c.Assert(filter.Number, gc.Equals, version.Current.Number)
c.Assert(filter.Series, gc.Equals, version.Current.Series)
c.Assert(filter.Arch, gc.Equals, arch.HostArch())
if develVersion {
c.Assert(stream, gc.Equals, "devel")
} else {
c.Assert(stream, gc.Equals, "released")
}
return nil, errors.NotFoundf("tools")
})
toolsFinder := common.NewToolsFinder(s.State, t, sprintfURLGetter("tools:%s"))
result, err := toolsFinder.FindTools(params.FindToolsParams{
Number: version.Current.Number,
MajorVersion: -1,
MinorVersion: -1,
Series: version.Current.Series,
Arch: arch.HostArch(),
})
c.Assert(err, jc.ErrorIsNil)
if inStorage {
c.Assert(result.Error, gc.IsNil)
c.Assert(called, jc.IsFalse)
} else {
c.Assert(result.Error, gc.ErrorMatches, "tools not found")
c.Assert(called, jc.IsTrue)
}
}
开发者ID:mhilton,项目名称:juju,代码行数:31,代码来源:tools_test.go
示例3: validateUploadAllowed
// validateUploadAllowed returns an error if an attempt to upload tools should
// not be allowed.
func validateUploadAllowed(env environs.Environ, toolsArch *string) error {
// Now check that the architecture for which we are setting up an
// environment matches that from which we are bootstrapping.
hostArch := arch.HostArch()
// We can't build tools for a different architecture if one is specified.
if toolsArch != nil && *toolsArch != hostArch {
return fmt.Errorf("cannot build tools for %q using a machine running on %q", *toolsArch, hostArch)
}
// If no architecture is specified, ensure the target provider supports instances matching our architecture.
supportedArchitectures, err := env.SupportedArchitectures()
if err != nil {
return fmt.Errorf(
"no packaged tools available and cannot determine environment's supported architectures: %v", err)
}
archSupported := false
for _, arch := range supportedArchitectures {
if hostArch == arch {
archSupported = true
break
}
}
if !archSupported {
envType := env.Config().Type()
return errors.Errorf("environment %q of type %s does not support instances running on %q", env.Config().Name(), envType, hostArch)
}
return nil
}
开发者ID:mhilton,项目名称:juju,代码行数:29,代码来源:tools.go
示例4: TestFindAvailableToolsCompleteNoValidate
func (s *toolsSuite) TestFindAvailableToolsCompleteNoValidate(c *gc.C) {
s.PatchValue(&arch.HostArch, func() string { return arch.AMD64 })
var allTools tools.List
for _, series := range series.SupportedSeries() {
binary := version.Binary{
Number: version.Current.Number,
Series: series,
Arch: arch.HostArch(),
OS: version.Current.OS,
}
allTools = append(allTools, &tools.Tools{
Version: binary,
URL: "http://testing.invalid/tools.tar.gz",
})
}
s.PatchValue(bootstrap.FindTools, func(_ environs.Environ, major, minor int, stream string, f tools.Filter) (tools.List, error) {
return allTools, nil
})
env := newEnviron("foo", useDefaultKeys, nil)
availableTools, err := bootstrap.FindAvailableTools(env, nil, nil, false)
c.Assert(err, jc.ErrorIsNil)
c.Assert(availableTools, gc.HasLen, len(allTools))
c.Assert(env.supportedArchitecturesCount, gc.Equals, 0)
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:26,代码来源:tools_test.go
示例5: Bootstrap
func (e *bootstrapEnviron) Bootstrap(ctx environs.BootstrapContext, args environs.BootstrapParams) (string, string, environs.BootstrapFinalizer, error) {
e.bootstrapCount++
e.args = args
finalizer := func(_ environs.BootstrapContext, icfg *instancecfg.InstanceConfig) error {
e.finalizerCount++
e.instanceConfig = icfg
return nil
}
return arch.HostArch(), series.HostSeries(), finalizer, nil
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:10,代码来源:bootstrap_test.go
示例6: FindTools
func (f mockToolsFinder) FindTools(number version.Number, series string, a string) (coretools.List, error) {
v, err := version.ParseBinary(fmt.Sprintf("%s-%s-%s", number, series, arch.HostArch()))
if err != nil {
return nil, err
}
if a != "" {
v.Arch = a
}
return coretools.List{&coretools.Tools{Version: v}}, nil
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:10,代码来源:provisioner_test.go
示例7: createRunningContainer
func (s *KVMSuite) createRunningContainer(c *gc.C, name string) kvm.Container {
kvmContainer := s.ContainerFactory.New(name)
network := container.BridgeNetworkConfig("testbr0", 0, nil)
c.Assert(kvmContainer.Start(kvm.StartParams{
Series: "quantal",
Arch: arch.HostArch(),
UserDataFile: "userdata.txt",
Network: network}), gc.IsNil)
return kvmContainer
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:10,代码来源:kvm_test.go
示例8: TestConstraintsValidator
func (s *localJujuTestSuite) TestConstraintsValidator(c *gc.C) {
ctx := envtesting.BootstrapContext(c)
env, err := local.Provider.PrepareForBootstrap(ctx, minimalConfig(c))
c.Assert(err, jc.ErrorIsNil)
validator, err := env.ConstraintsValidator()
c.Assert(err, jc.ErrorIsNil)
hostArch := arch.HostArch()
cons := constraints.MustParse(fmt.Sprintf("arch=%s instance-type=foo tags=bar cpu-power=10 cpu-cores=2", hostArch))
unsupported, err := validator.Validate(cons)
c.Assert(err, jc.ErrorIsNil)
c.Assert(unsupported, jc.SameContents, []string{"cpu-cores", "cpu-power", "instance-type", "tags"})
}
开发者ID:Pankov404,项目名称:juju,代码行数:12,代码来源:environ_test.go
示例9: TestAutoUploadAfterFailedSync
func (s *BootstrapSuite) TestAutoUploadAfterFailedSync(c *gc.C) {
s.PatchValue(&version.Current.Series, config.LatestLtsSeries())
s.setupAutoUploadTest(c, "1.7.3", "quantal")
// Run command and check for that upload has been run for tools matching
// the current juju version.
opc, errc := cmdtesting.RunCommand(cmdtesting.NullContext(c), envcmd.Wrap(new(BootstrapCommand)), "-e", "devenv")
c.Assert(<-errc, gc.IsNil)
c.Check((<-opc).(dummy.OpBootstrap).Env, gc.Equals, "devenv")
icfg := (<-opc).(dummy.OpFinalizeBootstrap).InstanceConfig
c.Assert(icfg, gc.NotNil)
c.Assert(icfg.Tools.Version.String(), gc.Equals, "1.7.3.1-raring-"+arch.HostArch())
}
开发者ID:mhilton,项目名称:juju,代码行数:12,代码来源:bootstrap_test.go
示例10: testFindTools
func (s *provisionerSuite) testFindTools(c *gc.C, matchArch bool, apiError, logicError error) {
var toolsList = coretools.List{&coretools.Tools{Version: version.Current}}
var called bool
provisioner.PatchFacadeCall(s, s.provisioner, func(request string, args, response interface{}) error {
called = true
c.Assert(request, gc.Equals, "FindTools")
expected := params.FindToolsParams{
Number: version.Current.Number,
Series: version.Current.Series,
MinorVersion: -1,
MajorVersion: -1,
}
if matchArch {
expected.Arch = arch.HostArch()
}
c.Assert(args, gc.Equals, expected)
result := response.(*params.FindToolsResult)
result.List = toolsList
if logicError != nil {
result.Error = common.ServerError(logicError)
}
return apiError
})
var a *string
if matchArch {
arch := arch.HostArch()
a = &arch
}
apiList, err := s.provisioner.FindTools(version.Current.Number, version.Current.Series, a)
c.Assert(called, jc.IsTrue)
if apiError != nil {
c.Assert(err, gc.Equals, apiError)
} else if logicError != nil {
c.Assert(err.Error(), gc.Equals, logicError.Error())
} else {
c.Assert(err, jc.ErrorIsNil)
c.Assert(apiList, jc.SameContents, toolsList)
}
}
开发者ID:chrisjohnston,项目名称:juju,代码行数:40,代码来源:provisioner_test.go
示例11: setupAutoUploadTest
func (s *BootstrapSuite) setupAutoUploadTest(c *gc.C, vers, series string) environs.Environ {
s.PatchValue(&envtools.BundleTools, toolstesting.GetMockBundleTools(c))
sourceDir := createToolsSource(c, vAll)
s.PatchValue(&envtools.DefaultBaseURL, sourceDir)
// Change the tools location to be the test location and also
// the version and ensure their later restoring.
// Set the current version to be something for which there are no tools
// so we can test that an upload is forced.
s.PatchValue(&version.Current, version.MustParseBinary(vers+"-"+series+"-"+arch.HostArch()))
// Create home with dummy provider and remove all
// of its envtools.
return resetJujuHome(c, "devenv")
}
开发者ID:mhilton,项目名称:juju,代码行数:15,代码来源:bootstrap_test.go
示例12: TestConstraintsValidatorVocab
func (s *localJujuTestSuite) TestConstraintsValidatorVocab(c *gc.C) {
env := s.Prepare(c)
validator, err := env.ConstraintsValidator()
c.Assert(err, jc.ErrorIsNil)
hostArch := arch.HostArch()
var invalidArch string
for _, a := range arch.AllSupportedArches {
if a != hostArch {
invalidArch = a
break
}
}
cons := constraints.MustParse(fmt.Sprintf("arch=%s", invalidArch))
_, err = validator.Validate(cons)
c.Assert(err, gc.ErrorMatches, "invalid constraint value: arch="+invalidArch+"\nvalid values are:.*")
}
开发者ID:Pankov404,项目名称:juju,代码行数:17,代码来源:environ_test.go
示例13: UploadFakeTools
// UploadFakeTools uploads fake tools of the architectures in
// s.UploadArches for each LTS release to the specified storage.
func (s *ToolsFixture) UploadFakeTools(c *gc.C, stor storage.Storage, toolsDir, stream string) {
arches := s.UploadArches
if len(arches) == 0 {
arches = []string{arch.HostArch()}
}
var versions []version.Binary
for _, arch := range arches {
v := version.Current
v.Arch = arch
for _, series := range toolsLtsSeries {
v.Series = series
versions = append(versions, v)
}
}
_, err := UploadFakeToolsVersions(stor, toolsDir, stream, versions...)
c.Assert(err, jc.ErrorIsNil)
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:19,代码来源:tools.go
示例14: locallyBuildableTools
// locallyBuildableTools returns the list of tools that
// can be built locally, for series of the same OS.
func locallyBuildableTools() (buildable coretools.List) {
for _, series := range version.SupportedSeries() {
if os, err := version.GetOSFromSeries(series); err != nil || os != version.Current.OS {
continue
}
binary := version.Binary{
Number: version.Current.Number,
Series: series,
Arch: arch.HostArch(),
OS: version.Current.OS,
}
// Increment the build number so we know it's a development build.
binary.Build++
buildable = append(buildable, &coretools.Tools{Version: binary})
}
return buildable
}
开发者ID:mhilton,项目名称:juju,代码行数:19,代码来源:tools.go
示例15: TestMissingToolsUploadFailedError
func (s *BootstrapSuite) TestMissingToolsUploadFailedError(c *gc.C) {
buildToolsTarballAlwaysFails := func(forceVersion *version.Number, stream string) (*sync.BuiltTools, error) {
return nil, fmt.Errorf("an error")
}
s.setupAutoUploadTest(c, "1.7.3", "precise")
s.PatchValue(&sync.BuildToolsTarball, buildToolsTarballAlwaysFails)
ctx, err := coretesting.RunCommand(c, envcmd.Wrap(&BootstrapCommand{}), "-e", "devenv")
c.Check(coretesting.Stderr(ctx), gc.Equals, fmt.Sprintf(`
Bootstrapping environment "devenv"
Starting new instance for initial state server
Building tools to upload (1.7.3.1-raring-%s)
`[1:], arch.HostArch()))
c.Check(err, gc.ErrorMatches, "failed to bootstrap environment: cannot upload bootstrap tools: an error")
}
开发者ID:mhilton,项目名称:juju,代码行数:18,代码来源:bootstrap_test.go
示例16: TestBootstrapClearsUseSSHStorage
func (s *bootstrapSuite) TestBootstrapClearsUseSSHStorage(c *gc.C) {
s.PatchValue(&manualDetectSeriesAndHardwareCharacteristics, func(string) (instance.HardwareCharacteristics, string, error) {
arch := arch.HostArch()
return instance.HardwareCharacteristics{Arch: &arch}, "precise", nil
})
s.PatchValue(&manualCheckProvisioned, func(string) (bool, error) {
return false, nil
})
// use-sshstorage is initially true.
cfg := s.env.Config()
c.Assert(cfg.UnknownAttrs()["use-sshstorage"], jc.IsTrue)
_, _, _, err := s.env.Bootstrap(envtesting.BootstrapContext(c), environs.BootstrapParams{})
c.Assert(err, jc.ErrorIsNil)
// Bootstrap must set use-sshstorage to false within the environment.
cfg = s.env.Config()
c.Assert(cfg.UnknownAttrs()["use-sshstorage"], jc.IsFalse)
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:20,代码来源:environ_test.go
示例17: testFindTools
func (s *provisionerSuite) testFindTools(c *gc.C, matchArch bool, apiError, logicError error) {
var toolsList = coretools.List{&coretools.Tools{Version: version.Current}}
var called bool
var a string
if matchArch {
// if matchArch is true, this will be overwriten with the host's arch, otherwise
// leave a blank.
a = arch.HostArch()
}
provisioner.PatchFacadeCall(s, s.provisioner, func(request string, args, response interface{}) error {
called = true
c.Assert(request, gc.Equals, "FindTools")
expected := params.FindToolsParams{
Number: version.Current.Number,
Series: series.HostSeries(),
Arch: a,
MinorVersion: -1,
MajorVersion: -1,
}
c.Assert(args, gc.Equals, expected)
result := response.(*params.FindToolsResult)
result.List = toolsList
if logicError != nil {
result.Error = common.ServerError(logicError)
}
return apiError
})
apiList, err := s.provisioner.FindTools(version.Current.Number, series.HostSeries(), a)
c.Assert(called, jc.IsTrue)
if apiError != nil {
c.Assert(err, gc.Equals, apiError)
} else if logicError != nil {
c.Assert(err.Error(), gc.Equals, logicError.Error())
} else {
c.Assert(err, jc.ErrorIsNil)
c.Assert(apiList, jc.SameContents, toolsList)
}
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:39,代码来源:provisioner_test.go
示例18: createContainer
func createContainer(c *gc.C, manager container.Manager, machineId string) instance.Instance {
machineNonce := "fake-nonce"
stateInfo := jujutesting.FakeStateInfo(machineId)
apiInfo := jujutesting.FakeAPIInfo(machineId)
instanceConfig, err := instancecfg.NewInstanceConfig(machineId, machineNonce, imagemetadata.ReleasedStream, "quantal", true, nil, stateInfo, apiInfo)
c.Assert(err, jc.ErrorIsNil)
network := container.BridgeNetworkConfig("virbr0", 0, nil)
instanceConfig.Tools = &tools.Tools{
Version: version.MustParseBinary("2.3.4-foo-bar"),
URL: "http://tools.testing.invalid/2.3.4-foo-bar.tgz",
}
environConfig := dummyConfig(c)
err = instancecfg.FinishInstanceConfig(instanceConfig, environConfig)
c.Assert(err, jc.ErrorIsNil)
inst, hardware, err := manager.CreateContainer(instanceConfig, "precise", network, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(hardware, gc.NotNil)
expected := fmt.Sprintf("arch=%s cpu-cores=1 mem=512M root-disk=8192M", arch.HostArch())
c.Assert(hardware.String(), gc.Equals, expected)
return inst
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:23,代码来源:live_test.go
示例19: SupportedArchitectures
// SupportedArchitectures is specified on the EnvironCapability interface.
func (*localEnviron) SupportedArchitectures() ([]string, error) {
localArch := arch.HostArch()
return []string{localArch}, nil
}
开发者ID:Pankov404,项目名称:juju,代码行数:5,代码来源:environ.go
示例20: init
const version = "1.21-alpha1"
// The version that we switched over from old style numbering to new style.
var switchOverVersion = MustParse("1.19.9")
// lsbReleaseFile is the name of the file that is read in order to determine
// the release version of ubuntu.
var lsbReleaseFile = "/etc/lsb-release"
// Current gives the current version of the system. If the file
// "FORCE-VERSION" is present in the same directory as the running
// binary, it will override this.
var Current = Binary{
Number: MustParse(version),
Series: mustOSVersion(),
Arch: arch.HostArch(),
}
var Compiler = runtime.Compiler
func init() {
toolsDir := filepath.Dir(os.Args[0])
v, err := ioutil.ReadFile(filepath.Join(toolsDir, "FORCE-VERSION"))
if err != nil {
if !os.IsNotExist(err) {
fmt.Fprintf(os.Stderr, "WARNING: cannot read forced version: %v\n", err)
}
return
}
Current.Number = MustParse(strings.TrimSpace(string(v)))
}
开发者ID:klyachin,项目名称:juju,代码行数:31,代码来源:version.go
注:本文中的github.com/juju/juju/juju/arch.HostArch函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论