Skip to content

Commit 9594138

Browse files
author
Thibault Gilles
committed
Pull congig from ha
1 parent 9fbb8ad commit 9594138

File tree

15 files changed

+662
-227
lines changed

15 files changed

+662
-227
lines changed

haproxy/dataplane/backend.go

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package dataplane
2+
3+
import (
4+
"fmt"
5+
"net/http"
6+
7+
"github.com/haproxytech/models"
8+
)
9+
10+
func (c *Dataplane) Backends() ([]models.Backend, error) {
11+
type resT struct {
12+
Data []models.Backend `json:"data"`
13+
}
14+
15+
var res resT
16+
17+
err := c.makeReq(http.MethodGet, "/v1/services/haproxy/configuration/backends", nil, &res)
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
return res.Data, nil
23+
}
24+
25+
func (c *Dataplane) Servers(beName string) ([]models.Server, error) {
26+
type resT struct {
27+
Data []models.Server `json:"data"`
28+
}
29+
30+
var res resT
31+
32+
err := c.makeReq(http.MethodGet, fmt.Sprintf("/v1/services/haproxy/configuration/servers?backend=%s", beName), nil, &res)
33+
if err != nil {
34+
return nil, err
35+
}
36+
37+
return res.Data, nil
38+
}
39+
40+
func (t *tnx) CreateBackend(be models.Backend) error {
41+
if err := t.ensureTnx(); err != nil {
42+
return err
43+
}
44+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/backends?transaction_id=%s", t.txID), be, nil)
45+
}
46+
47+
func (t *tnx) DeleteBackend(name string) error {
48+
if err := t.ensureTnx(); err != nil {
49+
return err
50+
}
51+
return t.client.makeReq(http.MethodDelete, fmt.Sprintf("/v1/services/haproxy/configuration/backends/%s?transaction_id=%s", name, t.txID), nil, nil)
52+
}
53+
54+
func (t *tnx) CreateServer(beName string, srv models.Server) error {
55+
if err := t.ensureTnx(); err != nil {
56+
return err
57+
}
58+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/servers?backend=%s&transaction_id=%s", beName, t.txID), srv, nil)
59+
}
60+
61+
func (t *tnx) ReplaceServer(beName string, srv models.Server) error {
62+
t.After(func() error {
63+
return t.client.ReplaceServer(beName, srv)
64+
})
65+
return nil
66+
}
67+
68+
func (c *Dataplane) ReplaceServer(beName string, srv models.Server) error {
69+
err := c.makeReq(http.MethodPut, fmt.Sprintf("/v1/services/haproxy/configuration/servers/%s?backend=%s&version=%d", srv.Name, beName, c.version), srv, nil)
70+
if err != nil {
71+
return err
72+
}
73+
74+
c.version++
75+
return nil
76+
}
77+
78+
func (t *tnx) DeleteServer(beName string, name string) error {
79+
if err := t.ensureTnx(); err != nil {
80+
return err
81+
}
82+
return t.client.makeReq(http.MethodDelete, fmt.Sprintf("/v1/services/haproxy/configuration/servers/%s?backend=%s&transaction_id=%s", name, beName, t.txID), nil, nil)
83+
}

haproxy/dataplane/dataplane.go

Lines changed: 0 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -102,93 +102,6 @@ func (t *tnx) After(fn func() error) {
102102
t.after = append(t.after, fn)
103103
}
104104

