Show gce sdconfig zone on vmagent:8429/config (#2178)

* vmagent: add test for marshalling gce sdconfig with ZoneYAML

* vmagent: implement MarshalYAML for ZoneYAML on gce sdconfig
This commit is contained in:
artifactori 2022-02-12 05:39:23 +07:00 committed by Aliaksandr Valialkin
parent d107f86fbc
commit 943fc056ca
No known key found for this signature in database
GPG Key ID: A72BEC6CD3D0DED1
2 changed files with 32 additions and 0 deletions

View File

@ -54,6 +54,11 @@ func (z *ZoneYAML) UnmarshalYAML(unmarshal func(interface{}) error) error {
return nil
}
// MarshalYAML implements yaml.Marshaler
func (z ZoneYAML) MarshalYAML() (interface{}, error) {
return z.zones, nil
}
// GetLabels returns gce labels according to sdc.
func (sdc *SDConfig) GetLabels(baseDir string) ([]map[string]string, error) {
cfg, err := getAPIConfig(sdc)

View File

@ -0,0 +1,27 @@
package gce
import (
"testing"
"gopkg.in/yaml.v2"
)
func TestMarshallingSDConfigWithZoneYAML(t *testing.T) {
sdConfig := SDConfig{
Project: "test-project",
Zone: ZoneYAML{
zones: []string{"zone-a", "zone-b"},
},
}
data, err := yaml.Marshal(sdConfig)
if err != nil {
t.Fatalf("unexpected non-nil error")
}
strData := string(data)
expected := "project: test-project\nzone:\n- zone-a\n- zone-b\n"
if strData != expected {
t.Fatalf("unexpected marshal:\ngot \n%vwant\n%v", strData, expected)
}
}