-
Notifications
You must be signed in to change notification settings - Fork 927
/
router_group.go
46 lines (36 loc) · 1.06 KB
/
router_group.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
package helpers
import (
"fmt"
"regexp"
. "github.com/onsi/gomega"
. "github.com/onsi/gomega/gexec"
)
type RouterGroup struct {
Name string
ReservablePorts string
guid string
}
func NewRouterGroup(name, reservablePorts string) RouterGroup {
return RouterGroup{
Name: name,
ReservablePorts: reservablePorts,
}
}
func (rg *RouterGroup) Create() {
session := CF("curl", "-X", "POST", "/routing/v1/router_groups", "-d", fmt.Sprintf(`{
"name": "%s",
"type": "tcp",
"reservable_ports": "%s"
}`, rg.Name, rg.ReservablePorts))
Eventually(session).Should(Exit(0))
// Capture the guid from the response so this group can be deleted later
stdout := string(session.Out.Contents())
guidFieldRegex := regexp.MustCompile(`"guid":\s*"([^"]+)"`)
guidMatch := guidFieldRegex.FindStringSubmatch(stdout)
Expect(guidMatch).NotTo(BeNil())
rg.guid = guidMatch[1]
}
func (rg *RouterGroup) Delete() {
session := CF("curl", "--fail", "-X", "DELETE", fmt.Sprintf("/routing/v1/router_groups/%s", rg.guid))
Eventually(session).Should(Exit(0))
}