本文整理汇总了Golang中github.com/juju/juju/environs/imagemetadata.MergeAndWriteMetadata函数的典型用法代码示例。如果您正苦于以下问题:Golang MergeAndWriteMetadata函数的具体用法?Golang MergeAndWriteMetadata怎么用?Golang MergeAndWriteMetadata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MergeAndWriteMetadata函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestWriteIndexRegionOnce
func (s *generateSuite) TestWriteIndexRegionOnce(c *gc.C) {
existingImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "1234",
Arch: "amd64",
Version: "13.04",
VirtType: "kvm",
},
}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
dir := c.MkDir()
targetStorage, err := filestorage.NewFileStorageWriter(dir)
c.Assert(err, jc.ErrorIsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", existingImageMetadata, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
newImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "abcd",
Arch: "amd64",
Version: "13.04",
VirtType: "lxd",
},
}
err = imagemetadata.MergeAndWriteMetadata("raring", newImageMetadata, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
foundIndex, _ := testing.ParseIndexMetadataFromStorage(c, targetStorage)
expectedCloudSpecs := []simplestreams.CloudSpec{*cloudSpec}
c.Assert(foundIndex.Clouds, jc.SameContents, expectedCloudSpecs)
}
开发者ID:bac,项目名称:juju,代码行数:33,代码来源:generate_test.go
示例2: TestWriteMetadataMergeDifferentRegion
func (s *generateSuite) TestWriteMetadataMergeDifferentRegion(c *gc.C) {
existingImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "1234",
Arch: "amd64",
Version: "13.04",
},
}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
dir := c.MkDir()
targetStorage, err := filestorage.NewFileStorageWriter(dir)
c.Assert(err, jc.ErrorIsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", existingImageMetadata, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
newImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "abcd",
Arch: "amd64",
Version: "13.04",
},
{
Id: "xyz",
Arch: "arm",
Version: "13.04",
},
}
cloudSpec = &simplestreams.CloudSpec{
Region: "region2",
Endpoint: "endpoint2",
}
err = imagemetadata.MergeAndWriteMetadata("raring", newImageMetadata, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
metadata := testing.ParseMetadataFromDir(c, dir)
c.Assert(metadata, gc.HasLen, 3)
for _, im := range newImageMetadata {
im.RegionName = "region2"
im.Endpoint = "endpoint2"
}
existingImageMetadata[0].RegionName = "region"
existingImageMetadata[0].Endpoint = "endpoint"
newImageMetadata = append(newImageMetadata, existingImageMetadata[0])
imagemetadata.Sort(newImageMetadata)
c.Assert(metadata, gc.DeepEquals, newImageMetadata)
assertFetch(c, targetStorage, "raring", "amd64", "region", "endpoint", "1234")
assertFetch(c, targetStorage, "raring", "amd64", "region2", "endpoint2", "abcd")
}
开发者ID:Pankov404,项目名称:juju,代码行数:49,代码来源:generate_test.go
示例3: Run
func (c *ImageMetadataCommand) Run(context *cmd.Context) error {
if err := c.setParams(context); err != nil {
return err
}
out := context.Stdout
im := &imagemetadata.ImageMetadata{
Id: c.ImageId,
Arch: c.Arch,
}
cloudSpec := simplestreams.CloudSpec{
Region: c.Region,
Endpoint: c.Endpoint,
}
targetStorage, err := filestorage.NewFileStorageWriter(c.Dir)
if err != nil {
return err
}
err = imagemetadata.MergeAndWriteMetadata(c.Series, []*imagemetadata.ImageMetadata{im}, &cloudSpec, targetStorage)
if err != nil {
return fmt.Errorf("image metadata files could not be created: %v", err)
}
dir := context.AbsPath(c.Dir)
dest := filepath.Join(dir, storage.BaseImagesPath, "streams", "v1")
fmt.Fprintf(out, fmt.Sprintf(helpDoc, dest, dir, dir))
return nil
}
开发者ID:jiasir,项目名称:juju,代码行数:26,代码来源:imagemetadata.go
示例4: createImageMetadata
func createImageMetadata(c *gc.C) (sourceDir string, destDir string, destStor storage.Storage, metadata *imagemetadata.ImageMetadata) {
destDir = c.MkDir()
var err error
destStor, err = filestorage.NewFileStorageWriter(destDir)
c.Assert(err, gc.IsNil)
// Generate some metadata.
sourceDir = c.MkDir()
im := []*imagemetadata.ImageMetadata{
{
Id: "1234",
Arch: "amd64",
Version: "13.04",
},
}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
im[0].RegionName = cloudSpec.Region
im[0].Endpoint = cloudSpec.Endpoint
var sourceStor storage.Storage
sourceStor, err = filestorage.NewFileStorageWriter(sourceDir)
c.Assert(err, gc.IsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", im, cloudSpec, sourceStor)
c.Assert(err, gc.IsNil)
return sourceDir, destDir, destStor, im[0]
}
开发者ID:jiasir,项目名称:juju,代码行数:28,代码来源:upload_test.go
示例5: setupMetadata
func (s *archSuite) setupMetadata(c *gc.C, arches []string) (environs.Environ, simplestreams.CloudSpec) {
s.PatchValue(&imagemetadata.DefaultBaseURL, "")
stor := newStorage(s, c)
env := &mockEnviron{
storage: stor,
config: configGetter(c),
}
var images []*imagemetadata.ImageMetadata
for _, arch := range arches {
images = append(images, &imagemetadata.ImageMetadata{
Id: "image-id",
Arch: arch,
RegionName: "Region",
Endpoint: "https://endpoint/",
})
}
// Append an image from another region with some other arch to ensure it is ignored.
images = append(images, &imagemetadata.ImageMetadata{
Id: "image-id",
Arch: "arch",
RegionName: "Region-Two",
Endpoint: "https://endpoint/",
})
cloudSpec := simplestreams.CloudSpec{
Region: "Region",
Endpoint: "https://endpoint/",
}
err := imagemetadata.MergeAndWriteMetadata("precise", images, &cloudSpec, env.Storage())
c.Assert(err, gc.IsNil)
return env, cloudSpec
}
开发者ID:kapilt,项目名称:juju,代码行数:32,代码来源:supportedarchitectures_test.go
示例6: makeTestMetadata
func makeTestMetadata(c *gc.C, env environs.Environ, series, location string, im []*imagemetadata.ImageMetadata) {
cloudSpec := simplestreams.CloudSpec{
Region: location,
Endpoint: "https://management.core.windows.net/",
}
err := imagemetadata.MergeAndWriteMetadata(series, im, &cloudSpec, env.Storage())
c.Assert(err, gc.IsNil)
}
开发者ID:kapilt,项目名称:juju,代码行数:8,代码来源:instancetype_test.go
示例7: TestWriteMetadataMergeDifferentVirtType
// lp#1600054
func (s *generateSuite) TestWriteMetadataMergeDifferentVirtType(c *gc.C) {
existingImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "1234",
Arch: "amd64",
Version: "13.04",
VirtType: "kvm",
},
}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
dir := c.MkDir()
targetStorage, err := filestorage.NewFileStorageWriter(dir)
c.Assert(err, jc.ErrorIsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", existingImageMetadata, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
newImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "abcd",
Arch: "amd64",
Version: "13.04",
VirtType: "lxd",
},
}
err = imagemetadata.MergeAndWriteMetadata("raring", newImageMetadata, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
foundMetadata := testing.ParseMetadataFromDir(c, dir)
expectedMetadata := append(newImageMetadata, existingImageMetadata...)
c.Assert(len(foundMetadata), gc.Equals, len(expectedMetadata))
for _, im := range expectedMetadata {
im.RegionName = cloudSpec.Region
im.Endpoint = cloudSpec.Endpoint
}
imagemetadata.Sort(expectedMetadata)
c.Assert(foundMetadata, gc.DeepEquals, expectedMetadata)
assertFetch(c, targetStorage, "raring", "amd64", "region", "endpoint", "1234", "abcd")
}
开发者ID:bac,项目名称:juju,代码行数:42,代码来源:generate_test.go
示例8: TestWriteMetadataMergeOverwriteSameArch
func (s *generateSuite) TestWriteMetadataMergeOverwriteSameArch(c *gc.C) {
existingImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "1234",
Arch: "amd64",
Version: "13.04",
},
}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
dir := c.MkDir()
targetStorage, err := filestorage.NewFileStorageWriter(dir)
c.Assert(err, gc.IsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", existingImageMetadata, cloudSpec, targetStorage)
c.Assert(err, gc.IsNil)
newImageMetadata := []*imagemetadata.ImageMetadata{
{
Id: "abcd",
Arch: "amd64",
Version: "13.04",
},
{
Id: "xyz",
Arch: "arm",
Version: "13.04",
},
}
err = imagemetadata.MergeAndWriteMetadata("raring", newImageMetadata, cloudSpec, targetStorage)
c.Assert(err, gc.IsNil)
metadata := testing.ParseMetadataFromDir(c, dir)
c.Assert(metadata, gc.HasLen, 2)
for _, im := range newImageMetadata {
im.RegionName = cloudSpec.Region
im.Endpoint = cloudSpec.Endpoint
}
c.Assert(metadata, gc.DeepEquals, newImageMetadata)
assertFetch(c, targetStorage, "raring", "amd64", "region", "endpoint", "abcd")
assertFetch(c, targetStorage, "raring", "arm", "region", "endpoint", "xyz")
}
开发者ID:jiasir,项目名称:juju,代码行数:41,代码来源:generate_test.go
示例9: setupMetadata
func (s *archSuite) setupMetadata(c *gc.C, arches []string) (environs.Environ, simplestreams.CloudSpec) {
imagetesting.PatchOfficialDataSources(&s.CleanupSuite, "")
env := &mockEnviron{
config: configGetter(c),
}
var images []*imagemetadata.ImageMetadata
for _, arch := range arches {
images = append(images, &imagemetadata.ImageMetadata{
Id: "image-id",
Arch: arch,
RegionName: "Region",
Endpoint: "https://endpoint/",
})
}
// Append an image from another region with some other arch to ensure it is ignored.
images = append(images, &imagemetadata.ImageMetadata{
Id: "image-id",
Arch: "arch",
RegionName: "Region-Two",
Endpoint: "https://endpoint/",
})
cloudSpec := simplestreams.CloudSpec{
Region: "Region",
Endpoint: "https://endpoint/",
}
metadataDir := c.MkDir()
stor, err := filestorage.NewFileStorageWriter(metadataDir)
c.Assert(err, jc.ErrorIsNil)
err = imagemetadata.MergeAndWriteMetadata("precise", images, &cloudSpec, stor)
c.Assert(err, jc.ErrorIsNil)
id := "SupportedArchitectures"
environs.RegisterImageDataSourceFunc(id, func(environs.Environ) (simplestreams.DataSource, error) {
return simplestreams.NewURLDataSource(id, "file://"+metadataDir+"/images", false, simplestreams.DEFAULT_CLOUD_DATA, false), nil
})
s.AddCleanup(func(*gc.C) {
environs.UnregisterImageDataSourceFunc(id)
})
return env, cloudSpec
}
开发者ID:exekias,项目名称:juju,代码行数:43,代码来源:supportedarchitectures_test.go
示例10: makeLocalMetadata
func (s *ValidateImageMetadataSuite) makeLocalMetadata(c *gc.C, id, region, series, endpoint, stream string) error {
im := &imagemetadata.ImageMetadata{
Id: id,
Arch: "amd64",
Stream: stream,
}
cloudSpec := simplestreams.CloudSpec{
Region: region,
Endpoint: endpoint,
}
targetStorage, err := filestorage.NewFileStorageWriter(s.metadataDir)
if err != nil {
return err
}
err = imagemetadata.MergeAndWriteMetadata(series, []*imagemetadata.ImageMetadata{im}, &cloudSpec, targetStorage)
if err != nil {
return err
}
return nil
}
开发者ID:kat-co,项目名称:juju,代码行数:20,代码来源:validateimagemetadata_test.go
示例11: createImageMetadata
// createImageMetadata creates some image metadata in a local directory.
func createImageMetadata(c *gc.C) (dir string, _ []*imagemetadata.ImageMetadata) {
// Generate some image metadata.
im := []*imagemetadata.ImageMetadata{{
Id: "1234",
Arch: "amd64",
Version: "13.04",
RegionName: "region",
Endpoint: "endpoint",
}}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
sourceDir := c.MkDir()
sourceStor, err := filestorage.NewFileStorageWriter(sourceDir)
c.Assert(err, jc.ErrorIsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", im, cloudSpec, sourceStor)
c.Assert(err, jc.ErrorIsNil)
return sourceDir, im
}
开发者ID:pmatulis,项目名称:juju,代码行数:21,代码来源:bootstrap_test.go
示例12: TestWriteMetadata
func (s *generateSuite) TestWriteMetadata(c *gc.C) {
im := []*imagemetadata.ImageMetadata{
{
Id: "1234",
Arch: "amd64",
Version: "13.04",
},
}
cloudSpec := &simplestreams.CloudSpec{
Region: "region",
Endpoint: "endpoint",
}
dir := c.MkDir()
targetStorage, err := filestorage.NewFileStorageWriter(dir)
c.Assert(err, jc.ErrorIsNil)
err = imagemetadata.MergeAndWriteMetadata("raring", im, cloudSpec, targetStorage)
c.Assert(err, jc.ErrorIsNil)
metadata := testing.ParseMetadataFromDir(c, dir)
c.Assert(metadata, gc.HasLen, 1)
im[0].RegionName = cloudSpec.Region
im[0].Endpoint = cloudSpec.Endpoint
c.Assert(im[0], gc.DeepEquals, metadata[0])
assertFetch(c, targetStorage, "raring", "amd64", "region", "endpoint", "1234")
}
开发者ID:Pankov404,项目名称:juju,代码行数:24,代码来源:generate_test.go
注:本文中的github.com/juju/juju/environs/imagemetadata.MergeAndWriteMetadata函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论