...
1
16
17 package framework
18
19 import (
20 "fmt"
21 "time"
22 )
23
24
25 func ResizeGroup(group string, size int32) error {
26 if TestContext.ReportDir != "" {
27 CoreDump(TestContext.ReportDir)
28 defer CoreDump(TestContext.ReportDir)
29 }
30 return TestContext.CloudConfig.Provider.ResizeGroup(group, size)
31 }
32
33
34 func GetGroupNodes(group string) ([]string, error) {
35 return TestContext.CloudConfig.Provider.GetGroupNodes(group)
36 }
37
38
39 func GroupSize(group string) (int, error) {
40 return TestContext.CloudConfig.Provider.GroupSize(group)
41 }
42
43
44 func WaitForGroupSize(group string, size int32) error {
45 timeout := 30 * time.Minute
46 for start := time.Now(); time.Since(start) < timeout; time.Sleep(20 * time.Second) {
47 currentSize, err := GroupSize(group)
48 if err != nil {
49 Logf("Failed to get node instance group size: %v", err)
50 continue
51 }
52 if currentSize != int(size) {
53 Logf("Waiting for node instance group size %d, current size %d", size, currentSize)
54 continue
55 }
56 Logf("Node instance group has reached the desired size %d", size)
57 return nil
58 }
59 return fmt.Errorf("timeout waiting %v for node instance group size to be %d", timeout, size)
60 }
61
View as plain text