mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-01 11:08:10 +00:00
Add HCP subcommand -- integrate with HCP library (#23897)
* Add HCP engine token logic * Update documentation * Fix content check * Add changelog entry * Update changelog/23897.txt Co-authored-by: Nick Cabatoff <ncabatoff@hashicorp.com> * Update api/client.go Co-authored-by: Chris Capurso <1036769+ccapurso@users.noreply.github.com> * Add error when HCP commands failed to be initialize * Add tests for initHCPcommand function * Update lib dependency * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Fix docs nav data * Improve docs sections * Update hcp lib dependency * Fix content formatting * Update lib dependency * Fix HCPtokenhelper problem * Fix HCPtokenhelper problem * Remove HCP env variables * Remove hcp helper token * Add error treatment for no valid credential source * Update website/content/docs/commands/hcp/index.mdx Co-authored-by: Yoko Hyakuna <yoko@hashicorp.com> * Update website/content/docs/commands/hcp/disconnect.mdx Co-authored-by: Yoko Hyakuna <yoko@hashicorp.com> * Update website/content/docs/commands/hcp/connect.mdx Co-authored-by: Yoko Hyakuna <yoko@hashicorp.com> * Update website/content/docs/commands/hcp/disconnect.mdx Co-authored-by: Yoko Hyakuna <yoko@hashicorp.com> * Update website/content/docs/commands/hcp/index.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Update website/content/docs/commands/hcp/connect.mdx Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> * Modify hcp tests --------- Co-authored-by: Nick Cabatoff <ncabatoff@hashicorp.com> Co-authored-by: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> Co-authored-by: Yoko Hyakuna <yoko@hashicorp.com>
This commit is contained in:
@@ -7,6 +7,12 @@ import (
|
||||
"net/http"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/vault/api"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
hcpvlib "github.com/hashicorp/vault-hcp-lib"
|
||||
)
|
||||
|
||||
func getDefaultCliHeaders(t *testing.T) http.Header {
|
||||
@@ -70,3 +76,37 @@ func TestClient_FlagHeader(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestClient_HCPConfiguration tests that the HCP configuration is applied correctly when it exists in cache.
|
||||
func TestClient_HCPConfiguration(t *testing.T) {
|
||||
cases := map[string]struct {
|
||||
Valid bool
|
||||
ExpectedAddr string
|
||||
}{
|
||||
"valid hcp configuration": {
|
||||
Valid: true,
|
||||
ExpectedAddr: "https://hcp-proxy.addr:8200",
|
||||
},
|
||||
"empty hcp configuration": {
|
||||
Valid: false,
|
||||
ExpectedAddr: api.DefaultAddress,
|
||||
},
|
||||
}
|
||||
|
||||
for n, tst := range cases {
|
||||
t.Run(n, func(t *testing.T) {
|
||||
bc := &BaseCommand{hcpTokenHelper: &hcpvlib.TestingHCPTokenHelper{tst.Valid}}
|
||||
cli, err := bc.Client()
|
||||
assert.NoError(t, err)
|
||||
|
||||
if tst.Valid {
|
||||
require.Equal(t, tst.ExpectedAddr, cli.Address())
|
||||
require.NotEmpty(t, cli.HCPCookie())
|
||||
require.Contains(t, cli.HCPCookie(), "hcp_access_token=Test.Access.Token")
|
||||
} else {
|
||||
require.Equal(t, tst.ExpectedAddr, cli.Address())
|
||||
require.Empty(t, cli.HCPCookie())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user