-
Notifications
You must be signed in to change notification settings - Fork 2
/
credhub_shims.go
95 lines (77 loc) · 2.51 KB
/
credhub_shims.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
package credhub_shims
import (
"code.cloudfoundry.org/credhub-cli/credhub"
"code.cloudfoundry.org/credhub-cli/credhub/auth"
"code.cloudfoundry.org/credhub-cli/credhub/credentials"
"code.cloudfoundry.org/credhub-cli/credhub/credentials/values"
)
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate
//counterfeiter:generate -o ./credhub_fakes/credhub_auth_fake.go . CredhubAuth
type CredhubAuth interface {
UaaClientCredentials(clientId, clientSecret string) auth.Builder
}
type CredhubAuthShim struct {
}
func (c *CredhubAuthShim) UaaClientCredentials(clientId, clientSecret string) auth.Builder {
return auth.UaaClientCredentials(clientId, clientSecret)
}
//counterfeiter:generate -o ./credhub_fakes/credhub_fake.go . Credhub
type Credhub interface {
SetJSON(name string, value values.JSON) (credentials.JSON, error)
GetLatestJSON(name string) (credentials.JSON, error)
SetValue(name string, value values.Value) (credentials.Value, error)
GetLatestValue(name string) (credentials.Value, error)
FindByPath(path string) (credentials.FindResults, error)
Delete(name string) error
}
type CredhubShim struct {
delegate *credhub.CredHub
}
func NewCredhubShim(
url string,
caCert string,
clientID string,
clientSecret string,
uaaCACert string,
authShim CredhubAuth,
) (Credhub, error) {
var delegate *credhub.CredHub
var err error
auth := credhub.Auth(authShim.UaaClientCredentials(clientID, clientSecret))
caCerts := []string{}
if caCert != "" {
caCerts = append(caCerts, caCert)
}
if uaaCACert != "" {
caCerts = append(caCerts, uaaCACert)
}
if len(caCerts) > 0 {
delegate, err = credhub.New(url, credhub.CaCerts(caCerts...), auth)
} else {
delegate, err = credhub.New(url, auth)
}
if err != nil {
return nil, err
}
return &CredhubShim{
delegate: delegate,
}, nil
}
func (ch *CredhubShim) SetJSON(name string, value values.JSON) (credentials.JSON, error) {
return ch.delegate.SetJSON(name, value)
}
func (ch *CredhubShim) GetLatestJSON(name string) (credentials.JSON, error) {
return ch.delegate.GetLatestJSON(name)
}
func (ch *CredhubShim) SetValue(name string, value values.Value) (credentials.Value, error) {
return ch.delegate.SetValue(name, value)
}
func (ch *CredhubShim) GetLatestValue(name string) (credentials.Value, error) {
return ch.delegate.GetLatestValue(name)
}
func (ch *CredhubShim) FindByPath(path string) (credentials.FindResults, error) {
return ch.delegate.FindByPath(path)
}
func (ch *CredhubShim) Delete(name string) error {
return ch.delegate.Delete(name)
}