Skip to content

Commit 215052e

Browse files
committed
add tests for cloud/cloudinit
1 parent 858ec3f commit 215052e

File tree

3 files changed

+96
-43
lines changed

3 files changed

+96
-43
lines changed

cloud/cloudinit/common.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package cloudinit
2-
3-
func IsValidType(cloudInitType string) bool {
4-
switch cloudInitType {
5-
case "user", "meta", "network":
6-
return true
7-
default:
8-
return false
9-
}
10-
}
1+
package cloudinit
2+
3+
func IsValidType(cloudInitType string) bool {
4+
switch cloudInitType {
5+
case "user", "meta", "network":
6+
return true
7+
default:
8+
return false
9+
}
10+
}

cloud/cloudinit/user.go

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
1-
package cloudinit
2-
3-
import (
4-
"fmt"
5-
6-
"github.com/imdario/mergo"
7-
"gopkg.in/yaml.v3"
8-
9-
infrav1 "github.com/sp-yduck/cluster-api-provider-proxmox/api/v1beta1"
10-
)
11-
12-
func ParseUser(content string) (*infrav1.User, error) {
13-
var config *infrav1.User
14-
if err := yaml.Unmarshal([]byte(content), &config); err != nil {
15-
return nil, err
16-
}
17-
return config, nil
18-
}
19-
20-
func GenerateUserYaml(config infrav1.User) (string, error) {
21-
b, err := yaml.Marshal(&config)
22-
if err != nil {
23-
return "", err
24-
}
25-
return fmt.Sprintf("#cloud-config\n%s", string(b)), nil
26-
}
27-
28-
func MergeUsers(a, b infrav1.User) (*infrav1.User, error) {
29-
if err := mergo.Merge(&a, b, mergo.WithAppendSlice); err != nil {
30-
return nil, err
31-
}
32-
return &a, nil
33-
}
1+
package cloudinit
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/imdario/mergo"
7+
"gopkg.in/yaml.v3"
8+
9+
infrav1 "github.com/sp-yduck/cluster-api-provider-proxmox/api/v1beta1"
10+
)
11+
12+
func ParseUser(content string) (*infrav1.User, error) {
13+
var config *infrav1.User
14+
if err := yaml.Unmarshal([]byte(content), &config); err != nil {
15+
return nil, err
16+
}
17+
return config, nil
18+
}
19+
20+
func GenerateUserYaml(config infrav1.User) (string, error) {
21+
b, err := yaml.Marshal(&config)
22+
if err != nil {
23+
return "", err
24+
}
25+
return fmt.Sprintf("#cloud-config\n%s", string(b)), nil
26+
}
27+
28+
func MergeUsers(a, b infrav1.User) (*infrav1.User, error) {
29+
if err := mergo.Merge(&a, b, mergo.WithAppendSlice); err != nil {
30+
return nil, err
31+
}
32+
return &a, nil
33+
}

cloud/cloudinit/user_test.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package cloudinit_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/sp-yduck/cluster-api-provider-proxmox/cloud/cloudinit"
7+
)
8+
9+
func TestParseUser(t *testing.T) {
10+
testYaml := `
11+
write_files:
12+
- path: /run/kubeadm/kubeadm.yaml
13+
owner: root:root
14+
permissions: '0640'
15+
content: |
16+
asdfasdfasdf
17+
runcmd:
18+
- 'kubeadm init --config /run/kubeadm/kubeadm.yaml && echo success > /run/cluster-api/bootstrap-success.complete'
19+
- "curl -L https://dl.k8s.io/release/v1.27.3/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl"
20+
- "chmod +x /usr/local/bin/kubectl"
21+
- "reboot now"
22+
`
23+
_, err := cloudinit.ParseUser(testYaml)
24+
if err != nil {
25+
t.Fatalf("failed to parse user: %v", err)
26+
}
27+
}
28+
29+
func TestGenerateUserYaml(t *testing.T) {
30+
testYaml := `
31+
write_files:
32+
- path: /run/kubeadm/kubeadm.yaml
33+
owner: root:root
34+
permissions: '0640'
35+
content: |
36+
asdfasdfasdf
37+
runcmd:
38+
- 'kubeadm init --config /run/kubeadm/kubeadm.yaml && echo success > /run/cluster-api/bootstrap-success.complete'
39+
- "curl -L https://dl.k8s.io/release/v1.27.3/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl"
40+
- "chmod +x /usr/local/bin/kubectl"
41+
- "reboot now"
42+
`
43+
44+
uc, err := cloudinit.ParseUser(testYaml)
45+
if err != nil {
46+
t.Fatalf("failed to parse user: %v", err)
47+
}
48+
49+
_, err = cloudinit.GenerateUserYaml(*uc)
50+
if err != nil {
51+
t.Fatalf("generate : %v", err)
52+
}
53+
}

0 commit comments

Comments
 (0)