1
0
mirror of https://github.com/rancher/os.git synced 2025-09-05 16:52:20 +00:00

Add aliyun datasource (#2169)

This commit is contained in:
niusmallnan
2017-12-19 14:33:44 +08:00
committed by GitHub
parent 7e912e12e8
commit 60909e435f
7 changed files with 312 additions and 145 deletions

View File

@@ -17,6 +17,7 @@ package metadata
import (
"bytes"
"fmt"
"reflect"
"testing"
"github.com/rancher/os/config/cloudinit/datasource/metadata/test"
@@ -177,6 +178,114 @@ func TestNewDatasource(t *testing.T) {
}
}
func TestFetchAttributes(t *testing.T) {
for _, s := range []struct {
resources map[string]string
err error
tests []struct {
path string
val []string
}
}{
{
resources: map[string]string{
"/": "a\nb\nc/",
"/c/": "d\ne/",
"/c/e/": "f",
"/a": "1",
"/b": "2",
"/c/d": "3",
"/c/e/f": "4",
},
tests: []struct {
path string
val []string
}{
{"/", []string{"a", "b", "c/"}},
{"/b", []string{"2"}},
{"/c/d", []string{"3"}},
{"/c/e/", []string{"f"}},
},
},
{
err: fmt.Errorf("test error"),
tests: []struct {
path string
val []string
}{
{"", nil},
},
},
} {
service := &Service{
Client: &test.HTTPClient{Resources: s.resources, Err: s.err},
}
for _, tt := range s.tests {
attrs, err := service.FetchAttributes(tt.path)
if err != s.err {
t.Fatalf("bad error for %q (%q): want %q, got %q", tt.path, s.resources, s.err, err)
}
if !reflect.DeepEqual(attrs, tt.val) {
t.Fatalf("bad fetch for %q (%q): want %q, got %q", tt.path, s.resources, tt.val, attrs)
}
}
}
}
func TestFetchAttribute(t *testing.T) {
for _, s := range []struct {
resources map[string]string
err error
tests []struct {
path string
val string
}
}{
{
resources: map[string]string{
"/": "a\nb\nc/",
"/c/": "d\ne/",
"/c/e/": "f",
"/a": "1",
"/b": "2",
"/c/d": "3",
"/c/e/f": "4",
},
tests: []struct {
path string
val string
}{
{"/a", "1"},
{"/b", "2"},
{"/c/d", "3"},
{"/c/e/f", "4"},
},
},
{
err: fmt.Errorf("test error"),
tests: []struct {
path string
val string
}{
{"", ""},
},
},
} {
service := &Service{
Client: &test.HTTPClient{Resources: s.resources, Err: s.err},
}
for _, tt := range s.tests {
attr, err := service.FetchAttribute(tt.path)
if err != s.err {
t.Fatalf("bad error for %q (%q): want %q, got %q", tt.path, s.resources, s.err, err)
}
if attr != tt.val {
t.Fatalf("bad fetch for %q (%q): want %q, got %q", tt.path, s.resources, tt.val, attr)
}
}
}
}
func Error(err error) string {
if err != nil {
return err.Error()