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  }