Remove state file

This commit is contained in:
katexochen 2022-10-11 12:24:33 +02:00 committed by Paul Meyer
parent 0d1fd8fb2a
commit 1556e239ca
28 changed files with 381 additions and 319 deletions

View file

@ -12,7 +12,6 @@ import (
"github.com/edgelesssys/constellation/v2/internal/cloud/cloudprovider"
"github.com/edgelesssys/constellation/v2/internal/file"
"github.com/edgelesssys/constellation/v2/internal/state"
"github.com/hashicorp/go-version"
install "github.com/hashicorp/hc-install"
"github.com/hashicorp/hc-install/fs"
@ -36,7 +35,6 @@ type Client struct {
provider cloudprovider.Provider
file file.Handler
state state.ConstellationState
remove func()
}
@ -58,43 +56,38 @@ func New(ctx context.Context, provider cloudprovider.Provider) (*Client, error)
}
// CreateCluster creates a Constellation cluster using Terraform.
func (c *Client) CreateCluster(ctx context.Context, name string, vars Variables) error {
func (c *Client) CreateCluster(ctx context.Context, name string, vars Variables) (string, error) {
if err := prepareWorkspace(c.file, c.provider); err != nil {
return err
return "", err
}
if err := c.tf.Init(ctx); err != nil {
return err
return "", err
}
if err := c.file.Write(terraformVarsFile, []byte(vars.String())); err != nil {
return err
return "", err
}
if err := c.tf.Apply(ctx); err != nil {
return err
return "", err
}
tfState, err := c.tf.Show(ctx)
if err != nil {
return err
return "", err
}
ipOutput, ok := tfState.Values.Outputs["ip"]
if !ok {
return errors.New("no IP output found")
return "", errors.New("no IP output found")
}
ip, ok := ipOutput.Value.(string)
if !ok {
return errors.New("invalid type in IP output: not a string")
}
c.state = state.ConstellationState{
Name: name,
CloudProvider: c.provider.String(),
LoadBalancerIP: ip,
return "", errors.New("invalid type in IP output: not a string")
}
return nil
return ip, nil
}
// DestroyInstances destroys a Constellation cluster using Terraform.
@ -132,11 +125,6 @@ func (c *Client) CleanUpWorkspace() error {
return nil
}
// GetState returns the state of the cluster.
func (c *Client) GetState() state.ConstellationState {
return c.state
}
// GetExecutable returns a Terraform executable either from the local filesystem,
// or downloads the latest version fulfilling the version constraint.
func GetExecutable(ctx context.Context, workingDir string) (terraform *tfexec.Terraform, remove func(), err error) {

View file

@ -127,13 +127,14 @@ func TestCreateCluster(t *testing.T) {
file: file.NewHandler(tc.fs),
}
err := c.CreateCluster(context.Background(), "test", tc.vars)
ip, err := c.CreateCluster(context.Background(), "test", tc.vars)
if tc.wantErr {
assert.Error(err)
return
}
assert.NoError(err)
assert.Equal("192.0.2.100", ip)
})
}
}