From 0afef63dcaa3eb4fe43fd8e8833b94c4d5fece6b Mon Sep 17 00:00:00 2001 From: Michael Li Date: Tue, 4 Oct 2022 18:12:32 -0400 Subject: [PATCH] refact(e2e): Use envconfig's required property --- testing/internal/e2e/boundary/boundary.go | 29 +--------- .../e2e/credential/vault/vault_test.go | 29 +--------- .../e2e/host/aws/dynamichostcatalog_test.go | 55 +++---------------- .../e2e/host/static/statichost_test.go | 29 +--------- testing/internal/e2e/vault/vault.go | 21 +------ 5 files changed, 20 insertions(+), 143 deletions(-) diff --git a/testing/internal/e2e/boundary/boundary.go b/testing/internal/e2e/boundary/boundary.go index b93aaddf88..f48b2d1d52 100644 --- a/testing/internal/e2e/boundary/boundary.go +++ b/testing/internal/e2e/boundary/boundary.go @@ -3,7 +3,6 @@ package boundary import ( "context" - "errors" "fmt" "testing" @@ -15,27 +14,10 @@ import ( ) type config struct { - Address string `envconfig:"BOUNDARY_ADDR"` // e.g. http://127.0.0.1:9200 - AuthMethodId string `envconfig:"E2E_PASSWORD_AUTH_METHOD_ID"` // e.g. ampw_1234567890 + Address string `envconfig:"BOUNDARY_ADDR" required:"true"` // e.g. http://127.0.0.1:9200 + AuthMethodId string `envconfig:"E2E_PASSWORD_AUTH_METHOD_ID" required:"true"` // e.g. ampw_1234567890 AdminLoginName string `envconfig:"E2E_PASSWORD_ADMIN_LOGIN_NAME" default:"admin"` - AdminLoginPassword string `envconfig:"E2E_PASSWORD_ADMIN_PASSWORD"` -} - -func (c *config) validate() error { - if c.Address == "" { - return errors.New("Address is empty. Set environment variable: BOUNDARY_ADDR") - } - if c.AuthMethodId == "" { - return errors.New("AuthMethodId is empty. Set environment variable: E2E_PASSWORD_AUTH_METHOD_ID") - } - if c.AdminLoginName == "" { - return errors.New("AdminLoginName is empty. Set environment variable: E2E_PASSWORD_ADMIN_LOGIN_NAME") - } - if c.AdminLoginPassword == "" { - return errors.New("AdminLoginPassword is empty. Set environment variable: E2E_PASSWORD_ADMIN_PASSWORD") - } - - return nil + AdminLoginPassword string `envconfig:"E2E_PASSWORD_ADMIN_PASSWORD" required:"true"` } func loadConfig() (*config, error) { @@ -45,11 +27,6 @@ func loadConfig() (*config, error) { return nil, err } - err = c.validate() - if err != nil { - return nil, err - } - return &c, err } diff --git a/testing/internal/e2e/credential/vault/vault_test.go b/testing/internal/e2e/credential/vault/vault_test.go index 6bfa1e9325..498a9f3b66 100644 --- a/testing/internal/e2e/credential/vault/vault_test.go +++ b/testing/internal/e2e/credential/vault/vault_test.go @@ -3,7 +3,6 @@ package vault_test import ( "context" "encoding/json" - "errors" "fmt" "os" "strconv" @@ -25,30 +24,13 @@ import ( ) type config struct { - TargetIp string `envconfig:"E2E_TARGET_IP"` // e.g. 192.168.0.1 - TargetSshUser string `envconfig:"E2E_SSH_USER"` // e.g. ubuntu - TargetSshKeyPath string `envconfig:"E2E_SSH_KEY_PATH"` // e.g. /Users/username/key.pem + TargetIp string `envconfig:"E2E_TARGET_IP" required:"true"` // e.g. 192.168.0.1 + TargetSshUser string `envconfig:"E2E_SSH_USER" required:"true"` // e.g. ubuntu + TargetSshKeyPath string `envconfig:"E2E_SSH_KEY_PATH" required:"true"` // e.g. /Users/username/key.pem TargetPort string `envconfig:"E2E_SSH_PORT" default:"22"` VaultSecretPath string `envconfig:"E2E_VAULT_SECRET_PATH" default:"e2e_secrets"` } -func (c *config) validate() error { - if c.TargetIp == "" { - return errors.New("TargetIp is empty. Set environment variable: E2E_TARGET_IP") - } - if c.TargetSshUser == "" { - return errors.New("TargetSshUser is empty. Set environment variable: E2E_SSH_USER") - } - if c.TargetSshKeyPath == "" { - return errors.New("TargetSshKeyPath is empty. Set environment variable: E2E_SSH_KEY_PATH") - } - if c.TargetPort == "" { - return errors.New("TargetPort is empty. Set environment variable: E2E_SSH_PORT") - } - - return nil -} - func loadConfig() (*config, error) { var c config err := envconfig.Process("", &c) @@ -56,11 +38,6 @@ func loadConfig() (*config, error) { return nil, err } - err = c.validate() - if err != nil { - return nil, err - } - return &c, err } diff --git a/testing/internal/e2e/host/aws/dynamichostcatalog_test.go b/testing/internal/e2e/host/aws/dynamichostcatalog_test.go index 7009ff177d..1c93cdd0c4 100644 --- a/testing/internal/e2e/host/aws/dynamichostcatalog_test.go +++ b/testing/internal/e2e/host/aws/dynamichostcatalog_test.go @@ -23,50 +23,18 @@ import ( ) type config struct { - AwsAccessKeyId string `envconfig:"E2E_AWS_ACCESS_KEY_ID"` - AwsSecretAccessKey string `envconfig:"E2E_AWS_SECRET_ACCESS_KEY"` - AwsHostSetFilter1 string `envconfig:"E2E_AWS_HOST_SET_FILTER1"` - AwsHostSetCount1 string `envconfig:"E2E_AWS_HOST_SET_COUNT1"` - AwsHostSetIps1 string `envconfig:"E2E_AWS_HOST_SET_IPS1"` - AwsHostSetFilter2 string `envconfig:"E2E_AWS_HOST_SET_FILTER2"` - AwsHostSetCount2 string `envconfig:"E2E_AWS_HOST_SET_COUNT2"` - TargetSshKeyPath string `envconfig:"E2E_SSH_KEY_PATH"` // e.g. /Users/username/key.pem - TargetSshUser string `envconfig:"E2E_SSH_USER"` // e.g. ubuntu + AwsAccessKeyId string `envconfig:"E2E_AWS_ACCESS_KEY_ID" required:"true"` + AwsSecretAccessKey string `envconfig:"E2E_AWS_SECRET_ACCESS_KEY" required:"true"` + AwsHostSetFilter1 string `envconfig:"E2E_AWS_HOST_SET_FILTER1" required:"true"` + AwsHostSetCount1 string `envconfig:"E2E_AWS_HOST_SET_COUNT1" required:"true"` + AwsHostSetIps1 string `envconfig:"E2E_AWS_HOST_SET_IPS1" required:"true"` + AwsHostSetFilter2 string `envconfig:"E2E_AWS_HOST_SET_FILTER2" required:"true"` + AwsHostSetCount2 string `envconfig:"E2E_AWS_HOST_SET_COUNT2" required:"true"` + TargetSshKeyPath string `envconfig:"E2E_SSH_KEY_PATH" required:"true"` // e.g. /Users/username/key.pem + TargetSshUser string `envconfig:"E2E_SSH_USER" required:"true"` // e.g. ubuntu TargetPort string `envconfig:"E2E_SSH_PORT" default:"22"` } -func (c *config) validate() error { - if c.AwsAccessKeyId == "" { - return errors.New("AwsAccessKeyId is empty. Set environment variable: E2E_AWS_ACCESS_KEY_ID") - } - if c.AwsSecretAccessKey == "" { - return errors.New("AwsSecretAccessKey is empty. Set environment variable: E2E_AWS_SECRET_ACCESS_KEY") - } - if c.AwsHostSetFilter1 == "" { - return errors.New("AwsHostSetFilter1 is empty. Set environment variable: E2E_AWS_HOST_SET_FILTER1") - } - if c.AwsHostSetCount1 == "" { - return errors.New("AwsHostSetCount1 is empty. Set environment variable: E2E_AWS_HOST_SET_COUNT1") - } - if c.AwsHostSetFilter2 == "" { - return errors.New("AwsHostSetFilter2 is empty. Set environment variable: E2E_AWS_HOST_SET_FILTER2") - } - if c.AwsHostSetCount2 == "" { - return errors.New("AwsHostSetCount2 is empty. Set environment variable: E2E_AWS_HOST_SET_COUNT2") - } - if c.TargetSshKeyPath == "" { - return errors.New("TargetSshKeyPath is empty. Set environment variable: E2E_SSH_KEY_PATH") - } - if c.TargetSshUser == "" { - return errors.New("TargetSshUser is empty. Set environment variable: E2E_SSH_USER") - } - if c.TargetPort == "" { - return errors.New("TargetPort is empty. Set environment variable: E2E_SSH_PORT") - } - - return nil -} - func loadConfig() (*config, error) { var c config err := envconfig.Process("", &c) @@ -74,11 +42,6 @@ func loadConfig() (*config, error) { return nil, err } - err = c.validate() - if err != nil { - return nil, err - } - return &c, err } diff --git a/testing/internal/e2e/host/static/statichost_test.go b/testing/internal/e2e/host/static/statichost_test.go index 965119f717..e1cc55c376 100644 --- a/testing/internal/e2e/host/static/statichost_test.go +++ b/testing/internal/e2e/host/static/statichost_test.go @@ -3,7 +3,6 @@ package static_test import ( "context" "encoding/json" - "errors" "strconv" "strings" "testing" @@ -19,29 +18,12 @@ import ( ) type config struct { - TargetIp string `envconfig:"E2E_TARGET_IP"` // e.g. 192.168.0.1 - TargetSshKeyPath string `envconfig:"E2E_SSH_KEY_PATH"` // e.g. /Users/username/key.pem - TargetSshUser string `envconfig:"E2E_SSH_USER"` // e.g. ubuntu + TargetIp string `envconfig:"E2E_TARGET_IP" required:"true"` // e.g. 192.168.0.1 + TargetSshKeyPath string `envconfig:"E2E_SSH_KEY_PATH" required:"true"` // e.g. /Users/username/key.pem + TargetSshUser string `envconfig:"E2E_SSH_USER" required:"true"` // e.g. ubuntu TargetPort string `envconfig:"E2E_SSH_PORT" default:"22"` } -func (c *config) validate() error { - if c.TargetIp == "" { - return errors.New("TargetIp is empty. Set environment variable: E2E_TARGET_IP") - } - if c.TargetSshKeyPath == "" { - return errors.New("TargetSshKeyPath is empty. Set environment variable: E2E_SSH_KEY_PATH") - } - if c.TargetSshUser == "" { - return errors.New("TargetSshUser is empty. Set environment variable: E2E_SSH_USER") - } - if c.TargetPort == "" { - return errors.New("TargetPort is empty. Set environment variable: E2E_SSH_PORT") - } - - return nil -} - func loadConfig() (*config, error) { var c config err := envconfig.Process("", &c) @@ -49,11 +31,6 @@ func loadConfig() (*config, error) { return nil, err } - err = c.validate() - if err != nil { - return nil, err - } - return &c, err } diff --git a/testing/internal/e2e/vault/vault.go b/testing/internal/e2e/vault/vault.go index b5fac1a1fc..42f148534f 100644 --- a/testing/internal/e2e/vault/vault.go +++ b/testing/internal/e2e/vault/vault.go @@ -2,7 +2,6 @@ package vault import ( - "errors" "fmt" "os" "path" @@ -15,19 +14,8 @@ import ( ) type config struct { - VaultAddr string `envconfig:"VAULT_ADDR"` // e.g. "http://127.0.0.1:8200" - VaultToken string `envconfig:"VAULT_TOKEN"` -} - -func (c *config) validate() error { - if c.VaultAddr == "" { - return errors.New("VaultAddr is empty. Set environment variable: VAULT_ADDR") - } - if c.VaultToken == "" { - return errors.New("VaultToken is empty. Set environment variable: VAULT_TOKEN") - } - - return nil + VaultAddr string `envconfig:"VAULT_ADDR" required:"true"` // e.g. "http://127.0.0.1:8200" + VaultToken string `envconfig:"VAULT_TOKEN" required:"true"` } func loadConfig() (*config, error) { @@ -37,11 +25,6 @@ func loadConfig() (*config, error) { return nil, err } - err = c.validate() - if err != nil { - return nil, err - } - return &c, err }