Skip to content

Commit e8d2607

Browse files
committed
Use templates to set the datasource
1 parent 29f2ce7 commit e8d2607

File tree

6 files changed

+48
-28
lines changed

6 files changed

+48
-28
lines changed

guac_connection_groups.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
)
77

88
func (g *Guac) GetConnectionTree() (GuacConnectionGroup, error) {
9-
body, err := g.Call("GET", "/api/session/data/mysql/connectionGroups/ROOT/tree", nil, nil)
9+
body, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/connectionGroups/ROOT/tree", nil, nil)
1010
if err != nil {
1111
return GuacConnectionGroup{}, err
1212
}
@@ -43,7 +43,7 @@ func flatten(nested []GuacConnectionGroup) ([]GuacConnection, []GuacConnectionGr
4343

4444
func (g *Guac) CreateConnectionGroup(conn *GuacConnectionGroup) (GuacConnectionGroup, error) {
4545
ret := GuacConnectionGroup{}
46-
resp, err := g.Call("POST", "/api/session/data/mysql/connectionGroups", nil, conn)
46+
resp, err := g.Call("POST", "/api/session/data/{{ .Datasource }}/connectionGroups", nil, conn)
4747
if err != nil {
4848
return GuacConnectionGroup{}, err
4949
}
@@ -57,7 +57,7 @@ func (g *Guac) CreateConnectionGroup(conn *GuacConnectionGroup) (GuacConnectionG
5757

5858
func (g *Guac) ReadConnectionGroup(conn *GuacConnectionGroup) (GuacConnectionGroup, error) {
5959
ret := GuacConnectionGroup{}
60-
resp, err := g.Call("GET", "/api/session/data/mysql/connectionGroups/"+conn.Identifier, nil, nil)
60+
resp, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/connectionGroups/"+conn.Identifier, nil, nil)
6161
if err != nil {
6262
return GuacConnectionGroup{}, err
6363
}
@@ -71,7 +71,7 @@ func (g *Guac) ReadConnectionGroup(conn *GuacConnectionGroup) (GuacConnectionGro
7171
}
7272

7373
func (g *Guac) UpdateConnectionGroup(conn *GuacConnectionGroup) error {
74-
_, err := g.Call("PUT", "/api/session/data/mysql/connectionGroups/"+conn.Identifier, nil, conn)
74+
_, err := g.Call("PUT", "/api/session/data/{{ .Datasource }}/connectionGroups/"+conn.Identifier, nil, conn)
7575
if err != nil {
7676
return err
7777
} else {
@@ -81,7 +81,7 @@ func (g *Guac) UpdateConnectionGroup(conn *GuacConnectionGroup) error {
8181
}
8282

8383
func (g *Guac) DeleteConnectionGroup(conn *GuacConnectionGroup) error {
84-
_, err := g.Call("DELETE", "/api/session/data/mysql/connectionGroups/"+conn.Identifier, nil, conn)
84+
_, err := g.Call("DELETE", "/api/session/data/{{ .Datasource }}/connectionGroups/"+conn.Identifier, nil, conn)
8585
if err != nil {
8686
return err
8787
} else {

guac_connections.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99

1010
func (g *Guac) CreateConnection(conn *GuacConnection) (GuacConnection, error) {
1111
ret := GuacConnection{}
12-
resp, err := g.Call("POST", "/api/session/data/mysql/connections", nil, conn)
12+
resp, err := g.Call("POST", "/api/session/data/{{ .Datasource }}/connections", nil, conn)
1313
if err != nil {
1414
return ret, err
1515
}
@@ -24,7 +24,7 @@ func (g *Guac) ReadConnection(conn *GuacConnection) (GuacConnection, error) {
2424
ret := GuacConnection{}
2525
retParams := GuacConnectionParameters{}
2626

27-
connData, err := g.Call("GET", "/api/session/data/mysql/connections/"+conn.Identifier, nil, nil)
27+
connData, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/connections/"+conn.Identifier, nil, nil)
2828
if err != nil {
2929
return GuacConnection{}, err
3030
}
@@ -33,7 +33,7 @@ func (g *Guac) ReadConnection(conn *GuacConnection) (GuacConnection, error) {
3333
return GuacConnection{}, err
3434
}
3535

36-
connParams, err := g.Call("GET", "/api/session/data/mysql/connections/"+conn.Identifier+"/parameters", nil, nil)
36+
connParams, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/connections/"+conn.Identifier+"/parameters", nil, nil)
3737
if err != nil {
3838
return GuacConnection{}, err
3939
}
@@ -52,15 +52,15 @@ func (g *Guac) ReadConnection(conn *GuacConnection) (GuacConnection, error) {
5252
}
5353

5454
func (g *Guac) UpdateConnection(conn *GuacConnection) error {
55-
_, err := g.Call("PUT", "/api/session/data/mysql/connections/"+conn.Identifier, nil, conn)
55+
_, err := g.Call("PUT", "/api/session/data/{{ .Datasource }}/connections/"+conn.Identifier, nil, conn)
5656
if err != nil {
5757
return err
5858
}
5959
return nil
6060
}
6161

6262
func (g *Guac) DeleteConnection(conn *GuacConnection) error {
63-
_, err := g.Call("DELETE", "/api/session/data/mysql/connections/"+conn.Identifier, nil, nil)
63+
_, err := g.Call("DELETE", "/api/session/data/{{ .Datasource }}/connections/"+conn.Identifier, nil, nil)
6464
if err != nil {
6565
return err
6666
}

guac_user_groups.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
func (g *Guac) CreateUserGroup(group *GuacUserGroup) (GuacUserGroup, error) {
99
ret := GuacUserGroup{}
10-
resp, err := g.Call("POST", "/api/session/data/mysql/userGroups", nil, group)
10+
resp, err := g.Call("POST", "/api/session/data/{{ .Datasource }}/userGroups", nil, group)
1111
if err != nil {
1212
return ret, err
1313
}
@@ -20,7 +20,7 @@ func (g *Guac) CreateUserGroup(group *GuacUserGroup) (GuacUserGroup, error) {
2020

2121
func (g *Guac) ReadUserGroup(group *GuacUserGroup) (GuacUserGroup, error) {
2222
ret := GuacUserGroup{}
23-
resp, err := g.Call("GET", "/api/session/data/mysql/userGroups/"+group.Identifier, nil, nil)
23+
resp, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/userGroups/"+group.Identifier, nil, nil)
2424
if err != nil {
2525
return GuacUserGroup{}, err
2626
}
@@ -32,15 +32,15 @@ func (g *Guac) ReadUserGroup(group *GuacUserGroup) (GuacUserGroup, error) {
3232
}
3333

3434
func (g *Guac) UpdateUserGroup(group *GuacUserGroup) error {
35-
_, err := g.Call("PUT", "/api/session/data/mysql/userGroups/"+group.Identifier, nil, group)
35+
_, err := g.Call("PUT", "/api/session/data/{{ .Datasource }}/userGroups/"+group.Identifier, nil, group)
3636
if err != nil {
3737
return err
3838
}
3939
return nil
4040
}
4141

4242
func (g *Guac) DeleteUserGroup(group *GuacUserGroup) error {
43-
_, err := g.Call("DELETE", "/api/session/data/mysql/userGroups/"+group.Identifier, nil, nil)
43+
_, err := g.Call("DELETE", "/api/session/data/{{ .Datasource }}/userGroups/"+group.Identifier, nil, nil)
4444
if err != nil {
4545
return err
4646
}
@@ -50,7 +50,7 @@ func (g *Guac) DeleteUserGroup(group *GuacUserGroup) error {
5050
func (g *Guac) ListUserGroups() ([]GuacUserGroup, error) {
5151
ret := []GuacUserGroup{}
5252
marshalledResponse := map[string]GuacUserGroup{}
53-
grp_tree, err := g.Call("GET", "/api/session/data/mysql/userGroups", nil, nil)
53+
grp_tree, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/userGroups", nil, nil)
5454
if err != nil {
5555
return []GuacUserGroup{}, err
5656
}

guac_users.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
func (g *Guac) CreateUser(user *GuacUser) (GuacUser, error) {
99
ret := GuacUser{}
10-
resp, err := g.Call("POST", "/api/session/data/mysql/users", nil, user)
10+
resp, err := g.Call("POST", "/api/session/data/{{ .Datasource }}/users", nil, user)
1111
if err != nil {
1212
return ret, err
1313
}
@@ -20,7 +20,7 @@ func (g *Guac) CreateUser(user *GuacUser) (GuacUser, error) {
2020

2121
func (g *Guac) ReadUser(user *GuacUser) (GuacUser, error) {
2222
ret := GuacUser{}
23-
resp, err := g.Call("GET", "/api/session/data/mysql/users/"+user.Username, nil, nil)
23+
resp, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/users/"+user.Username, nil, nil)
2424
if err != nil {
2525
return GuacUser{}, err
2626
}
@@ -32,15 +32,15 @@ func (g *Guac) ReadUser(user *GuacUser) (GuacUser, error) {
3232
}
3333

3434
func (g *Guac) UpdateUser(user *GuacUser) error {
35-
_, err := g.Call("PUT", "/api/session/data/mysql/users/"+user.Username, nil, user)
35+
_, err := g.Call("PUT", "/api/session/data/{{ .Datasource }}/users/"+user.Username, nil, user)
3636
if err != nil {
3737
return err
3838
}
3939
return nil
4040
}
4141

4242
func (g *Guac) DeleteUser(user *GuacUser) error {
43-
_, err := g.Call("DELETE", "/api/session/data/mysql/users/"+user.Username, nil, nil)
43+
_, err := g.Call("DELETE", "/api/session/data/{{ .Datasource }}/users/"+user.Username, nil, nil)
4444
if err != nil {
4545
return err
4646
}
@@ -51,7 +51,7 @@ func (g *Guac) DeleteUser(user *GuacUser) error {
5151
func (g *Guac) ListUsers() ([]GuacUser, error) {
5252
ret := []GuacUser{}
5353
marshalledResponse := map[string]GuacUser{}
54-
user_tree, err := g.Call("GET", "/api/session/data/mysql/users", nil, nil)
54+
user_tree, err := g.Call("GET", "/api/session/data/{{ .Datasource }}/users", nil, nil)
5555
if err != nil {
5656
return []GuacUser{}, err
5757
}

sessiontoken.go

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,21 @@ import (
88
"net/http"
99
"net/url"
1010
"strconv"
11-
11+
"text/template"
1212
)
1313

1414
type Guac struct {
15-
URI string
16-
Username string
17-
Password string
18-
Token string
15+
URI string
16+
Username string
17+
Password string
18+
Token string
19+
Datasource string
1920
}
2021

22+
var (
23+
callTemplate = template.New("call")
24+
)
25+
2126
func (g *Guac) Connect() error {
2227
resp, err := http.PostForm(g.URI+"/api/tokens",
2328
url.Values{
@@ -38,6 +43,7 @@ func (g *Guac) Connect() error {
3843
return err
3944
}
4045
g.Token = tokenresp.AuthToken
46+
g.Datasource = tokenresp.Datasource
4147
return nil
4248
}
4349

@@ -64,7 +70,20 @@ func (g *Guac) RefreshToken() error {
6470
}
6571

6672
func (g *Guac) Call(m, u string, xq map[string]string, b interface{}) ([]byte, error) {
67-
err := g.RefreshToken()
73+
ut, err := callTemplate.Parse(u)
74+
if err != nil {
75+
return nil, err
76+
}
77+
78+
var buf bytes.Buffer
79+
80+
err = ut.Execute(&buf, xq)
81+
if err != nil {
82+
return nil, err
83+
}
84+
u = buf.String()
85+
86+
err = g.RefreshToken()
6887
if err != nil {
6988
return nil, err
7089
}
@@ -115,5 +134,6 @@ func (g *Guac) Call(m, u string, xq map[string]string, b interface{}) ([]byte, e
115134
if err != nil {
116135
return nil, err
117136
}
137+
118138
return body, nil
119139
}

user_connection_permissions.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
)
66

77
func (g *Guac) SendUserConnectionPermissionChanges(user string, p []GuacPermissionItem) error {
8-
url := "/api/session/data/mysql/users/" + user + "/permissions"
8+
url := "/api/session/data/{{ .Datasource }}/users/" + user + "/permissions"
99
_, err := g.Call("PATCH", url, nil, p)
1010
if err != nil {
1111
return err
@@ -15,7 +15,7 @@ func (g *Guac) SendUserConnectionPermissionChanges(user string, p []GuacPermissi
1515

1616
func (g *Guac) GetUserConnectionPermissions(user string) (GuacPermissionData, error) {
1717
ret := GuacPermissionData{}
18-
url := "/api/session/data/mysql/users/" + user + "/permissions"
18+
url := "/api/session/data/{{ .Datasource }}/users/" + user + "/permissions"
1919
resp, err := g.Call("GET", url, nil, nil)
2020
if err != nil {
2121
return GuacPermissionData{}, err

0 commit comments

Comments
 (0)