本文整理汇总了Golang中github.com/juju/juju/environs/simplestreams.CloudMetadata类的典型用法代码示例。如果您正苦于以下问题:Golang CloudMetadata类的具体用法?Golang CloudMetadata怎么用?Golang CloudMetadata使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CloudMetadata类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: MarshalToolsMetadataProductsJSON
// MarshalToolsMetadataProductsJSON marshals tools metadata to products JSON.
//
// updated is the time at which the JSON file was updated.
func MarshalToolsMetadataProductsJSON(metadata []*ToolsMetadata, updated time.Time) (out []byte, err error) {
var cloud simplestreams.CloudMetadata
cloud.Updated = updated.Format(time.RFC1123Z)
cloud.Format = "products:1.0"
cloud.ContentId = ToolsContentId
cloud.Products = make(map[string]simplestreams.MetadataCatalog)
itemsversion := updated.Format("20060102") // YYYYMMDD
for _, t := range metadata {
id, err := t.productId()
if err != nil {
return nil, err
}
itemid := fmt.Sprintf("%s-%s-%s", t.Version, t.Release, t.Arch)
if catalog, ok := cloud.Products[id]; ok {
catalog.Items[itemsversion].Items[itemid] = t
} else {
catalog = simplestreams.MetadataCatalog{
Arch: t.Arch,
Version: t.Version,
Items: map[string]*simplestreams.ItemCollection{
itemsversion: &simplestreams.ItemCollection{
Items: map[string]interface{}{itemid: t},
},
},
}
cloud.Products[id] = catalog
}
}
return json.MarshalIndent(&cloud, "", " ")
}
开发者ID:jiasir,项目名称:juju,代码行数:33,代码来源:marshal.go
示例2: MarshalImageMetadataProductsJSON
// MarshalImageMetadataProductsJSON marshals image metadata to products JSON.
//
// updated is the time at which the JSON file was updated.
func MarshalImageMetadataProductsJSON(metadata []*ImageMetadata, updated time.Time) (out []byte, err error) {
var cloud simplestreams.CloudMetadata
cloud.Updated = updated.Format(time.RFC1123Z)
cloud.Format = simplestreams.ProductFormat
cloud.ContentId = ImageContentId
cloud.Products = make(map[string]simplestreams.MetadataCatalog)
itemsversion := updated.Format("20060201") // YYYYMMDD
for _, t := range metadata {
toWrite := &ImageMetadata{
Id: t.Id,
RegionName: t.RegionName,
Endpoint: t.Endpoint,
VirtType: t.VirtType,
}
if catalog, ok := cloud.Products[t.productId()]; ok {
catalog.Items[itemsversion].Items[t.Id] = toWrite
} else {
catalog = simplestreams.MetadataCatalog{
Arch: t.Arch,
Version: t.Version,
Items: map[string]*simplestreams.ItemCollection{
itemsversion: {
Items: map[string]interface{}{t.Id: toWrite},
},
},
}
cloud.Products[t.productId()] = catalog
}
}
return json.MarshalIndent(&cloud, "", " ")
}
开发者ID:Pankov404,项目名称:juju,代码行数:34,代码来源:marshal.go
示例3: MarshalImageMetadataProductsJSON
// MarshalImageMetadataProductsJSON marshals image metadata to products JSON.
//
// updated is the time at which the JSON file was updated.
func MarshalImageMetadataProductsJSON(metadata []*ImageMetadata, updated time.Time) (out []byte, err error) {
var cloud simplestreams.CloudMetadata
cloud.Updated = updated.Format(time.RFC1123Z)
cloud.Format = simplestreams.ProductFormat
cloud.ContentId = ImageContentId
cloud.Products = make(map[string]simplestreams.MetadataCatalog)
itemsversion := updated.Format("20060102") // YYYYMMDD
for _, t := range metadata {
toWrite := *t
// These fields are not required in the individual
// record values - they are recorded at the top level.
toWrite.RegionAlias = ""
toWrite.Version = ""
toWrite.Arch = ""
if catalog, ok := cloud.Products[t.productId()]; ok {
catalog.Items[itemsversion].Items[t.Id] = toWrite
} else {
catalog = simplestreams.MetadataCatalog{
Arch: t.Arch,
Version: t.Version,
Items: map[string]*simplestreams.ItemCollection{
itemsversion: {
Items: map[string]interface{}{t.Id: toWrite},
},
},
}
cloud.Products[t.productId()] = catalog
}
}
return json.MarshalIndent(&cloud, "", " ")
}
开发者ID:howbazaar,项目名称:juju,代码行数:34,代码来源:marshal.go
示例4: MarshalToolsMetadataProductsJSON
// MarshalToolsMetadataProductsJSON marshals tools metadata to products JSON.
// updated is the time at which the JSON file was updated.
func MarshalToolsMetadataProductsJSON(
streamMetadata map[string][]*ToolsMetadata, updated time.Time,
) (out map[string][]byte, err error) {
out = make(map[string][]byte, len(streamMetadata))
for stream, metadata := range streamMetadata {
var cloud simplestreams.CloudMetadata
cloud.Updated = updated.Format(time.RFC1123Z)
cloud.Format = simplestreams.ProductFormat
cloud.ContentId = ToolsContentId(stream)
cloud.Products = make(map[string]simplestreams.MetadataCatalog)
itemsversion := updated.Format("20060102") // YYYYMMDD
for _, t := range metadata {
id, err := t.productId()
if err != nil {
if series.IsUnknownSeriesVersionError(err) {
continue
}
return nil, err
}
itemid := fmt.Sprintf("%s-%s-%s", t.Version, t.Release, t.Arch)
if catalog, ok := cloud.Products[id]; ok {
catalog.Items[itemsversion].Items[itemid] = t
} else {
catalog = simplestreams.MetadataCatalog{
Arch: t.Arch,
Version: t.Version,
Items: map[string]*simplestreams.ItemCollection{
itemsversion: {
Items: map[string]interface{}{itemid: t},
},
},
}
cloud.Products[id] = catalog
}
}
if out[stream], err = json.MarshalIndent(&cloud, "", " "); err != nil {
return nil, err
}
}
return out, nil
}
开发者ID:howbazaar,项目名称:juju,代码行数:44,代码来源:marshal.go
注:本文中的github.com/juju/juju/environs/simplestreams.CloudMetadata类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论