diff --git a/.gitignore b/.gitignore index 78aae934..ad6a40bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ terraform-provider-codefresh dist/ .vscode/ +**/__debug* **/.terraform **/terraform.tfstate diff --git a/codefresh/env.go b/codefresh/env.go index 3a53357b..02c6c969 100644 --- a/codefresh/env.go +++ b/codefresh/env.go @@ -8,5 +8,5 @@ const ( ENV_CODEFRESH_API_KEY = "CODEFRESH_API_KEY" DEFAULT_CODEFRESH_API_URL = "https://g.codefresh.io/api" DEFAULT_CODEFRESH_API2_URL = "https://g.codefresh.io/2.0/api/graphql" - DEFAULT_CODEFRESH_PLUGIN_ADDR = "registry.terraform.io/-/codefresh" + DEFAULT_CODEFRESH_PLUGIN_ADDR = "registry.terraform.io/codefresh-io/codefresh" ) diff --git a/codefresh/internal/schemautil/validation.go b/codefresh/internal/schemautil/validation.go index 263ae1fa..3cc188bd 100644 --- a/codefresh/internal/schemautil/validation.go +++ b/codefresh/internal/schemautil/validation.go @@ -89,4 +89,4 @@ func (o *ValidationOptions) setSummary(summary string) *ValidationOptions { func (o *ValidationOptions) setDetailFormat(detailFormat string) *ValidationOptions { o.detailFormat = detailFormat return o -} \ No newline at end of file +} diff --git a/codefresh/resource_api_key.go b/codefresh/resource_api_key.go index 02fa573a..8b8935d7 100644 --- a/codefresh/resource_api_key.go +++ b/codefresh/resource_api_key.go @@ -3,6 +3,7 @@ package codefresh import ( "errors" "fmt" + "strings" "github.com/codefresh-io/terraform-provider-codefresh/codefresh/cfclient" "github.com/codefresh-io/terraform-provider-codefresh/codefresh/internal/datautil" @@ -93,25 +94,8 @@ func resourceApiKeyCreate(d *schema.ResourceData, meta interface{}) error { return err } - client.Token = resp - - apiKeys, err := client.GetApiKeysList() - if err != nil { - return nil - } - - var keyID string - for _, key := range apiKeys { - if key.Name == apiKey.Name { - keyID = key.ID - } - } - - if keyID == "" { - return errors.New("[ERROR] Key ID is not found.") - } - - d.SetId(keyID) + // Codefresh tokens are in the form xxxxxxxxxxxx.xxxxxxxxx the first half serves as the id + d.SetId(strings.Split(resp, ".")[0]) return nil } @@ -132,8 +116,6 @@ func resourceApiKeyRead(d *schema.ResourceData, meta interface{}) error { return errors.New("[ERROR] Can't read API Key. Token is empty.") } - client.Token = token - apiKey, err := client.GetAPIKey(keyID) if err != nil { return err @@ -157,8 +139,6 @@ func resourceApiKeyUpdate(d *schema.ResourceData, meta interface{}) error { return errors.New("[ERROR] Can't read API Key. Token is empty.") } - client.Token = token - err := client.UpdateAPIKey(&apiKey) if err != nil { return err diff --git a/codefresh/resource_pipeline_test.go b/codefresh/resource_pipeline_test.go index 4bfcfdf9..07dff4ad 100644 --- a/codefresh/resource_pipeline_test.go +++ b/codefresh/resource_pipeline_test.go @@ -532,8 +532,8 @@ func TestAccCodefreshPipeline_CronTriggersInvalid(t *testing.T) { var pipeline cfclient.Pipeline resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, - Providers: testAccProviders, + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, Steps: []resource.TestStep{ { Config: testAccCodefreshPipelineBasicConfigCronTriggers( diff --git a/docs/resources/api_key.md b/docs/resources/api_key.md index 057a3853..48fab687 100644 --- a/docs/resources/api_key.md +++ b/docs/resources/api_key.md @@ -9,8 +9,8 @@ description: |- Manages an API Key tied to an Account and a User. -terraform-provider-codefresh itself uses an API key, passed as provider's attribute, but it's possible to use that API Key to generate a new one. - +terraform-provider-codefresh itself uses an API key, passed as provider's attribute, but it's possible to use that API Key to generate a new one. +This resource requires Codefresh system admin permissions, hence is relevant for on-prem deployments of Codefresh only. ## Example usage diff --git a/main.go b/main.go index ac8ab335..f1e039d2 100644 --- a/main.go +++ b/main.go @@ -17,6 +17,7 @@ func main() { providerAddr = codefresh.DEFAULT_CODEFRESH_PLUGIN_ADDR } plugin.Serve(&plugin.ServeOpts{ + ProviderAddr: providerAddr, ProviderFunc: codefresh.Provider, Debug: debugMode, }) diff --git a/templates/resources/api_key.md.tmpl b/templates/resources/api_key.md.tmpl index 3ebc39c4..8c618e54 100644 --- a/templates/resources/api_key.md.tmpl +++ b/templates/resources/api_key.md.tmpl @@ -9,8 +9,8 @@ description: |- {{ .Description | trimspace }} -{{ .ProviderName }} itself uses an API key, passed as provider's attribute, but it's possible to use that API Key to generate a new one. - +{{ .ProviderName }} itself uses an API key, passed as provider's attribute, but it's possible to use that API Key to generate a new one. +This resource requires Codefresh system admin permissions, hence is relevant for on-prem deployments of Codefresh only. ## Example usage