forked from oVirt/go-ovirt-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient_tag_test.go
98 lines (82 loc) · 1.89 KB
/
client_tag_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package ovirtclient_test
import (
"fmt"
"testing"
ovirtclient "github.com/ovirt/go-ovirt-client"
)
func TestTagCreation(t *testing.T) {
t.Parallel()
helper := getHelper(t)
tag := assertCanCreateTag(t, helper, fmt.Sprintf("test-%s", helper.GenerateRandomID(5)), "")
tag2 := assertCanGetTag(t, helper, tag.ID())
if tag.ID() != tag2.ID() {
t.Fatalf("IDs of the returned tag don't match.")
}
}
func TestAddTagToVM(t *testing.T) {
t.Parallel()
helper := getHelper(t)
client := helper.GetClient()
tagName := fmt.Sprintf("test-%s", helper.GenerateRandomID(5))
tag := assertCanCreateTag(t, helper, tagName, "")
vm := assertCanCreateVM(
t,
helper,
tagName,
nil,
)
fetchedVM, err := client.GetVM(vm.ID())
if err != nil {
t.Fatal(err)
}
if fetchedVM == nil {
t.Fatal("returned VM is nil")
}
err = client.AddTagToVM(vm.ID(), tag.ID())
if err != nil {
t.Fatal(err)
}
vms, err := client.SearchVMs(ovirtclient.VMSearchParams().WithTag(tagName))
if err != nil {
t.Fatalf("Failed to search for VM by Tag (%v)", err)
}
if len(vms) != 1 {
t.Fatalf("Incorrect number of VMs returned (%d)", len(vms))
}
}
func assertCanGetTag(
t *testing.T,
helper ovirtclient.TestHelper,
tagID string,
) ovirtclient.Tag {
client := helper.GetClient()
tag, err := client.GetTag(tagID)
if err != nil {
t.Fatalf("Failed to Get Tag (%v)", err)
}
return tag
}
func assertCanCreateTag(
t *testing.T,
helper ovirtclient.TestHelper,
name string,
description string,
) ovirtclient.Tag {
client := helper.GetClient()
tag, err := client.CreateTag(
name,
description,
)
if err != nil {
t.Fatalf("Failed to create Tag (%v)", err)
}
t.Cleanup(
func() {
t.Logf("Cleaning up test tag %s...", tag.ID())
if err := tag.Remove(); err != nil && !ovirtclient.HasErrorCode(err, ovirtclient.ENotFound) {
t.Fatalf("Failed to remove test VM %s (%v)", tag.ID(), err)
}
},
)
return tag
}