github.com/cloudfoundry/postgres-release/src/acceptance-tests@v0.0.0-20240511030151-872bdd2e0dba/testing/helpers/map_variable.go (about) 1 package helpers 2 3 import ( 4 "fmt" 5 6 "gopkg.in/yaml.v2" 7 8 boshtempl "github.com/cloudfoundry/bosh-cli/director/template" 9 ) 10 11 type MapVariables struct { 12 Entries *boshtempl.StaticVariables 13 } 14 15 var _ boshtempl.Variables = MapVariables{} 16 17 func (v MapVariables) Get(varDef boshtempl.VariableDefinition) (interface{}, bool, error) { 18 if v.Entries == nil { 19 return nil, false, nil 20 } 21 bytes, err := yaml.Marshal(*v.Entries) 22 if err != nil { 23 return nil, false, err 24 } 25 result := boshtempl.StaticVariables{} 26 err = yaml.Unmarshal(bytes, &result) 27 if err != nil { 28 fmt.Println("error2", err) 29 return nil, false, err 30 } 31 val, found := result[varDef.Name] 32 return val, found, nil 33 } 34 35 func (v *MapVariables) Add(name string, value interface{}) { 36 if v.Entries == nil { 37 m := boshtempl.StaticVariables(make(map[string]interface{})) 38 v.Entries = &m 39 } 40 (*v.Entries)[name] = value 41 } 42 func (v MapVariables) List() ([]boshtempl.VariableDefinition, error) { 43 result, err := v.Entries.List() 44 return result, err 45 }