Map box metadata
This commit is contained in:
parent
35c094f570
commit
e27e6c7871
@ -265,9 +265,7 @@ func (b *Box) UpdateInfo(version string) (updateAvailable bool, meta core.BoxMet
|
||||
if result == nil {
|
||||
return false, nil, "", "", nil
|
||||
}
|
||||
var metadataMap core.BoxMetadataMap
|
||||
mapstructure.Decode(metadata, &metadataMap)
|
||||
return true, metadataMap, result.Version, b.box.Provider, nil
|
||||
return true, metadata.ToMap(), result.Version, b.box.Provider, nil
|
||||
}
|
||||
|
||||
// Checks if this box is in use according to the given machine
|
||||
|
||||
@ -18,6 +18,15 @@ type BoxVersionProvider struct {
|
||||
ChecksumType string
|
||||
}
|
||||
|
||||
func (b *BoxVersionProvider) ToMap() map[string]interface{} {
|
||||
m := make(map[string]interface{})
|
||||
m["Name"] = b.Name
|
||||
m["Url"] = b.Url
|
||||
m["Checksum"] = b.Checksum
|
||||
m["ChecksumType"] = b.ChecksumType
|
||||
return m
|
||||
}
|
||||
|
||||
func (b *BoxVersionProvider) MatchesAny(p ...*BoxVersionProvider) (matches bool) {
|
||||
for _, provider := range p {
|
||||
if b.Matches(provider) {
|
||||
@ -53,6 +62,19 @@ type BoxVersion struct {
|
||||
Providers []*BoxVersionProvider
|
||||
}
|
||||
|
||||
func (b *BoxVersion) ToMap() map[string]interface{} {
|
||||
m := make(map[string]interface{})
|
||||
m["Version"] = b.Version
|
||||
m["Status"] = b.Status
|
||||
m["Description"] = b.Description
|
||||
providers := []interface{}{}
|
||||
for _, p := range b.Providers {
|
||||
providers = append(providers, p.ToMap())
|
||||
}
|
||||
m["Providers"] = providers
|
||||
return m
|
||||
}
|
||||
|
||||
func (b *BoxVersion) Provider(name string) (p *BoxVersionProvider, err error) {
|
||||
for _, provider := range b.Providers {
|
||||
if provider.Name == name {
|
||||
@ -76,6 +98,18 @@ type BoxMetadata struct {
|
||||
Versions []*BoxVersion
|
||||
}
|
||||
|
||||
func (b *BoxMetadata) ToMap() map[string]interface{} {
|
||||
m := make(map[string]interface{})
|
||||
m["Name"] = b.Name
|
||||
m["Description"] = b.Description
|
||||
versions := []interface{}{}
|
||||
for _, v := range b.Versions {
|
||||
versions = append(versions, v.ToMap())
|
||||
}
|
||||
m["Versions"] = versions
|
||||
return m
|
||||
}
|
||||
|
||||
func LoadBoxMetadata(data []byte) (*BoxMetadata, error) {
|
||||
var metadata map[string]interface{}
|
||||
if err := json.Unmarshal(data, &metadata); err != nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user