Add HTTP test for renew and fix muxing
This commit is contained in:
parent
c86fd0353c
commit
5771a539a5
|
@ -3,6 +3,7 @@ package command
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/hashicorp/vault/api"
|
||||||
"github.com/hashicorp/vault/http"
|
"github.com/hashicorp/vault/http"
|
||||||
"github.com/hashicorp/vault/meta"
|
"github.com/hashicorp/vault/meta"
|
||||||
"github.com/hashicorp/vault/vault"
|
"github.com/hashicorp/vault/vault"
|
||||||
|
@ -46,3 +47,61 @@ func TestRenew(t *testing.T) {
|
||||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRenewBothWays(t *testing.T) {
|
||||||
|
core, _, token := vault.TestCoreUnsealed(t)
|
||||||
|
ln, addr := http.TestServer(t, core)
|
||||||
|
defer ln.Close()
|
||||||
|
|
||||||
|
// write a secret with a lease
|
||||||
|
client := testClient(t, addr, token)
|
||||||
|
_, err := client.Logical().Write("secret/foo", map[string]interface{}{
|
||||||
|
"key": "value",
|
||||||
|
"ttl": "1m",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// read the secret to get its lease ID
|
||||||
|
secret, err := client.Logical().Read("secret/foo")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test one renew path
|
||||||
|
r := client.NewRequest("PUT", "/v1/sys/renew")
|
||||||
|
body := map[string]interface{}{
|
||||||
|
"lease_id": secret.LeaseID,
|
||||||
|
}
|
||||||
|
if err := r.SetJSONBody(body); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
resp, err := client.RawRequest(r)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
secret, err = api.ParseSecret(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if secret.LeaseDuration != 60 {
|
||||||
|
t.Fatal("bad lease duration")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test the other
|
||||||
|
r = client.NewRequest("PUT", "/v1/sys/renew/"+secret.LeaseID)
|
||||||
|
resp, err = client.RawRequest(r)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
secret, err = api.ParseSecret(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if secret.LeaseDuration != 60 {
|
||||||
|
t.Fatalf("bad lease duration; secret is %#v\n", *secret)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ func Handler(core *vault.Core) http.Handler {
|
||||||
mux.Handle("/v1/sys/step-down", handleSysStepDown(core))
|
mux.Handle("/v1/sys/step-down", handleSysStepDown(core))
|
||||||
mux.Handle("/v1/sys/unseal", handleSysUnseal(core))
|
mux.Handle("/v1/sys/unseal", handleSysUnseal(core))
|
||||||
mux.Handle("/v1/sys/renew", handleLogical(core, false, nil))
|
mux.Handle("/v1/sys/renew", handleLogical(core, false, nil))
|
||||||
|
mux.Handle("/v1/sys/renew/", handleLogical(core, false, nil))
|
||||||
mux.Handle("/v1/sys/leader", handleSysLeader(core))
|
mux.Handle("/v1/sys/leader", handleSysLeader(core))
|
||||||
mux.Handle("/v1/sys/health", handleSysHealth(core))
|
mux.Handle("/v1/sys/health", handleSysHealth(core))
|
||||||
mux.Handle("/v1/sys/generate-root/attempt", handleSysGenerateRootAttempt(core))
|
mux.Handle("/v1/sys/generate-root/attempt", handleSysGenerateRootAttempt(core))
|
||||||
|
|
Loading…
Reference in a new issue