fix(datasource/CloudSigma): Add a test for an empty ssh key
This commit is contained in:
parent
c30fc51b03
commit
be53013431
@ -108,6 +108,8 @@ func (scs *serverContextService) FetchMetadata() (metadata datasource.Metadata,
|
|||||||
}
|
}
|
||||||
|
|
||||||
metadata.SSHPublicKeys = map[string]string{}
|
metadata.SSHPublicKeys = map[string]string{}
|
||||||
|
// CloudSigma uses an empty string, rather than no string,
|
||||||
|
// to represent the lack of a SSH key
|
||||||
if key, _ := inputMetadata.Meta["ssh_public_key"]; len(key) > 0 {
|
if key, _ := inputMetadata.Meta["ssh_public_key"]; len(key) > 0 {
|
||||||
splitted := strings.Split(key, " ")
|
splitted := strings.Split(key, " ")
|
||||||
metadata.SSHPublicKeys[splitted[len(splitted)-1]] = key
|
metadata.SSHPublicKeys[splitted[len(splitted)-1]] = key
|
||||||
|
@ -43,6 +43,27 @@ func (f *fakeCepgoClient) FetchRaw(key string) ([]byte, error) {
|
|||||||
return f.raw, f.err
|
return f.raw, f.err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestServerContextWithEmptyPublicSSHKey(t *testing.T) {
|
||||||
|
client := new(fakeCepgoClient)
|
||||||
|
scs := NewServerContextService()
|
||||||
|
scs.client = client
|
||||||
|
client.raw = []byte(`{
|
||||||
|
"meta": {
|
||||||
|
"base64_fields": "cloudinit-user-data",
|
||||||
|
"cloudinit-user-data": "I2Nsb3VkLWNvbmZpZwoKaG9zdG5hbWU6IGNvcmVvczE=",
|
||||||
|
"ssh_public_key": ""
|
||||||
|
}
|
||||||
|
}`)
|
||||||
|
metadata, err := scs.FetchMetadata()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(metadata.SSHPublicKeys) != 0 {
|
||||||
|
t.Error("There should be no Public SSH Keys provided")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestServerContextFetchMetadata(t *testing.T) {
|
func TestServerContextFetchMetadata(t *testing.T) {
|
||||||
client := new(fakeCepgoClient)
|
client := new(fakeCepgoClient)
|
||||||
scs := NewServerContextService()
|
scs := NewServerContextService()
|
||||||
|
Loading…
Reference in New Issue
Block a user