github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/mdbd/loadJson.go (about) 1 package main 2 3 import ( 4 "io" 5 6 "github.com/Cloud-Foundations/Dominator/lib/json" 7 "github.com/Cloud-Foundations/Dominator/lib/log" 8 "github.com/Cloud-Foundations/Dominator/lib/mdb" 9 ) 10 11 func newJsonGenerator(params makeGeneratorParams) (generator, error) { 12 return sourceGenerator{loadJson, params.args[0]}, nil 13 } 14 15 func loadJson(reader io.Reader, datacentre string, logger log.Logger) ( 16 *mdb.Mdb, error) { 17 var newMdb mdb.Mdb 18 if err := json.Read(reader, &newMdb.Machines); err != nil { 19 return nil, err 20 } 21 for index := range newMdb.Machines { 22 extractPlainTags(&newMdb.Machines[index]) 23 } 24 return &newMdb, nil 25 } 26 27 func extractPlainTags(machine *mdb.Machine) { 28 for key, value := range machine.Tags { 29 switch key { 30 case "RequiredImage": 31 machine.RequiredImage = value 32 case "PlannedImage": 33 machine.PlannedImage = value 34 case "DisableUpdates": 35 machine.DisableUpdates = true 36 case "OwnerGroup": 37 machine.OwnerGroup = value 38 } 39 } 40 }