Merge pull request #1723 from hashicorp/nil-config-client
Use default config and read environment by default while creating client object
This commit is contained in:
commit
14c508ea91
|
@ -238,6 +238,13 @@ type Client struct {
|
|||
// automatically added to the client. Otherwise, you must manually call
|
||||
// `SetToken()`.
|
||||
func NewClient(c *Config) (*Client, error) {
|
||||
if c == nil {
|
||||
c = DefaultConfig()
|
||||
if err := c.ReadEnvironment(); err != nil {
|
||||
return nil, fmt.Errorf("error reading environment: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
u, err := url.Parse(c.Address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -271,6 +278,18 @@ func NewClient(c *Config) (*Client, error) {
|
|||
return client, nil
|
||||
}
|
||||
|
||||
// Sets the address of Vault in the client. The format of address should be
|
||||
// "<Scheme>://<Host>:<Port>". Setting this on a client will override the
|
||||
// value of VAULT_ADDR environment variable.
|
||||
func (c *Client) SetAddress(addr string) error {
|
||||
var err error
|
||||
if c.addr, err = url.Parse(addr); err != nil {
|
||||
return fmt.Errorf("failed to set address: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetWrappingLookupFunc sets a lookup function that returns desired wrap TTLs
|
||||
// for a given operation and path
|
||||
func (c *Client) SetWrappingLookupFunc(lookupFunc WrappingLookupFunc) {
|
||||
|
|
|
@ -36,6 +36,29 @@ func TestDefaultConfig_envvar(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestClientNilConfig(t *testing.T) {
|
||||
client, err := NewClient(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if client == nil {
|
||||
t.Fatal("expected a non-nil client")
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientSetAddress(t *testing.T) {
|
||||
client, err := NewClient(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := client.SetAddress("http://172.168.2.1:8300"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if client.addr.Host != "172.168.2.1:8300" {
|
||||
t.Fatalf("bad: expected: '172.168.2.1:8300' actual: %q", client.addr.Host)
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientToken(t *testing.T) {
|
||||
tokenValue := "foo"
|
||||
handler := func(w http.ResponseWriter, req *http.Request) {}
|
||||
|
|
Loading…
Reference in a new issue