105-
func (t *tnx) CreateFrontend(fe models.Frontend) error {
106-
if err := t.ensureTnx(); err != nil {
107-
return err
108-
}
109-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/frontends?transaction_id=%s", t.txID), fe, nil)
110-
}
111-
112-
func (t *tnx) DeleteFrontend(name string) error {
113-
if err := t.ensureTnx(); err != nil {
114-
return err
115-
}
116-
return t.client.makeReq(http.MethodDelete, fmt.Sprintf("/v1/services/haproxy/configuration/frontends/%s?transaction_id=%s", name, t.txID), nil, nil)
117-
}
118-
119-
func (t *tnx) CreateBind(feName string, bind models.Bind) error {
120-
if err := t.ensureTnx(); err != nil {
121-
return err
122-
}
123-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/binds?frontend=%s&transaction_id=%s", feName, t.txID), bind, nil)
124-
}
125-
126-
func (t *tnx) DeleteBackend(name string) error {
127-
if err := t.ensureTnx(); err != nil {
128-
return err
129-
}
130-
return t.client.makeReq(http.MethodDelete, fmt.Sprintf("/v1/services/haproxy/configuration/backends/%s?transaction_id=%s", name, t.txID), nil, nil)
131-
}
132-
133-
func (t *tnx) CreateBackend(be models.Backend) error {
134-
if err := t.ensureTnx(); err != nil {
135-
return err
136-
}
137-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/backends?transaction_id=%s", t.txID), be, nil)
138-
}
139-
140-
func (t *tnx) CreateServer(beName string, srv models.Server) error {
141-
if err := t.ensureTnx(); err != nil {
142-
return err
143-
}
144-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/servers?backend=%s&transaction_id=%s", beName, t.txID), srv, nil)
145-
}
146-
147-
func (t *tnx) ReplaceServer(beName string, srv models.Server) error {
148-
t.After(func() error {
149-
return t.client.ReplaceServer(beName, srv)
150-
})
151-
return nil
152-
}
153-
154-
func (c *Dataplane) ReplaceServer(beName string, srv models.Server) error {
155-
err := c.makeReq(http.MethodPut, fmt.Sprintf("/v1/services/haproxy/configuration/servers/%s?backend=%s&version=%d", srv.Name, beName, c.version), srv, nil)
156-
if err != nil {
157-
return err
158-
}
159-
160-
c.version++
161-
return nil
162-
}
163-
164-
func (t *tnx) DeleteServer(beName string, name string) error {
165-
if err := t.ensureTnx(); err != nil {
166-
return err
167-
}
168-
return t.client.makeReq(http.MethodDelete, fmt.Sprintf("/v1/services/haproxy/configuration/servers/%s?backend=%s&transaction_id=%s", name, beName, t.txID), nil, nil)
169-
}
170-
171-
func (t *tnx) CreateFilter(parentType, parentName string, filter models.Filter) error {
172-
if err := t.ensureTnx(); err != nil {
173-
return err
174-
}
175-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/filters?parent_type=%s&parent_name=%s&transaction_id=%s", parentType, parentName, t.txID), filter, nil)
176-
}
177-
178-
func (t *tnx) CreateTCPRequestRule(parentType, parentName string, rule models.TCPRequestRule) error {
179-
if err := t.ensureTnx(); err != nil {
180-
return err
181-
}
182-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/tcp_request_rules?parent_type=%s&parent_name=%s&transaction_id=%s", parentType, parentName, t.txID), rule, nil)
183-
}
184-
185-
func (t *tnx) CreateLogTargets(parentType, parentName string, rule models.LogTarget) error {
186-
if err := t.ensureTnx(); err != nil {
187-
return err
188-
}
189-
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/log_targets?parent_type=%s&parent_name=%s&transaction_id=%s", parentType, parentName, t.txID), rule, nil)
190-
}
191-
192105
func (c *Dataplane) makeReq(method, url string, reqData, resData interface{}) error {
193106
c.lock.Lock()
194107
defer c.lock.Unlock()

haproxy/dataplane/filters.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package dataplane
2+
3+
import (
4+
"fmt"
5+
"net/http"
6+
7+
"github.com/haproxytech/models"
8+
)
9+
10+
func (c *Dataplane) Filters(parentType, parentName string) ([]models.Filter, error) {
11+
type resT struct {
12+
Data []models.Filter `json:"data"`
13+
}
14+
15+
var res resT
16+
17+
err := c.makeReq(http.MethodGet, fmt.Sprintf("/v1/services/haproxy/configuration/filters?parent_type=%s&parent_name=%s", parentType, parentName), nil, &res)
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
return res.Data, nil
23+
}
24+
25+
func (c *Dataplane) TCPRequestRules(parentType, parentName string) ([]models.TCPRequestRule, error) {
26+
type resT struct {
27+
Data []models.TCPRequestRule `json:"data"`
28+
}
29+
30+
var res resT
31+
32+
err := c.makeReq(http.MethodGet, fmt.Sprintf("/v1/services/haproxy/configuration/tcp_request_rules?parent_type=%s&parent_name=%s", parentType, parentName), nil, &res)
33+
if err != nil {
34+
return nil, err
35+
}
36+
37+
return res.Data, nil
38+
}
39+
40+
func (t *tnx) CreateFilter(parentType, parentName string, filter models.Filter) error {
41+
if err := t.ensureTnx(); err != nil {
42+
return err
43+
}
44+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/filters?parent_type=%s&parent_name=%s&transaction_id=%s", parentType, parentName, t.txID), filter, nil)
45+
}
46+
47+
func (t *tnx) CreateTCPRequestRule(parentType, parentName string, rule models.TCPRequestRule) error {
48+
if err := t.ensureTnx(); err != nil {
49+
return err
50+
}
51+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/tcp_request_rules?parent_type=%s&parent_name=%s&transaction_id=%s", parentType, parentName, t.txID), rule, nil)
52+
}

haproxy/dataplane/frontend.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package dataplane
2+
3+
import (
4+
"fmt"
5+
"net/http"
6+
7+
"github.com/haproxytech/models"
8+
)
9+
10+
func (c *Dataplane) Frontends() ([]models.Frontend, error) {
11+
type resT struct {
12+
Data []models.Frontend `json:"data"`
13+
}
14+
15+
var res resT
16+
17+
err := c.makeReq(http.MethodGet, "/v1/services/haproxy/configuration/frontends", nil, &res)
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
return res.Data, nil
23+
}
24+
25+
func (c *Dataplane) Binds(feName string) ([]models.Bind, error) {
26+
type resT struct {
27+
Data []models.Bind `json:"data"`
28+
}
29+
30+
var res resT
31+
32+
err := c.makeReq(http.MethodGet, fmt.Sprintf("/v1/services/haproxy/configuration/binds?frontend=%s", feName), nil, &res)
33+
if err != nil {
34+
return nil, err
35+
}
36+
37+
return res.Data, nil
38+
}
39+
40+
func (t *tnx) CreateFrontend(fe models.Frontend) error {
41+
if err := t.ensureTnx(); err != nil {
42+
return err
43+
}
44+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/frontends?transaction_id=%s", t.txID), fe, nil)
45+
}
46+
47+
func (t *tnx) DeleteFrontend(name string) error {
48+
if err := t.ensureTnx(); err != nil {
49+
return err
50+
}
51+
return t.client.makeReq(http.MethodDelete, fmt.Sprintf("/v1/services/haproxy/configuration/frontends/%s?transaction_id=%s", name, t.txID), nil, nil)
52+
}
53+
54+
func (t *tnx) CreateBind(feName string, bind models.Bind) error {
55+
if err := t.ensureTnx(); err != nil {
56+
return err
57+
}
58+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/binds?frontend=%s&transaction_id=%s", feName, t.txID), bind, nil)
59+
}

haproxy/dataplane/logs.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package dataplane
2+
3+
import (
4+
"fmt"
5+
"net/http"
6+
7+
"github.com/haproxytech/models"
8+
)
9+
10+
func (c *Dataplane) LogTargets(parentType, parentName string) ([]models.LogTarget, error) {
11+
type resT struct {
12+
Data []models.LogTarget `json:"data"`
13+
}
14+
15+
var res resT
16+
17+
err := c.makeReq(http.MethodGet, fmt.Sprintf("/v1/services/haproxy/configuration/log_targets?parent_type=%s&parent_name=%s", parentType, parentName), nil, &res)
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
return res.Data, nil
23+
}
24+
25+
func (t *tnx) CreateLogTargets(parentType, parentName string, rule models.LogTarget) error {
26+
if err := t.ensureTnx(); err != nil {
27+
return err
28+
}
29+
return t.client.makeReq(http.MethodPost, fmt.Sprintf("/v1/services/haproxy/configuration/log_targets?parent_type=%s&parent_name=%s&transaction_id=%s", parentType, parentName, t.txID), rule, nil)
30+
}

0 commit comments

Comments
 (0)