remove test for ent-only behavior
This commit is contained in:
parent
c14a75bfab
commit
6b1cb61888
|
@ -622,250 +622,6 @@ func TestDeploymentEndpoint_Promote_ACL(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDeploymentEndpoint_Cancel(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
s1, cleanupS1 := TestServer(t, func(c *Config) {
|
|
||||||
c.NumSchedulers = 0 // Prevent automatic dequeue
|
|
||||||
})
|
|
||||||
defer cleanupS1()
|
|
||||||
codec := rpcClient(t, s1)
|
|
||||||
testutil.WaitForLeader(t, s1.RPC)
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
// Create the deployment
|
|
||||||
j := mock.Job()
|
|
||||||
d := mock.Deployment()
|
|
||||||
d.JobID = j.ID
|
|
||||||
state := s1.fsm.State()
|
|
||||||
|
|
||||||
assert.Nil(state.UpsertJob(999, j), "UpsertJob")
|
|
||||||
assert.Nil(state.UpsertDeployment(1000, d), "UpsertDeployment")
|
|
||||||
|
|
||||||
// Mark the deployment as failed
|
|
||||||
req := &structs.DeploymentCancelRequest{
|
|
||||||
DeploymentID: d.ID,
|
|
||||||
WriteRequest: structs.WriteRequest{Region: "global"},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fetch the response
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
assert.Nil(msgpackrpc.CallWithCodec(codec, "Deployment.Cancel", req, &resp), "RPC")
|
|
||||||
assert.NotEqual(resp.Index, uint64(0), "bad response index")
|
|
||||||
|
|
||||||
// Lookup the deployment
|
|
||||||
ws := memdb.NewWatchSet()
|
|
||||||
dout, err := state.DeploymentByID(ws, d.ID)
|
|
||||||
assert.NoError(err, "DeploymentByID failed")
|
|
||||||
assert.Equal(structs.DeploymentStatusCancelled, dout.Status, "wrong status")
|
|
||||||
assert.Equal(structs.DeploymentStatusDescriptionNewerJob, dout.StatusDescription, "wrong status description")
|
|
||||||
assert.Equal(dout.ModifyIndex, resp.DeploymentModifyIndex, "wrong modify index")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentEndpoint_Cancel_ACL(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
s1, _, cleanupS1 := TestACLServer(t, func(c *Config) {
|
|
||||||
c.NumSchedulers = 0 // Prevent automatic dequeue
|
|
||||||
})
|
|
||||||
defer cleanupS1()
|
|
||||||
codec := rpcClient(t, s1)
|
|
||||||
testutil.WaitForLeader(t, s1.RPC)
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
// Create the deployment
|
|
||||||
j := mock.Job()
|
|
||||||
d := mock.Deployment()
|
|
||||||
d.JobID = j.ID
|
|
||||||
state := s1.fsm.State()
|
|
||||||
|
|
||||||
assert.Nil(state.UpsertJob(999, j), "UpsertJob")
|
|
||||||
assert.Nil(state.UpsertDeployment(1000, d), "UpsertDeployment")
|
|
||||||
|
|
||||||
// Create the namespace policy and tokens
|
|
||||||
validToken := mock.CreatePolicyAndToken(t, state, 1001, "test-valid",
|
|
||||||
mock.NamespacePolicy(structs.DefaultNamespace, "", []string{acl.NamespaceCapabilitySubmitJob}))
|
|
||||||
invalidToken := mock.CreatePolicyAndToken(t, state, 1003, "test-invalid",
|
|
||||||
mock.NamespacePolicy(structs.DefaultNamespace, "", []string{acl.NamespaceCapabilityReadJob}))
|
|
||||||
|
|
||||||
// Mark the deployment as cancelled
|
|
||||||
req := &structs.DeploymentCancelRequest{
|
|
||||||
DeploymentID: d.ID,
|
|
||||||
WriteRequest: structs.WriteRequest{Region: "global"},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try with no token and expect permission denied
|
|
||||||
{
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
err := msgpackrpc.CallWithCodec(codec, "Deployment.Cancel", req, &resp)
|
|
||||||
assert.EqualError(err, structs.ErrPermissionDenied.Error())
|
|
||||||
}
|
|
||||||
// Try with an invalid token
|
|
||||||
{
|
|
||||||
req.AuthToken = invalidToken.SecretID
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
err := msgpackrpc.CallWithCodec(codec, "Deployment.Cancel", req, &resp)
|
|
||||||
assert.EqualError(err, structs.ErrPermissionDenied.Error())
|
|
||||||
}
|
|
||||||
// Try with a valid token
|
|
||||||
{
|
|
||||||
req.AuthToken = validToken.SecretID
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
assert.NoError(msgpackrpc.CallWithCodec(codec, "Deployment.Cancel", req, &resp), "RPC")
|
|
||||||
assert.NotEqual(resp.Index, uint64(0), "bad response index")
|
|
||||||
|
|
||||||
// Lookup the deployment
|
|
||||||
ws := memdb.NewWatchSet()
|
|
||||||
dout, err := state.DeploymentByID(ws, d.ID)
|
|
||||||
assert.NoError(err, "DeploymentByID failed")
|
|
||||||
assert.Equal(structs.DeploymentStatusCancelled, dout.Status, "wrong status")
|
|
||||||
assert.Equal(structs.DeploymentStatusDescriptionNewerJob, dout.StatusDescription, "wrong status description")
|
|
||||||
assert.Equal(dout.ModifyIndex, resp.DeploymentModifyIndex, "wrong modify index")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentEndpoint_Run(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
s1, cleanupS1 := TestServer(t, func(c *Config) {
|
|
||||||
c.NumSchedulers = 0 // Prevent automatic dequeue
|
|
||||||
})
|
|
||||||
defer cleanupS1()
|
|
||||||
codec := rpcClient(t, s1)
|
|
||||||
testutil.WaitForLeader(t, s1.RPC)
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
// Create the deployment
|
|
||||||
j := mock.Job()
|
|
||||||
d := mock.Deployment()
|
|
||||||
d.JobID = j.ID
|
|
||||||
state := s1.fsm.State()
|
|
||||||
|
|
||||||
assert.Nil(state.UpsertJob(999, j), "UpsertJob")
|
|
||||||
assert.Nil(state.UpsertDeployment(1000, d), "UpsertDeployment")
|
|
||||||
|
|
||||||
// Mark the deployment as failed
|
|
||||||
req := &structs.DeploymentRunRequest{
|
|
||||||
DeploymentID: d.ID,
|
|
||||||
WriteRequest: structs.WriteRequest{Region: "global"},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fetch the response
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
assert.Nil(msgpackrpc.CallWithCodec(codec, "Deployment.Run", req, &resp), "RPC")
|
|
||||||
assert.NotEqual(resp.Index, uint64(0), "bad response index")
|
|
||||||
|
|
||||||
// Lookup the deployment
|
|
||||||
ws := memdb.NewWatchSet()
|
|
||||||
dout, err := state.DeploymentByID(ws, d.ID)
|
|
||||||
assert.Nil(err, "DeploymentByID failed")
|
|
||||||
assert.Equal(structs.DeploymentStatusRunning, dout.Status, "wrong status")
|
|
||||||
assert.Equal(structs.DeploymentStatusDescriptionRunning, dout.StatusDescription, "wrong status description")
|
|
||||||
assert.Equal(dout.ModifyIndex, resp.DeploymentModifyIndex, "wrong modify index")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentEndpoint_Unblock(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
s1, cleanupS1 := TestServer(t, func(c *Config) {
|
|
||||||
c.NumSchedulers = 0 // Prevent automatic dequeue
|
|
||||||
})
|
|
||||||
defer cleanupS1()
|
|
||||||
codec := rpcClient(t, s1)
|
|
||||||
testutil.WaitForLeader(t, s1.RPC)
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
// Create the deployment
|
|
||||||
j := mock.Job()
|
|
||||||
d := mock.Deployment()
|
|
||||||
d.JobID = j.ID
|
|
||||||
state := s1.fsm.State()
|
|
||||||
|
|
||||||
assert.Nil(state.UpsertJob(999, j), "UpsertJob")
|
|
||||||
assert.Nil(state.UpsertDeployment(1000, d), "UpsertDeployment")
|
|
||||||
|
|
||||||
// Mark the deployment as failed
|
|
||||||
req := &structs.DeploymentUnblockRequest{
|
|
||||||
DeploymentID: d.ID,
|
|
||||||
WriteRequest: structs.WriteRequest{Region: "global"},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fetch the response
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
assert.Nil(msgpackrpc.CallWithCodec(codec, "Deployment.Unblock", req, &resp), "RPC")
|
|
||||||
assert.NotEqual(resp.Index, uint64(0), "bad response index")
|
|
||||||
|
|
||||||
// Lookup the deployment
|
|
||||||
ws := memdb.NewWatchSet()
|
|
||||||
dout, err := state.DeploymentByID(ws, d.ID)
|
|
||||||
assert.Nil(err, "DeploymentByID failed")
|
|
||||||
assert.Equal(structs.DeploymentStatusSuccessful, dout.Status, "wrong status")
|
|
||||||
assert.Equal(structs.DeploymentStatusDescriptionSuccessful, dout.StatusDescription, "wrong status description")
|
|
||||||
assert.Equal(dout.ModifyIndex, resp.DeploymentModifyIndex, "wrong modify index")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentEndpoint_Unblock_ACL(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
s1, _, cleanupS1 := TestACLServer(t, func(c *Config) {
|
|
||||||
c.NumSchedulers = 0 // Prevent automatic dequeue
|
|
||||||
})
|
|
||||||
defer cleanupS1()
|
|
||||||
codec := rpcClient(t, s1)
|
|
||||||
testutil.WaitForLeader(t, s1.RPC)
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
// Create the deployment
|
|
||||||
j := mock.Job()
|
|
||||||
d := mock.Deployment()
|
|
||||||
d.JobID = j.ID
|
|
||||||
state := s1.fsm.State()
|
|
||||||
|
|
||||||
assert.Nil(state.UpsertJob(999, j), "UpsertJob")
|
|
||||||
assert.Nil(state.UpsertDeployment(1000, d), "UpsertDeployment")
|
|
||||||
|
|
||||||
// Create the namespace policy and tokens
|
|
||||||
validToken := mock.CreatePolicyAndToken(t, state, 1001, "test-valid",
|
|
||||||
mock.NamespacePolicy(structs.DefaultNamespace, "", []string{acl.NamespaceCapabilitySubmitJob}))
|
|
||||||
invalidToken := mock.CreatePolicyAndToken(t, state, 1003, "test-invalid",
|
|
||||||
mock.NamespacePolicy(structs.DefaultNamespace, "", []string{acl.NamespaceCapabilityReadJob}))
|
|
||||||
|
|
||||||
// Mark the deployment as unblocked
|
|
||||||
req := &structs.DeploymentUnblockRequest{
|
|
||||||
DeploymentID: d.ID,
|
|
||||||
WriteRequest: structs.WriteRequest{Region: "global"},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try with no token and expect permission denied
|
|
||||||
{
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
err := msgpackrpc.CallWithCodec(codec, "Deployment.Unblock", req, &resp)
|
|
||||||
assert.EqualError(err, structs.ErrPermissionDenied.Error())
|
|
||||||
}
|
|
||||||
// Try with an invalid token
|
|
||||||
{
|
|
||||||
req.AuthToken = invalidToken.SecretID
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
err := msgpackrpc.CallWithCodec(codec, "Deployment.Unblock", req, &resp)
|
|
||||||
assert.EqualError(err, structs.ErrPermissionDenied.Error())
|
|
||||||
}
|
|
||||||
// Try with a valid token
|
|
||||||
{
|
|
||||||
req.AuthToken = validToken.SecretID
|
|
||||||
var resp structs.DeploymentUpdateResponse
|
|
||||||
assert.NoError(msgpackrpc.CallWithCodec(codec, "Deployment.Unblock", req, &resp), "RPC")
|
|
||||||
assert.NotEqual(resp.Index, uint64(0), "bad response index")
|
|
||||||
|
|
||||||
// Lookup the deployment
|
|
||||||
ws := memdb.NewWatchSet()
|
|
||||||
dout, err := state.DeploymentByID(ws, d.ID)
|
|
||||||
assert.NoError(err, "DeploymentByID failed")
|
|
||||||
assert.Equal(structs.DeploymentStatusSuccessful, dout.Status, "wrong status")
|
|
||||||
assert.Equal(structs.DeploymentStatusDescriptionSuccessful, dout.StatusDescription, "wrong status description")
|
|
||||||
assert.Equal(dout.ModifyIndex, resp.DeploymentModifyIndex, "wrong modify index")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentEndpoint_SetAllocHealth(t *testing.T) {
|
func TestDeploymentEndpoint_SetAllocHealth(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue