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  }