本文整理匯總了Golang中github.com/juju/juju/environs/simplestreams.CloudMetadata.ContentId方法的典型用法代碼示例。如果您正苦於以下問題:Golang CloudMetadata.ContentId方法的具體用法?Golang CloudMetadata.ContentId怎麽用?Golang CloudMetadata.ContentId使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/juju/juju/environs/simplestreams.CloudMetadata
的用法示例。
在下文中一共展示了CloudMetadata.ContentId方法的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, "", " ")
}
示例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, "", " ")
}
示例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, "", " ")
}
示例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
}