mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-11-13 09:00:38 -05:00
cli: fix iam rollback (#1148)
* AB#2897 rename DestroyCluster * #AB2897 error if terraform dir exists * AB#2897 reword DestroyResources
This commit is contained in:
parent
94245416ca
commit
7410cf8038
11 changed files with 92 additions and 32 deletions
|
|
@ -19,7 +19,7 @@ type terraformClient interface {
|
|||
PrepareWorkspace(path string, input terraform.Variables) error
|
||||
CreateCluster(ctx context.Context) (terraform.CreateOutput, error)
|
||||
CreateIAMConfig(ctx context.Context, provider cloudprovider.Provider) (terraform.IAMOutput, error)
|
||||
DestroyCluster(ctx context.Context) error
|
||||
Destroy(ctx context.Context) error
|
||||
CleanUpWorkspace() error
|
||||
RemoveInstaller()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ type stubTerraformClient struct {
|
|||
uid string
|
||||
cleanUpWorkspaceCalled bool
|
||||
removeInstallerCalled bool
|
||||
destroyClusterCalled bool
|
||||
destroyCalled bool
|
||||
createClusterErr error
|
||||
destroyClusterErr error
|
||||
destroyErr error
|
||||
prepareWorkspaceErr error
|
||||
cleanUpWorkspaceErr error
|
||||
iamOutputErr error
|
||||
|
|
@ -56,9 +56,9 @@ func (c *stubTerraformClient) PrepareWorkspace(path string, input terraform.Vari
|
|||
return c.prepareWorkspaceErr
|
||||
}
|
||||
|
||||
func (c *stubTerraformClient) DestroyCluster(ctx context.Context) error {
|
||||
c.destroyClusterCalled = true
|
||||
return c.destroyClusterErr
|
||||
func (c *stubTerraformClient) Destroy(ctx context.Context) error {
|
||||
c.destroyCalled = true
|
||||
return c.destroyErr
|
||||
}
|
||||
|
||||
func (c *stubTerraformClient) CleanUpWorkspace() error {
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ func TestCreator(t *testing.T) {
|
|||
if tc.wantRollback {
|
||||
cl := tc.tfClient.(*stubTerraformClient)
|
||||
if tc.wantTerraformRollback {
|
||||
assert.True(cl.destroyClusterCalled)
|
||||
assert.True(cl.destroyCalled)
|
||||
}
|
||||
assert.True(cl.cleanUpWorkspaceCalled)
|
||||
if tc.provider == cloudprovider.QEMU {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ type rollbackerTerraform struct {
|
|||
|
||||
func (r *rollbackerTerraform) rollback(ctx context.Context) error {
|
||||
var err error
|
||||
err = multierr.Append(err, r.client.DestroyCluster(ctx))
|
||||
err = multierr.Append(err, r.client.Destroy(ctx))
|
||||
if err == nil {
|
||||
err = multierr.Append(err, r.client.CleanUpWorkspace())
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ type rollbackerQEMU struct {
|
|||
func (r *rollbackerQEMU) rollback(ctx context.Context) error {
|
||||
var err error
|
||||
if r.createdWorkspace {
|
||||
err = multierr.Append(err, r.client.DestroyCluster(ctx))
|
||||
err = multierr.Append(err, r.client.Destroy(ctx))
|
||||
}
|
||||
err = multierr.Append(err, r.libvirt.Stop(ctx))
|
||||
if err == nil {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ func TestRollbackTerraform(t *testing.T) {
|
|||
tfClient: &stubTerraformClient{},
|
||||
},
|
||||
"destroy cluster error": {
|
||||
tfClient: &stubTerraformClient{destroyClusterErr: someErr},
|
||||
tfClient: &stubTerraformClient{destroyErr: someErr},
|
||||
wantErr: true,
|
||||
},
|
||||
"clean up workspace error": {
|
||||
|
|
@ -51,7 +51,7 @@ func TestRollbackTerraform(t *testing.T) {
|
|||
return
|
||||
}
|
||||
assert.NoError(err)
|
||||
assert.True(tc.tfClient.destroyClusterCalled)
|
||||
assert.True(tc.tfClient.destroyCalled)
|
||||
assert.True(tc.tfClient.cleanUpWorkspaceCalled)
|
||||
})
|
||||
}
|
||||
|
|
@ -78,7 +78,7 @@ func TestRollbackQEMU(t *testing.T) {
|
|||
},
|
||||
"destroy cluster error": {
|
||||
libvirt: &stubLibvirtRunner{stopErr: someErr},
|
||||
tfClient: &stubTerraformClient{destroyClusterErr: someErr},
|
||||
tfClient: &stubTerraformClient{destroyErr: someErr},
|
||||
wantErr: true,
|
||||
},
|
||||
"clean up workspace error": {
|
||||
|
|
@ -109,9 +109,9 @@ func TestRollbackQEMU(t *testing.T) {
|
|||
assert.NoError(err)
|
||||
assert.True(tc.libvirt.stopCalled)
|
||||
if tc.createdWorkspace {
|
||||
assert.True(tc.tfClient.destroyClusterCalled)
|
||||
assert.True(tc.tfClient.destroyCalled)
|
||||
} else {
|
||||
assert.False(tc.tfClient.destroyClusterCalled)
|
||||
assert.False(tc.tfClient.destroyCalled)
|
||||
}
|
||||
assert.True(tc.tfClient.cleanUpWorkspaceCalled)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ func (t *Terminator) Terminate(ctx context.Context) (retErr error) {
|
|||
}
|
||||
|
||||
func (t *Terminator) terminateTerraform(ctx context.Context, cl terraformClient) error {
|
||||
if err := cl.DestroyCluster(ctx); err != nil {
|
||||
if err := cl.Destroy(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
return cl.CleanUpWorkspace()
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ func TestTerminator(t *testing.T) {
|
|||
wantErr: true,
|
||||
},
|
||||
"destroy cluster error": {
|
||||
tfClient: &stubTerraformClient{destroyClusterErr: someErr},
|
||||
tfClient: &stubTerraformClient{destroyErr: someErr},
|
||||
libvirt: &stubLibvirtRunner{},
|
||||
wantErr: true,
|
||||
},
|
||||
|
|
@ -70,7 +70,7 @@ func TestTerminator(t *testing.T) {
|
|||
}
|
||||
assert.NoError(err)
|
||||
cl := tc.tfClient.(*stubTerraformClient)
|
||||
assert.True(cl.destroyClusterCalled)
|
||||
assert.True(cl.destroyCalled)
|
||||
assert.True(cl.removeInstallerCalled)
|
||||
assert.True(tc.libvirt.stopCalled)
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue