本文整理匯總了Golang中github.com/juju/juju/environs/sync.Upload函數的典型用法代碼示例。如果您正苦於以下問題:Golang Upload函數的具體用法?Golang Upload怎麽用?Golang Upload使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了Upload函數的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestUploadToolsBadBuild
func (s *badBuildSuite) TestUploadToolsBadBuild(c *gc.C) {
// Test that original Upload Func fails as expected
t, err := sync.Upload(s.env.Storage(), nil)
c.Assert(t, gc.IsNil)
c.Assert(err, gc.ErrorMatches, `build command "go" failed: exit status 1; `)
// Test that Upload func passes after BundleTools func is mocked out
s.PatchValue(&envtools.BundleTools, toolstesting.GetMockBundleTools(c))
t, err = sync.Upload(s.env.Storage(), nil)
c.Assert(err, gc.IsNil)
c.Assert(t.Version, gc.Equals, version.Current)
c.Assert(t.URL, gc.Not(gc.Equals), "")
}
示例2: TestUploadToolsBadBuild
func (s *badBuildSuite) TestUploadToolsBadBuild(c *gc.C) {
stor, err := filestorage.NewFileStorageWriter(c.MkDir())
c.Assert(err, jc.ErrorIsNil)
// Test that original Upload Func fails as expected
t, err := sync.Upload(stor, "released", nil)
c.Assert(t, gc.IsNil)
c.Assert(err, gc.ErrorMatches, `cannot build jujud agent binary from source: build command \"go\" failed: exit status 1; `)
// Test that Upload func passes after BundleTools func is mocked out
s.PatchValue(&envtools.BundleTools, toolstesting.GetMockBundleTools(c, nil))
t, err = sync.Upload(stor, "released", nil)
c.Assert(err, jc.ErrorIsNil)
s.assertEqualsCurrentVersion(c, t.Version)
c.Assert(t.URL, gc.Not(gc.Equals), "")
}
示例3: TestUpload
func (s *uploadSuite) TestUpload(c *gc.C) {
t, err := sync.Upload(s.targetStorage, "released", nil)
c.Assert(err, jc.ErrorIsNil)
s.assertEqualsCurrentVersion(c, t.Version)
c.Assert(t.URL, gc.Not(gc.Equals), "")
s.assertUploadedTools(c, t, []string{series.HostSeries()}, "released")
}
示例4: TestUploadAndForceVersion
func (s *uploadSuite) TestUploadAndForceVersion(c *gc.C) {
vers := jujuversion.Current
vers.Patch++
s.patchBundleTools(c, &vers)
t, err := sync.Upload(s.targetStorage, "released", &vers)
c.Assert(err, jc.ErrorIsNil)
c.Assert(t.Version, gc.Equals, version.Binary{Number: jujuversion.Current, Arch: arch.HostArch(), Series: series.HostSeries()})
}
示例5: TestBootstrapWithDefaultSeries
func (t *LiveTests) TestBootstrapWithDefaultSeries(c *gc.C) {
if !t.HasProvisioner {
c.Skip("HasProvisioner is false; cannot test deployment")
}
current := version.Current
other := current
other.Series = "quantal"
if current == other {
other.Series = "precise"
}
dummyCfg, err := config.New(config.NoDefaults, dummy.SampleConfig().Merge(coretesting.Attrs{
"state-server": false,
"name": "dummy storage",
}))
dummyenv, err := environs.Prepare(dummyCfg, coretesting.Context(c), configstore.NewMem())
c.Assert(err, gc.IsNil)
defer dummyenv.Destroy()
t.Destroy(c)
attrs := t.TestConfig.Merge(coretesting.Attrs{"default-series": other.Series})
cfg, err := config.New(config.NoDefaults, attrs)
c.Assert(err, gc.IsNil)
env, err := environs.Prepare(cfg, coretesting.Context(c), t.ConfigStore)
c.Assert(err, gc.IsNil)
defer environs.Destroy(env, t.ConfigStore)
currentName := envtools.StorageName(current)
otherName := envtools.StorageName(other)
envStorage := env.Storage()
dummyStorage := dummyenv.Storage()
defer envStorage.Remove(otherName)
_, err = sync.Upload(dummyStorage, ¤t.Number)
c.Assert(err, gc.IsNil)
// This will only work while cross-compiling across releases is safe,
// which depends on external elements. Tends to be safe for the last
// few releases, but we may have to refactor some day.
err = storageCopy(dummyStorage, currentName, envStorage, otherName)
c.Assert(err, gc.IsNil)
err = bootstrap.Bootstrap(coretesting.Context(c), env, environs.BootstrapParams{})
c.Assert(err, gc.IsNil)
st := t.Env.(testing.GetStater).GetStateInAPIServer()
// Wait for machine agent to come up on the bootstrap
// machine and ensure it deployed the proper series.
m0, err := st.Machine("0")
c.Assert(err, gc.IsNil)
mw0 := newMachineToolWaiter(m0)
defer mw0.Stop()
waitAgentTools(c, mw0, other)
}
示例6: TestUploadFakeSeries
func (s *uploadSuite) TestUploadFakeSeries(c *gc.C) {
seriesToUpload := "precise"
if seriesToUpload == version.Current.Series {
seriesToUpload = "raring"
}
t, err := sync.Upload(s.env.Storage(), nil, "quantal", seriesToUpload)
c.Assert(err, gc.IsNil)
s.assertUploadedTools(c, t, seriesToUpload)
}
示例7: TestUploadFakeSeries
func (s *uploadSuite) TestUploadFakeSeries(c *gc.C) {
seriesToUpload := "precise"
if seriesToUpload == series.HostSeries() {
seriesToUpload = "raring"
}
t, err := sync.Upload(s.targetStorage, "released", nil, "quantal", seriesToUpload)
c.Assert(err, jc.ErrorIsNil)
s.assertUploadedTools(c, t, []string{seriesToUpload, "quantal", series.HostSeries()}, "released")
}
示例8: TestUploadAndForceVersion
func (s *uploadSuite) TestUploadAndForceVersion(c *gc.C) {
// This test actually tests three things:
// the writing of the FORCE-VERSION file;
// the reading of the FORCE-VERSION file by the version package;
// and the reading of the version from jujud.
vers := version.Current
vers.Patch++
t, err := sync.Upload(s.env.Storage(), &vers.Number)
c.Assert(err, gc.IsNil)
c.Assert(t.Version, gc.Equals, vers)
}
示例9: TestUploadAndForceVersion
func (s *uploadSuite) TestUploadAndForceVersion(c *gc.C) {
// This test actually tests three things:
// the writing of the FORCE-VERSION file;
// the reading of the FORCE-VERSION file by the version package;
// and the reading of the version from jujud.
vers := version.Current
vers.Patch++
t, err := sync.Upload(s.targetStorage, "released", &vers)
c.Assert(err, jc.ErrorIsNil)
c.Assert(t.Version, gc.Equals, version.Binary{Number: vers, Arch: arch.HostArch(), Series: series.HostSeries()})
}
示例10: TestUpload
func (s *uploadSuite) TestUpload(c *gc.C) {
t, err := sync.Upload(s.env.Storage(), nil)
c.Assert(err, gc.IsNil)
c.Assert(t.Version, gc.Equals, version.Current)
c.Assert(t.URL, gc.Not(gc.Equals), "")
// TODO(waigani) Does this test need to download tools? If not,
// sync.bundleTools can be mocked to improve test speed.
dir := downloadTools(c, t)
out, err := exec.Command(filepath.Join(dir, "jujud"), "version").CombinedOutput()
c.Assert(err, gc.IsNil)
c.Assert(string(out), gc.Equals, version.Current.String()+"\n")
}
示例11: UploadTools
// UploadTools uploads tools for the specified series and any other relevant series to
// the environment storage, after which it sets the agent-version. If forceVersion is true,
// we allow uploading even when the agent-version is already set in the environment.
func UploadTools(ctx environs.BootstrapContext, env environs.Environ, toolsArch *string, forceVersion bool, bootstrapSeries ...string) error {
logger.Infof("checking that upload is possible")
// Check the series are valid.
for _, series := range bootstrapSeries {
if _, err := ubuntu.SeriesVersion(series); err != nil {
return err
}
}
// See that we are allowed to upload the tools.
if err := validateUploadAllowed(env, toolsArch, forceVersion); err != nil {
return err
}
// Make storage interruptible.
interrupted := make(chan os.Signal, 1)
interruptStorage := make(chan struct{})
ctx.InterruptNotify(interrupted)
defer ctx.StopInterruptNotify(interrupted)
defer close(interrupted)
go func() {
defer close(interruptStorage) // closing interrupts all uploads
if _, ok := <-interrupted; ok {
ctx.Infof("cancelling tools upload")
}
}()
stor := newInterruptibleStorage(env.Storage(), interruptStorage)
cfg := env.Config()
explicitVersion := uploadVersion(version.Current.Number, nil)
uploadSeries := SeriesToUpload(cfg, bootstrapSeries)
ctx.Infof("uploading tools for series %s", uploadSeries)
tools, err := sync.Upload(stor, &explicitVersion, uploadSeries...)
if err != nil {
return err
}
cfg, err = cfg.Apply(map[string]interface{}{
"agent-version": tools.Version.Number.String(),
})
if err == nil {
err = env.SetConfig(cfg)
}
if err != nil {
return fmt.Errorf("failed to update environment configuration: %v", err)
}
return nil
}
示例12: BootstrapOnce
func (t *LiveTests) BootstrapOnce(c *gc.C) {
if t.bootstrapped {
return
}
t.PrepareOnce(c)
// We only build and upload tools if there will be a state agent that
// we could connect to (actual live tests, rather than local-only)
cons := constraints.MustParse("mem=2G")
if t.CanOpenState {
_, err := sync.Upload(t.toolsStorage, "released", nil, coretesting.FakeDefaultSeries)
c.Assert(err, jc.ErrorIsNil)
}
err := bootstrap.EnsureNotBootstrapped(t.Env)
c.Assert(err, jc.ErrorIsNil)
err = bootstrap.Bootstrap(envtesting.BootstrapContext(c), t.Env, bootstrap.BootstrapParams{Constraints: cons})
c.Assert(err, jc.ErrorIsNil)
t.bootstrapped = true
}
示例13: BootstrapOnce
func (t *LiveTests) BootstrapOnce(c *gc.C) {
if t.bootstrapped {
return
}
t.PrepareOnce(c)
// We only build and upload tools if there will be a state agent that
// we could connect to (actual live tests, rather than local-only)
cons := constraints.MustParse("mem=2G")
if t.CanOpenState {
_, err := sync.Upload(t.toolsStorage, "released", nil, series.LatestLts())
c.Assert(err, jc.ErrorIsNil)
}
args := t.bootstrapParams()
args.BootstrapConstraints = cons
args.ModelConstraints = cons
err := bootstrap.Bootstrap(envtesting.BootstrapContext(c), t.Env, args)
c.Assert(err, jc.ErrorIsNil)
t.bootstrapped = true
}
示例14: checkUpgrade
// checkUpgrade sets the environment agent version and checks that
// all the provided watchers upgrade to the requested version.
func (t *LiveTests) checkUpgrade(c *gc.C, st *state.State, newVersion version.Binary, waiters ...*toolsWaiter) {
c.Logf("putting testing version of juju tools")
upgradeTools, err := sync.Upload(t.Env.Storage(), &newVersion.Number, newVersion.Series)
c.Assert(err, gc.IsNil)
// sync.Upload always returns tools for the series on which the tests are running.
// We are only interested in checking the version.Number below so need to fake the
// upgraded tools series to match that of newVersion.
upgradeTools.Version.Series = newVersion.Series
// Check that the put version really is the version we expect.
c.Assert(upgradeTools.Version, gc.Equals, newVersion)
err = statetesting.SetAgentVersion(st, newVersion.Number)
c.Assert(err, gc.IsNil)
for i, w := range waiters {
c.Logf("waiting for upgrade of %d: %v", i, w.tooler.String())
waitAgentTools(c, w, newVersion)
c.Logf("upgrade %d successful", i)
}
}