本文整理汇总了Golang中github.com/hashicorp/vault/api.NewClient函数的典型用法代码示例。如果您正苦于以下问题:Golang NewClient函数的具体用法?Golang NewClient怎么用?Golang NewClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewClient函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: mountServer
func (d *driver) mountServer(mountpoint string) (*fuse.Server, error) {
if err := os.MkdirAll(filepath.Dir(mountpoint), 0755); err != nil {
return nil, err
}
conf := api.DefaultConfig()
client, err := api.NewClient(conf)
if err != nil {
return nil, err
}
ownership := keywhizfs.NewOwnership("root", "root")
kwfs, root := NewFs(client, ownership)
mountOptions := &fuse.MountOptions{
AllowOther: true,
Name: kwfs.String(),
Options: []string{"default_permissions"},
}
// Empty Options struct avoids setting a global uid/gid override.
conn := nodefs.NewFileSystemConnector(root, &nodefs.Options{})
server, err := fuse.NewServer(conn.RawFS(), mountpoint, mountOptions)
if err != nil {
log.Printf("Mount fail: %v\n", err)
return nil, err
}
go server.Serve()
return server, nil
}
开发者ID:pshouse,项目名称:global-hack-day-3,代码行数:32,代码来源:driver.go
示例2: NewClient
// NewClient returns a VaultClient object or error
func NewClient(config *VaultConfig) (*VaultClient, error) {
vc := VaultClient{}
c, err := api.NewClient(&api.Config{Address: config.Server})
vc.client = c
vc.config = config
return &vc, err
}
开发者ID:dollarshaveclub,项目名称:go-lib,代码行数:8,代码来源:vaultclient.go
示例3: remove
func remove(keyname string) error {
TOKEN = vLogin("", "", "ldap")
if TOKEN == "" {
return fmt.Errorf("%s", "User Login failed")
}
// Get element list
EPATH := fmt.Sprint("secret/usr/", ADNAME)
ELIST := getVaultValue(EPATH, TOKEN)
//Split the list into an array
EARRAY := strings.Split(ELIST.Data[LISTNAME].(string), ",")
TNUM := -1
// Search the array for the keyname value
for lup, v := range EARRAY {
if v == keyname {
TNUM = lup
break
}
}
// If value isn't found, report it
if TNUM == -1 {
fmt.Println("Key name was not found in the list")
return &errorString{"KeyError"}
}
// Delete the keyname
config := tls.Config{InsecureSkipVerify: true}
cnfg := vault.DefaultConfig()
cnfg.Address = VAULTSERVER
cnfg.HttpClient.Transport = &http.Transport{
TLSClientConfig: &config,
}
client, err := vault.NewClient(cnfg)
if err != nil {
return err
}
client.SetToken(TOKEN)
SPATH := fmt.Sprint("secret/usr/", ADNAME, "/", keyname)
_, err = client.Logical().Delete(SPATH)
if err != nil {
return err
}
//Remove the key from the key list
var s map[string]interface{}
if TNUM == -1 || TNUM == 0 {
s = map[string]interface{}{LISTNAME: ""}
} else if TNUM > 0 {
elst1 := strings.Join(EARRAY[:TNUM], ",")
elst2 := strings.Join(EARRAY[TNUM+1:], ",")
elst := strings.Join([]string{elst1, elst2}, ",")
s = map[string]interface{}{LISTNAME: elst}
}
// And write it to the Vault
err = putVaultValue(EPATH, TOKEN, s)
return err
}
开发者ID:lcbowen3,项目名称:go,代码行数:59,代码来源:vsecure.go
示例4: Client
func Client(token string) (*api.Client, error) {
client, err := api.NewClient(DefaultConfig)
if err != nil {
return nil, err
}
client.SetToken(token)
return client, nil
}
开发者ID:calavera,项目名称:docker-volume-vault,代码行数:8,代码来源:client.go
示例5: newVaultClient
// newVaultClient creates a new client for connecting to vault.
func newVaultClient(config *Config) (*vaultapi.Client, error) {
log.Printf("[INFO] (runner) creating vault/api client")
vaultConfig := vaultapi.DefaultConfig()
if config.Vault.Address != "" {
log.Printf("[DEBUG] (runner) setting vault address to %s", config.Vault.Address)
vaultConfig.Address = config.Vault.Address
}
if config.Vault.SSL.Enabled {
log.Printf("[DEBUG] (runner) enabling vault SSL")
tlsConfig := &tls.Config{}
if config.Vault.SSL.Cert != "" {
cert, err := tls.LoadX509KeyPair(config.Vault.SSL.Cert, config.Vault.SSL.Cert)
if err != nil {
return nil, err
}
tlsConfig.Certificates = []tls.Certificate{cert}
}
if config.Vault.SSL.CaCert != "" {
cacert, err := ioutil.ReadFile(config.Vault.SSL.CaCert)
if err != nil {
return nil, err
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(cacert)
tlsConfig.RootCAs = caCertPool
}
tlsConfig.BuildNameToCertificate()
if !config.Vault.SSL.Verify {
log.Printf("[WARN] (runner) disabling vault SSL verification")
tlsConfig.InsecureSkipVerify = true
}
vaultConfig.HttpClient.Transport = &http.Transport{
TLSClientConfig: tlsConfig,
}
}
client, err := vaultapi.NewClient(vaultConfig)
if err != nil {
return nil, err
}
if config.Vault.Token != "" {
log.Printf("[DEBUG] (runner) setting vault token")
client.SetToken(config.Vault.Token)
}
return client, nil
}
开发者ID:timopek,项目名称:consul-template,代码行数:57,代码来源:runner.go
示例6: TestHTTP_Fallback_Disabled
func TestHTTP_Fallback_Disabled(t *testing.T) {
handler1 := http.NewServeMux()
handler2 := http.NewServeMux()
handler3 := http.NewServeMux()
coreConfig := &vault.CoreConfig{
LogicalBackends: map[string]logical.Factory{
"transit": transit.Factory,
},
ClusterAddr: "empty",
}
// Chicken-and-egg: Handler needs a core. So we create handlers first, then
// add routes chained to a Handler-created handler.
cores := vault.TestCluster(t, []http.Handler{handler1, handler2, handler3}, coreConfig, true)
for _, core := range cores {
defer core.CloseListeners()
}
handler1.Handle("/", Handler(cores[0].Core))
handler2.Handle("/", Handler(cores[1].Core))
handler3.Handle("/", Handler(cores[2].Core))
// make it easy to get access to the active
core := cores[0].Core
vault.TestWaitActive(t, core)
root := cores[0].Root
addrs := []string{
fmt.Sprintf("https://127.0.0.1:%d", cores[1].Listeners[0].Address.Port),
fmt.Sprintf("https://127.0.0.1:%d", cores[2].Listeners[0].Address.Port),
}
for _, addr := range addrs {
config := api.DefaultConfig()
config.Address = addr
config.HttpClient = cleanhttp.DefaultClient()
config.HttpClient.Transport.(*http.Transport).TLSClientConfig = cores[0].TLSConfig
client, err := api.NewClient(config)
if err != nil {
t.Fatal(err)
}
client.SetToken(root)
secret, err := client.Auth().Token().LookupSelf()
if err != nil {
t.Fatal(err)
}
if secret == nil {
t.Fatal("secret is nil")
}
if secret.Data["id"].(string) != root {
t.Fatal("token mismatch")
}
}
}
开发者ID:mhurne,项目名称:vault,代码行数:56,代码来源:forwarding_test.go
示例7: newClientFromConfig
func newClientFromConfig(config *api.Config, token string) (*api.Client, error) {
client, err := api.NewClient(config)
if err != nil {
return nil, maskAny(err)
}
if token != "" {
client.SetToken(token)
}
return client, nil
}
开发者ID:pulcy,项目名称:vault-monkey,代码行数:10,代码来源:service.go
示例8: Client
func Client(token string) (*api.Client, error) {
if DefaultConfig == nil {
return nil, fmt.Errorf("Config was nil")
}
client, err := api.NewClient(DefaultConfig)
if err != nil {
return nil, err
}
client.SetToken(token)
return client, nil
}
开发者ID:ChrisMcKenzie,项目名称:docker-volume-vault,代码行数:11,代码来源:client.go
示例9: testClient
func testClient(t *testing.T, addr string, token string) *api.Client {
config := api.DefaultConfig()
config.Address = addr
client, err := api.NewClient(config)
if err != nil {
t.Fatalf("err: %s", err)
}
client.SetToken(token)
return client
}
开发者ID:vincentaubert,项目名称:vault,代码行数:11,代码来源:command_test.go
示例10: createVaultClient
func createVaultClient() *vault.Client {
log.Info("Create vault client")
config := &vault.Config{
Address: "http://localhost:8200",
HttpClient: http.DefaultClient,
}
vc, err := vault.NewClient(config)
fatal(err)
return vc
}
开发者ID:xtraclabs,项目名称:roll,代码行数:11,代码来源:runvaultmachine.go
示例11: vaultAuthenticate
func (vb *vaultBackend) vaultAuthenticate(vaultURI string, token string) error {
vb.config = api.DefaultConfig()
vb.config.Address = vaultURI
client, err := api.NewClient(vb.config) //can probably be global
if err != nil {
glog.Errorf("Error authenticating %s\n", err.Error())
return err
}
client.SetToken(token) //TODO put here the howler token to be read from file
vb.client = client
return nil
}
开发者ID:zalando-incubator,项目名称:howler,代码行数:12,代码来源:vault.go
示例12: New
// New returns a new VaultFS
func New(config *api.Config, mountpoint, token, root string) (*VaultFS, error) {
client, err := api.NewClient(config)
if err != nil {
return nil, err
}
client.SetToken(token)
return &VaultFS{
Client: client,
root: root,
mountpoint: mountpoint,
}, nil
}
开发者ID:asteris-llc,项目名称:vaultfs,代码行数:14,代码来源:fs.go
示例13: initVault
func initVault() {
// set up vault client
var client *vault.Client
if viper.GetString("vault-cubbyhole-token") != "" || viper.GetString("vault-token") != "" {
config := vault.DefaultConfig()
err := config.ReadEnvironment()
if err != nil {
log.WithError(err).Fatal("Error reading environment for Vault configuration")
}
client, err = vault.NewClient(config)
if err != nil {
log.WithError(err).Fatal("Error initializing Vault client")
}
}
// unwrap real token
if wrapped := viper.GetString("vault-cubbyhole-token"); wrapped != "" {
token, err := client.Logical().Unwrap(wrapped)
if err != nil {
log.WithError(err).Fatal("Error unwrapping token")
} else if token.WrapInfo != nil {
log.Fatal("Secret appears to be doubly wrapped")
} else if token.Auth == nil {
log.Fatal("Secret contained no auth data")
}
viper.Set("vault-token", token.Auth.ClientToken)
}
// read secrets from vault
if token := viper.GetString("vault-token"); token != "" {
client.SetToken(token)
secret, err := client.Logical().Read("secret/mantl-api")
if err != nil {
log.WithError(err).Fatal("Error reading secret/mantl-api")
}
for _, secretName := range []string{
"mesos-principal", "mesos-secret",
"marathon-user", "marathon-password",
} {
secretValue, ok := secret.Data[secretName].(string)
if ok {
viper.Set(secretName, secretValue)
} else {
log.Warnf("secret/mantl-api didn't contain %s", secretName)
}
}
}
}
开发者ID:CiscoCloud,项目名称:mantl-api,代码行数:51,代码来源:main.go
示例14: Fingerprint
func (f *VaultFingerprint) Fingerprint(config *client.Config, node *structs.Node) (bool, error) {
if config.VaultConfig == nil || !config.VaultConfig.IsEnabled() {
return false, nil
}
// Only create the client once to avoid creating too many connections to
// Vault.
if f.client == nil {
vaultConfig, err := config.VaultConfig.ApiConfig()
if err != nil {
return false, fmt.Errorf("Failed to initialize the Vault client config: %v", err)
}
f.client, err = vapi.NewClient(vaultConfig)
if err != nil {
return false, fmt.Errorf("Failed to initialize Vault client: %s", err)
}
}
// Connect to vault and parse its information
status, err := f.client.Sys().SealStatus()
if err != nil {
// Clear any attributes set by a previous fingerprint.
f.clearVaultAttributes(node)
// Print a message indicating that Vault is not available anymore
if f.lastState == vaultAvailable {
f.logger.Printf("[INFO] fingerprint.vault: Vault is unavailable")
}
f.lastState = vaultUnavailable
return false, nil
}
node.Attributes["vault.accessible"] = strconv.FormatBool(true)
// We strip the Vault prefix becasue < 0.6.2 the version looks like:
// status.Version = "Vault v0.6.1"
node.Attributes["vault.version"] = strings.TrimPrefix(status.Version, "Vault ")
node.Attributes["vault.cluster_id"] = status.ClusterID
node.Attributes["vault.cluster_name"] = status.ClusterName
// If Vault was previously unavailable print a message to indicate the Agent
// is available now
if f.lastState == vaultUnavailable {
f.logger.Printf("[INFO] fingerprint.vault: Vault is available")
}
f.lastState = vaultAvailable
return true, nil
}
开发者ID:nak3,项目名称:nomad,代码行数:48,代码来源:vault.go
示例15: NewVaultClient
func NewVaultClient(vaultEndpoint string, token string) (interfaces.VaultClient, error) {
cfg := api.DefaultConfig()
cfg.ReadEnvironment()
cfg.Address = vaultEndpoint
vault, err := api.NewClient(cfg)
if err != nil {
return nil, err
}
vault.SetToken(token)
return &VaultClient{
vaultClient: vault,
config: cfg,
}, nil
}
开发者ID:bluestatedigital,项目名称:centralbooking,代码行数:17,代码来源:vault_client.go
示例16: client
func (s *VaultSource) client() (*api.Client, error) {
conf := api.DefaultConfig()
if err := conf.ReadEnvironment(); err != nil {
return nil, err
}
if s.Addr != "" {
conf.Address = s.Addr
}
c, err := api.NewClient(conf)
if err != nil {
return nil, err
}
if err := s.setToken(c); err != nil {
return nil, err
}
return c, nil
}
开发者ID:hilerchyn,项目名称:fabio,代码行数:17,代码来源:vault_source.go
示例17: TestVaultSource
func TestVaultSource(t *testing.T) {
const (
addr = "127.0.0.1:58421"
rootToken = "token"
certPath = "secret/fabio/cert"
)
// run a vault server in dev mode
t.Log("Starting vault server")
vault := exec.Command("vault", "server", "-dev", "-dev-root-token-id="+rootToken, "-dev-listen-address="+addr)
if err := vault.Start(); err != nil {
t.Fatalf("Failed to start vault server. %s", err)
}
defer vault.Process.Kill()
// create a vault client for that server
c, err := vaultapi.NewClient(&vaultapi.Config{Address: "http://" + addr})
if err != nil {
t.Fatalf("NewClient failed: %s", err)
}
c.SetToken(rootToken)
isUp := func() bool {
ok, err := c.Sys().InitStatus()
return err == nil && ok
}
if !waitFor(time.Second, isUp) {
t.Fatal("Timeout waiting for vault server")
}
// create a renewable token since the vault source
// will renew the token on every request
tok, err := c.Auth().Token().Create(&vaultapi.TokenCreateRequest{NoParent: true, TTL: "1h"})
if err != nil {
t.Fatalf("Token.Create failed: %s", err)
}
// create a cert and store it in vault
certPEM, keyPEM := makeCert("localhost", time.Minute)
data := map[string]interface{}{"cert": string(certPEM), "key": string(keyPEM)}
if _, err := c.Logical().Write(certPath+"/localhost", data); err != nil {
t.Fatalf("logical.Write failed: %s", err)
}
testSource(t, VaultSource{Addr: "http://" + addr, token: tok.Auth.ClientToken, CertPath: certPath}, makeCertPool(certPEM), 50*time.Millisecond)
}
开发者ID:yexiaoming20140413,项目名称:fabio,代码行数:46,代码来源:source_test.go
示例18: main
func main() {
config := api.DefaultConfig()
client, err := api.NewClient(config)
if err != nil {
log.Fatal("err: %s", err)
}
if token := client.Token(); token != "" {
log.Printf("using token client %s", token)
} else {
log.Fatal("no VAULT_TOKEN supplied!")
}
path := `secret/hello`
_, err = client.Logical().Write(path, map[string]interface{}{"audience": "world"})
if err != nil {
log.Fatal("error writing %s: %s", path, err)
} else {
log.Printf("wrote %s successfully", path)
}
secret, err := client.Logical().Read(path)
if err != nil {
log.Fatal("error reading %s: %s", path, err)
} else {
data, err := json.Marshal(secret.Data)
if err != nil {
log.Fatal("error decoding %s: %s", path, err)
} else {
log.Printf("read %s as: %s", path, data)
}
}
_, err = client.Logical().Delete(path)
if err != nil {
log.Fatal("error deleting %s: %s", path, err)
} else {
secret, _ := client.Logical().Read(path)
if secret != nil {
log.Fatal("error deleting %s: still readable after delete", path)
} else {
log.Printf("deleted %s successfully", path)
}
}
}
开发者ID:sheldonh,项目名称:vault-api-example,代码行数:45,代码来源:main.go
示例19: buildClient
// buildClient is used to build a Vault client based on the stored Vault config
func (v *vaultClient) buildClient() error {
// Validate we have the required fields.
if v.config.Token == "" {
return errors.New("Vault token must be set")
} else if v.config.Addr == "" {
return errors.New("Vault address must be set")
}
// Parse the TTL if it is set
if v.config.TaskTokenTTL != "" {
d, err := time.ParseDuration(v.config.TaskTokenTTL)
if err != nil {
return fmt.Errorf("failed to parse TaskTokenTTL %q: %v", v.config.TaskTokenTTL, err)
}
if d.Nanoseconds() < minimumTokenTTL.Nanoseconds() {
return fmt.Errorf("ChildTokenTTL is less than minimum allowed of %v", minimumTokenTTL)
}
v.childTTL = v.config.TaskTokenTTL
} else {
// Default the TaskTokenTTL
v.childTTL = defaultTokenTTL
}
// Get the Vault API configuration
apiConf, err := v.config.ApiConfig()
if err != nil {
return fmt.Errorf("Failed to create Vault API config: %v", err)
}
// Create the Vault API client
client, err := vapi.NewClient(apiConf)
if err != nil {
v.logger.Printf("[ERR] vault: failed to create Vault client. Not retrying: %v", err)
return err
}
// Set the token and store the client
v.token = v.config.Token
client.SetToken(v.token)
v.client = client
v.auth = client.Auth().Token()
return nil
}
开发者ID:achanda,项目名称:nomad,代码行数:46,代码来源:vault.go
示例20: NewVaultClient
// NewVaultClient creates a new vault client
func NewVaultClient(vaultURL, caFile string, skipTLSVerify bool) (VaultService, error) {
var err error
config := api.DefaultConfig()
config.Address = vaultURL
config.HttpClient.Transport, err = buildTransport(skipTLSVerify, caFile)
if err != nil {
return nil, err
}
client, err := api.NewClient(config)
if err != nil {
return nil, err
}
return &vault{
client: client,
}, nil
}
开发者ID:postfix,项目名称:openvpn-authd,代码行数:20,代码来源:vault.go
注:本文中的github.com/hashicorp/vault/api.NewClient函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论