本文整理汇总了Golang中github.com/juju/charm.ReadBundle函数的典型用法代码示例。如果您正苦于以下问题:Golang ReadBundle函数的具体用法?Golang ReadBundle怎么用?Golang ReadBundle使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ReadBundle函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestManifest
func (s *BundleSuite) TestManifest(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
manifest, err := bundle.Manifest()
c.Assert(err, gc.IsNil)
c.Assert(manifest, jc.DeepEquals, set.NewStrings(dummyManifest...))
}
开发者ID:bz2,项目名称:charm,代码行数:7,代码来源:bundle_test.go
示例2: TestBundleRevisionFile
func (s *BundleSuite) TestBundleRevisionFile(c *gc.C) {
charmDir := charmtesting.Charms.ClonedDirPath(c.MkDir(), "dummy")
revPath := filepath.Join(charmDir, "revision")
// Missing revision file
err := os.Remove(revPath)
c.Assert(err, gc.IsNil)
bundle := extBundleDir(c, charmDir)
c.Assert(bundle.Revision(), gc.Equals, 0)
// Missing revision file with old revision in metadata
file, err := os.OpenFile(filepath.Join(charmDir, "metadata.yaml"), os.O_WRONLY|os.O_APPEND, 0)
c.Assert(err, gc.IsNil)
_, err = file.Write([]byte("\nrevision: 1234\n"))
c.Assert(err, gc.IsNil)
bundle = extBundleDir(c, charmDir)
c.Assert(bundle.Revision(), gc.Equals, 1234)
// Revision file with bad content
err = ioutil.WriteFile(revPath, []byte("garbage"), 0666)
c.Assert(err, gc.IsNil)
path := extBundleDirPath(c, charmDir)
bundle, err = charm.ReadBundle(path)
c.Assert(err, gc.ErrorMatches, "invalid revision file")
c.Assert(bundle, gc.IsNil)
}
开发者ID:bz2,项目名称:charm,代码行数:29,代码来源:bundle_test.go
示例3: TestReadBundleWithoutActions
func (s *BundleSuite) TestReadBundleWithoutActions(c *gc.C) {
// Wordpress has config but no actions.
path := charmtesting.Charms.BundlePath(c.MkDir(), "wordpress")
bundle, err := charm.ReadBundle(path)
c.Assert(err, gc.IsNil)
// A lacking actions.yaml file still causes a proper
// Actions value to be returned.
c.Assert(bundle.Actions().ActionSpecs, gc.HasLen, 0)
}
开发者ID:bz2,项目名称:charm,代码行数:10,代码来源:bundle_test.go
示例4: TestReadBundleWithoutConfig
func (s *BundleSuite) TestReadBundleWithoutConfig(c *gc.C) {
// Technically varnish has no config AND no actions.
// Perhaps we should make this more orthogonal?
path := charmtesting.Charms.BundlePath(c.MkDir(), "varnish")
bundle, err := charm.ReadBundle(path)
c.Assert(err, gc.IsNil)
// A lacking config.yaml file still causes a proper
// Config value to be returned.
c.Assert(bundle.Config().Options, gc.HasLen, 0)
}
开发者ID:bz2,项目名称:charm,代码行数:11,代码来源:bundle_test.go
示例5: Read
// Read returns a charm bundle from the directory. If no bundle exists yet,
// one will be downloaded and validated and copied into the directory before
// being returned. Downloads will be aborted if a value is received on abort.
func (d *BundlesDir) Read(info BundleInfo, abort <-chan struct{}) (Bundle, error) {
path := d.bundlePath(info)
if _, err := os.Stat(path); err != nil {
if !os.IsNotExist(err) {
return nil, err
} else if err = d.download(info, abort); err != nil {
return nil, err
}
}
return charm.ReadBundle(path)
}
开发者ID:rogpeppe,项目名称:juju,代码行数:14,代码来源:bundles.go
示例6: sendBundleContent
// sendBundleContent uses the given bundleContentSenderFunc to send a response
// related to the charm archive located in the given archivePath.
func sendBundleContent(w http.ResponseWriter, r *http.Request, archivePath string, sender bundleContentSenderFunc) {
bundle, err := charm.ReadBundle(archivePath)
if err != nil {
http.Error(
w, fmt.Sprintf("unable to read archive in %q: %v", archivePath, err),
http.StatusInternalServerError)
return
}
// The bundleContentSenderFunc will set up and send an appropriate response.
sender(w, r, bundle)
}
开发者ID:jiasir,项目名称:juju,代码行数:13,代码来源:charms.go
示例7: TestExpandTo
func (s *BundleSuite) TestExpandTo(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
path := filepath.Join(c.MkDir(), "charm")
err = bundle.ExpandTo(path)
c.Assert(err, gc.IsNil)
dir, err := charm.ReadDir(path)
c.Assert(err, gc.IsNil)
checkDummy(c, dir, path)
}
开发者ID:bz2,项目名称:charm,代码行数:12,代码来源:bundle_test.go
示例8: TestManifestNoRevision
func (s *BundleSuite) TestManifestNoRevision(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
dirPath := c.MkDir()
err = bundle.ExpandTo(dirPath)
c.Assert(err, gc.IsNil)
err = os.Remove(filepath.Join(dirPath, "revision"))
c.Assert(err, gc.IsNil)
bundle = extBundleDir(c, dirPath)
manifest, err := bundle.Manifest()
c.Assert(err, gc.IsNil)
c.Assert(manifest, gc.DeepEquals, set.NewStrings(dummyManifest...))
}
开发者ID:bz2,项目名称:charm,代码行数:14,代码来源:bundle_test.go
示例9: processPost
// processPost handles a charm upload POST request after authentication.
func (h *charmsHandler) processPost(r *http.Request) (*charm.URL, error) {
query := r.URL.Query()
series := query.Get("series")
if series == "" {
return nil, fmt.Errorf("expected series=URL argument")
}
// Make sure the content type is zip.
contentType := r.Header.Get("Content-Type")
if contentType != "application/zip" {
return nil, fmt.Errorf("expected Content-Type: application/zip, got: %v", contentType)
}
tempFile, err := ioutil.TempFile("", "charm")
if err != nil {
return nil, fmt.Errorf("cannot create temp file: %v", err)
}
defer tempFile.Close()
defer os.Remove(tempFile.Name())
if _, err := io.Copy(tempFile, r.Body); err != nil {
return nil, fmt.Errorf("error processing file upload: %v", err)
}
err = h.processUploadedArchive(tempFile.Name())
if err != nil {
return nil, err
}
archive, err := charm.ReadBundle(tempFile.Name())
if err != nil {
return nil, fmt.Errorf("invalid charm archive: %v", err)
}
// We got it, now let's reserve a charm URL for it in state.
archiveURL := &charm.URL{
Reference: charm.Reference{
Schema: "local",
Name: archive.Meta().Name,
Revision: archive.Revision(),
},
Series: series,
}
preparedURL, err := h.state.PrepareLocalCharmUpload(archiveURL)
if err != nil {
return nil, err
}
// Now we need to repackage it with the reserved URL, upload it to
// provider storage and update the state.
err = h.repackageAndUploadCharm(archive, preparedURL)
if err != nil {
return nil, err
}
// All done.
return preparedURL, nil
}
开发者ID:jiasir,项目名称:juju,代码行数:51,代码来源:charms.go
示例10: TestBundleSetRevision
func (s *BundleSuite) TestBundleSetRevision(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
c.Assert(bundle.Revision(), gc.Equals, 1)
bundle.SetRevision(42)
c.Assert(bundle.Revision(), gc.Equals, 42)
path := filepath.Join(c.MkDir(), "charm")
err = bundle.ExpandTo(path)
c.Assert(err, gc.IsNil)
dir, err := charm.ReadDir(path)
c.Assert(err, gc.IsNil)
c.Assert(dir.Revision(), gc.Equals, 42)
}
开发者ID:bz2,项目名称:charm,代码行数:16,代码来源:bundle_test.go
示例11: AddCustomBundle
func (br *bundleReader) AddCustomBundle(c *gc.C, url *corecharm.URL, customize func(path string)) charm.BundleInfo {
base := c.MkDir()
dirpath := charmtesting.Charms.ClonedDirPath(base, "dummy")
if customize != nil {
customize(dirpath)
}
dir, err := corecharm.ReadDir(dirpath)
c.Assert(err, gc.IsNil)
err = dir.SetDiskRevision(url.Revision)
c.Assert(err, gc.IsNil)
bunpath := filepath.Join(base, "bundle")
file, err := os.Create(bunpath)
c.Assert(err, gc.IsNil)
defer file.Close()
err = dir.BundleTo(file)
c.Assert(err, gc.IsNil)
bundle, err := corecharm.ReadBundle(bunpath)
c.Assert(err, gc.IsNil)
return br.AddBundle(c, url, bundle)
}
开发者ID:jiasir,项目名称:juju,代码行数:20,代码来源:charm_test.go
示例12: TestExpandToSetsHooksExecutable
func (s *BundleSuite) TestExpandToSetsHooksExecutable(c *gc.C) {
charmDir := charmtesting.Charms.ClonedDir(c.MkDir(), "all-hooks")
// Bundle manually, so we can check ExpandTo(), unaffected
// by BundleTo()'s behavior
bundlePath := filepath.Join(c.MkDir(), "bundle.charm")
s.prepareBundle(c, charmDir, bundlePath)
bundle, err := charm.ReadBundle(bundlePath)
c.Assert(err, gc.IsNil)
path := filepath.Join(c.MkDir(), "charm")
err = bundle.ExpandTo(path)
c.Assert(err, gc.IsNil)
_, err = charm.ReadDir(path)
c.Assert(err, gc.IsNil)
for name := range bundle.Meta().Hooks() {
hookName := string(name)
info, err := os.Stat(filepath.Join(path, "hooks", hookName))
c.Assert(err, gc.IsNil)
perm := info.Mode() & 0777
c.Assert(perm&0100 != 0, gc.Equals, true, gc.Commentf("hook %q is not executable", hookName))
}
}
开发者ID:bz2,项目名称:charm,代码行数:24,代码来源:bundle_test.go
示例13: TestReadBundle
func (s *BundleSuite) TestReadBundle(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
checkDummy(c, bundle, s.bundlePath)
}
开发者ID:bz2,项目名称:charm,代码行数:5,代码来源:bundle_test.go
示例14: extBundleDir
func extBundleDir(c *gc.C, dirpath string) *charm.Bundle {
path := extBundleDirPath(c, dirpath)
bundle, err := charm.ReadBundle(path)
c.Assert(err, gc.IsNil)
return bundle
}
开发者ID:bz2,项目名称:charm,代码行数:6,代码来源:bundle_test.go
注:本文中的github.com/juju/charm.ReadBundle函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论