diff --git a/CHANGELOG.md b/CHANGELOG.md index ecf16283..a5e42555 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +## 9.2.1 (Sep 29, 2023). Tested on Artifactory 7.68.11 with Terraform CLI v1.5.7 + +IMPROVEMENTS: + +* Update module path to `/v9` PR: [#814](https://github.com/jfrog/terraform-provider-artifactory/pull/814) + +## 9.2.0 (Sep 28, 2023). Tested on Artifactory 7.68.11 with Terraform CLI v1.5.7 + +IMPROVEMENTS: + +* resource/artifactory_backup is migrated to Plugin Framework. PR: [#812](https://github.com/jfrog/terraform-provider-artifactory/pull/812) + +## 9.1.0 (Sep 28, 2023). Tested on Artifactory 7.68.11 with Terraform CLI v1.5.7 + +IMPROVEMENTS: +* data/artifactory_local_conan_repository, data/artifactory_virtual_conan_repository, data/artifactory_federated_conan_repository, resource/artifactory_local_conan_repository, resource/artifactory_virtual_conan_repository, resource/artifactory_federated_conan_repository: add `force_conan_authentication` attribute PR: [#810](https://github.com/jfrog/terraform-provider-artifactory/pull/810) Issue: [#808](https://github.com/jfrog/terraform-provider-artifactory/issues/808) +* resource/artifactory_\*\_repository: update validation for `project_environments` attribute to allow empty list. PR: [#811](https://github.com/jfrog/terraform-provider-artifactory/pull/811) + ## 9.0.0 (Sep 15, 2023). Tested on Artifactory 7.68.7 with Terraform CLI v1.5.7 IMPROVEMENTS: diff --git a/docs/data-sources/local_conan_repository.md b/docs/data-sources/local_conan_repository.md index 9e3f3577..634f1113 100644 --- a/docs/data-sources/local_conan_repository.md +++ b/docs/data-sources/local_conan_repository.md @@ -21,3 +21,5 @@ The following attributes are supported along with the [common list of attributes * `key` - the identity key of the repo. * `description` * `notes` +* `force_conan_authentication` - Force basic authentication credentials in order to use this repository. + Default is `false`. \ No newline at end of file diff --git a/docs/data-sources/virtual_conan_repository.md b/docs/data-sources/virtual_conan_repository.md index 236e2151..23e38000 100644 --- a/docs/data-sources/virtual_conan_repository.md +++ b/docs/data-sources/virtual_conan_repository.md @@ -24,3 +24,5 @@ The following argument is supported: The following attributes are supported, along with the [common list of arguments for the virtual repositories](../resources/virtual.md): * `retrieval_cache_period_seconds` - (Optional, Default: `7200`) This value refers to the number of seconds to cache metadata files before checking for newer versions on aggregated repositories. A value of 0 indicates no caching. +* `force_conan_authentication` - Force basic authentication credentials in order to use this repository. + Default is `false`. \ No newline at end of file diff --git a/docs/resources/local.md b/docs/resources/local.md index 2775aead..7f0afdf5 100644 --- a/docs/resources/local.md +++ b/docs/resources/local.md @@ -25,11 +25,9 @@ contain spaces or special characters. * `description` - (Optional) * `notes` - (Optional) * `project_key` - (Optional) Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When assigning repository to a project, repository key must be prefixed with project key, separated by a dash. We don't recommend using this attribute to assign the repository to the project. Use the `repos` attribute in Project provider to manage the list of repositories. -* `project_environments` - (Optional) Project environment for assigning this repository to. Allow values: `DEV` or `PROD`. +* `project_environments` - (Optional) Project environment for assigning this repository to. Allow values: `DEV`, `PROD`, or one of custom environment. Before Artifactory 7.53.1, up to 2 values (`DEV` and `PROD`) are allowed. From 7.53.1 onward, only one value is allowed. - The attribute should only be used if the repository is already assigned to the existing project. - If not, the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create state - drift during the update. + The attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update. * `includes_pattern` - (Optional) List of artifact patterns to include when evaluating artifact requests in the form of x/y/**/z/\*. When used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (\*\*/*). * `excludes_pattern` - (Optional) List of artifact patterns to exclude when evaluating artifact requests, in the form diff --git a/docs/resources/local_conan_repository.md b/docs/resources/local_conan_repository.md index c11a14af..96d26aa2 100644 --- a/docs/resources/local_conan_repository.md +++ b/docs/resources/local_conan_repository.md @@ -21,7 +21,7 @@ The following arguments are supported, along with the [common list of arguments * `key` - (Required) the identity key of the repo. * `description` - (Optional) * `notes` - (Optional) - +* `force_conan_authentication` - (Optional) Force basic authentication credentials in order to use this repository. Default value is `false`. ## Import diff --git a/docs/resources/remote.md b/docs/resources/remote.md index c1bc4254..1feb3edf 100644 --- a/docs/resources/remote.md +++ b/docs/resources/remote.md @@ -38,11 +38,9 @@ All generic repo arguments are supported, in addition to: * `description` - (Optional) Public description. * `notes` - (Optional) Internal description. * `project_key` - (Optional) Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When assigning repository to a project, repository key must be prefixed with project key, separated by a dash. We don't recommend using this attribute to assign the repository to the project. Use the `repos` attribute in Project provider to manage the list of repositories. -* `project_environments` - (Optional) Project environment for assigning this repository to. Allow values: `DEV` or `PROD`. +* `project_environments` - (Optional) Project environment for assigning this repository to. Allow values: `DEV`, `PROD`, or one of custom environment. Before Artifactory 7.53.1, up to 2 values (`DEV` and `PROD`) are allowed. From 7.53.1 onward, only one value is allowed. - The attribute should only be used if the repository is already assigned to the existing project. - If not, the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create state - drift during the update. + The attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update. * `url` - (Required) The remote repo URL. * `username` - (Optional) * `password` - (Optional) @@ -56,7 +54,7 @@ All generic repo arguments are supported, in addition to: * `offline` - (Optional, Default: `false`) If set, Artifactory does not try to fetch remote artifacts. Only locally-cached artifacts are retrieved. * `blacked_out` - (Optional) (A.K.A 'Ignore Repository' on the UI) When set, the repository or its local cache do not participate in artifact resolution. Default is `false`. * `xray_index` - (Optional, Default: `false`) Enable Indexing In Xray. Repository will be indexed with the default retention period. You will be able to change it via Xray settings. Default is `false`. -* `store_artifacts_locally` - (Optional, Default: `false`) When set, the repository should store cached artifacts locally. When not set, artifacts are not stored locally, and direct repository-to-client streaming is used. This can be useful for multi-server setups over a high-speed LAN, with one Artifactory caching certain data on central storage, and streaming it directly to satellite pass-though Artifactory servers. +* `store_artifacts_locally` - (Optional, Default: `true`) When set, the repository should store cached artifacts locally. When not set, artifacts are not stored locally, and direct repository-to-client streaming is used. This can be useful for multi-server setups over a high-speed LAN, with one Artifactory caching certain data on central storage, and streaming it directly to satellite pass-though Artifactory servers. * `socket_timeout_millis` - (Optional, Default: `15000`) Network timeout (in ms) to use when establishing a connection and for unanswered requests. Timing out on a network operation is considered a retrieval failure. * `local_address` - (Optional) The local address to be used when creating connections. Useful for specifying the interface to use on systems with multiple network interfaces. * `retrieval_cache_period_seconds` - (Optional, Default: `7200`) The metadataRetrievalTimeoutSecs field not allowed to be bigger then retrievalCachePeriodSecs field. diff --git a/docs/resources/virtual.md b/docs/resources/virtual.md index f9ea055d..2b40e06c 100644 --- a/docs/resources/virtual.md +++ b/docs/resources/virtual.md @@ -29,11 +29,9 @@ The following arguments are supported: contain spaces or special characters. * `repositories` - (Optional) The effective list of actual repositories included in this virtual repository. * `project_key` - (Optional) Project key for assigning this repository to. Must be 2 - 20 lowercase alphanumeric and hyphen characters. When assigning repository to a project, repository key must be prefixed with project key, separated by a dash. We don't recommend using this attribute to assign the repository to the project. Use the `repos` attribute in Project provider to manage the list of repositories. -* `project_environments` - (Optional) Project environment for assigning this repository to. Allow values: `DEV` or `PROD`. +* `project_environments` - (Optional) Project environment for assigning this repository to. Allow values: `DEV`, `PROD`, or one of custom environment. Before Artifactory 7.53.1, up to 2 values (`DEV` and `PROD`) are allowed. From 7.53.1 onward, only one value is allowed. - The attribute should only be used if the repository is already assigned to the existing project. - If not, the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create state - drift during the update. + The attribute should only be used if the repository is already assigned to the existing project. If not, the attribute will be ignored by Artifactory, but will remain in the Terraform state, which will create state drift during the update. * `description` - (Optional) * `notes` - (Optional) * `includes_pattern` - (Optional) List of artifact patterns to include when evaluating artifact requests in the form of x/y/\*\*/z/\*. When used, only artifacts matching one of the include patterns are served. By default, all artifacts are included (**/\*). diff --git a/docs/resources/virtual_conan_repository.md b/docs/resources/virtual_conan_repository.md index e88dd31c..2686e801 100644 --- a/docs/resources/virtual_conan_repository.md +++ b/docs/resources/virtual_conan_repository.md @@ -31,6 +31,7 @@ The following arguments are supported, along with the [common list of arguments * `description` - (Optional) * `notes` - (Optional) * `retrieval_cache_period_seconds` - (Optional, Default: `7200`) This value refers to the number of seconds to cache metadata files before checking for newer versions on aggregated repositories. A value of 0 indicates no caching. +* `force_conan_authentication` - (Optional) Force basic authentication credentials in order to use this repository. Default value is `false`. ## Import diff --git a/go.mod b/go.mod index 605b8f99..88e07c70 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/jfrog/terraform-provider-artifactory/v8 +module github.com/jfrog/terraform-provider-artifactory/v9 // if you need to do local dev, literally just uncomment the line below // replace github.com/jfrog/terraform-provider-shared => ../terraform-provider-shared @@ -16,7 +16,7 @@ require ( github.com/hashicorp/terraform-plugin-mux v0.9.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.28.0 github.com/hashicorp/terraform-plugin-testing v1.5.1 - github.com/jfrog/terraform-provider-shared v1.17.0 + github.com/jfrog/terraform-provider-shared v1.19.0 github.com/sethvargo/go-password v0.2.0 github.com/stretchr/testify v1.7.2 golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819 diff --git a/go.sum b/go.sum index 52493af3..5c825af4 100644 --- a/go.sum +++ b/go.sum @@ -116,8 +116,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jfrog/terraform-provider-shared v1.17.0 h1:WrzsoilWGn1gvh1c83m4YhSdh7XH2Fkw9Q7P4tcWN20= -github.com/jfrog/terraform-provider-shared v1.17.0/go.mod h1:JvTKRAXMQyX6gQjESY+YK2lJLeW8uKTVHar5HDTnvp0= +github.com/jfrog/terraform-provider-shared v1.19.0 h1:4/CgvSTqhf00eHMo8q+xL2/N8Lng7T+Pw5GbNSUwxRs= +github.com/jfrog/terraform-provider-shared v1.19.0/go.mod h1:JvTKRAXMQyX6gQjESY+YK2lJLeW8uKTVHar5HDTnvp0= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= diff --git a/main.go b/main.go index d65abc04..7f025523 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5" "github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server" "github.com/hashicorp/terraform-plugin-mux/tf5muxserver" - provider "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/provider" + provider "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/provider" ) // Run the docs generation tool, check its repository for more information on how it works and how docs diff --git a/pkg/acctest/test.go b/pkg/acctest/test.go index 46ad078b..1f67f96b 100644 --- a/pkg/acctest/test.go +++ b/pkg/acctest/test.go @@ -21,10 +21,10 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/plancheck" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/provider" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/user" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/provider" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/user" "github.com/jfrog/terraform-provider-shared/client" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/datasource_artifactory_file_test.go b/pkg/artifactory/datasource/datasource_artifactory_file_test.go index e9e09d34..e9212adc 100644 --- a/pkg/artifactory/datasource/datasource_artifactory_file_test.go +++ b/pkg/artifactory/datasource/datasource_artifactory_file_test.go @@ -13,8 +13,8 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource" "github.com/jfrog/terraform-provider-shared/testutil" "github.com/stretchr/testify/assert" ) diff --git a/pkg/artifactory/datasource/datasource_artifactory_fileinfo.go b/pkg/artifactory/datasource/datasource_artifactory_fileinfo.go index 775cfe9c..0015176b 100644 --- a/pkg/artifactory/datasource/datasource_artifactory_fileinfo.go +++ b/pkg/artifactory/datasource/datasource_artifactory_fileinfo.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" ) func ArtifactoryFileInfo() *schema.Resource { diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_alpine_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_alpine_repository.go index f58b9ffc..ec124048 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_alpine_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_alpine_repository.go @@ -2,10 +2,10 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_cargo_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_cargo_repository.go index b49f3e47..1ca67e65 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_cargo_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_cargo_repository.go @@ -2,10 +2,10 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_conan_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_conan_repository.go new file mode 100644 index 00000000..564f6581 --- /dev/null +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_conan_repository.go @@ -0,0 +1,52 @@ +package federated + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-shared/packer" + "github.com/jfrog/terraform-provider-shared/predicate" + utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" +) + +func DataSourceArtifactoryFederatedConanRepository() *schema.Resource { + conanSchema := utilsdk.MergeMaps( + local.ConanSchema, + memberSchema, + resource_repository.RepoLayoutRefSchema(rclass, resource_repository.ConanPackageType), + ) + + var packConanMembers = func(repo interface{}, d *schema.ResourceData) error { + members := repo.(*federated.ConanRepositoryParams).Members + return federated.PackMembers(members, d) + } + + pkr := packer.Compose( + packer.Universal( + predicate.All( + predicate.NoClass, + predicate.Ignore("member", "terraform_type", "enable_conan_support"), + ), + ), + packConanMembers, + ) + + constructor := func() (interface{}, error) { + return &federated.ConanRepositoryParams{ + ConanRepoParams: local.ConanRepoParams{ + RepositoryBaseParams: local.RepositoryBaseParams{ + PackageType: resource_repository.ConanPackageType, + Rclass: rclass, + }, + }, + }, nil + } + + return &schema.Resource{ + Schema: conanSchema, + ReadContext: repository.MkRepoReadDataSource(pkr, constructor), + Description: "Provides a data source for a federated Conan repository", + } +} diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_debian_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_debian_repository.go index 9e824976..d20ac864 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_debian_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_debian_repository.go @@ -2,10 +2,10 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_docker_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_docker_repository.go index 42312827..974b577a 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_docker_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_docker_repository.go @@ -4,10 +4,10 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_generic_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_generic_repository.go index 6f135a50..c468c828 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_generic_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_generic_repository.go @@ -4,10 +4,10 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_java_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_java_repository.go index cb152fb1..f872597e 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_java_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_java_repository.go @@ -4,10 +4,10 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_nuget_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_nuget_repository.go index ed0b9fdb..0b100dd8 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_nuget_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_nuget_repository.go @@ -2,10 +2,10 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_repository_test.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_repository_test.go index 6e3b058d..6983898a 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_repository_test.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_repository_test.go @@ -8,11 +8,11 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "golang.org/x/text/cases" @@ -88,7 +88,7 @@ func federatedTestCase(repoType string, t *testing.T) (*testing.T, resource.Test } } -func TestAccFederatedRepoGenericTypes(t *testing.T) { +func TestAccDataSourceFederatedRepoGenericTypes(t *testing.T) { for _, repo := range federated.PackageTypesLikeGeneric { title := cases.Title(language.AmericanEnglish).String(repo) t.Run(title, func(t *testing.T) { @@ -97,7 +97,7 @@ func TestAccFederatedRepoGenericTypes(t *testing.T) { } } -func TestAccFederatedAlpineRepository(t *testing.T) { +func TestAccDataSourceFederatedAlpineRepository(t *testing.T) { _, tempFqrn, name := testutil.MkNames("alpine-federated", "artifactory_federated_alpine_repository") kpId, kpFqrn, kpName := testutil.MkNames("some-keypair", "artifactory_keypair") @@ -199,7 +199,7 @@ func TestAccFederatedAlpineRepository(t *testing.T) { }) } -func TestAccFederatedCargoRepository(t *testing.T) { +func TestAccDataSourceFederatedCargoRepository(t *testing.T) { _, tempFqrn, name := testutil.MkNames("cargo-federated", "artifactory_federated_cargo_repository") federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) anonAccess := testutil.RandBool() @@ -267,7 +267,72 @@ func TestAccFederatedCargoRepository(t *testing.T) { }) } -func TestAccFederatedDebianRepository(t *testing.T) { +func TestAccDataSourceFederatedConanRepository(t *testing.T) { + _, tempFqrn, name := testutil.MkNames("conan-federated", "artifactory_federated_conan_repository") + federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) + forceConanAuthentication := testutil.RandBool() + + params := map[string]interface{}{ + "force_conan_authentication": forceConanAuthentication, + "name": name, + "memberUrl": federatedMemberUrl, + } + + template := ` + resource "artifactory_federated_conan_repository" "{{ .name }}" { + key = "{{ .name }}" + force_conan_authentication = {{ .force_conan_authentication }} + + member { + url = "{{ .memberUrl }}" + enabled = true + } + } + + data "artifactory_federated_conan_repository" "{{ .name }}" { + key = artifactory_federated_conan_repository.{{ .name }}.id + } + ` + fqrn := "data." + tempFqrn + + federatedRepositoryBasic := utilsdk.ExecuteTemplate("TestAccFederatedConanRepository", template, params) + + federatedRepositoryUpdated := utilsdk.ExecuteTemplate( + "TestAccFederatedConanRepository", + template, + map[string]interface{}{ + "force_conan_authentication": !forceConanAuthentication, + "name": name, + "memberUrl": federatedMemberUrl, + }, + ) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProviderFactories: acctest.ProviderFactories, + CheckDestroy: acctest.VerifyDeleted(fqrn, acctest.CheckRepo), + Steps: []resource.TestStep{ + { + Config: federatedRepositoryBasic, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(fqrn, "key", name), + resource.TestCheckResourceAttr(fqrn, "force_conan_authentication", fmt.Sprintf("%t", forceConanAuthentication)), + resource.TestCheckResourceAttr(fqrn, "repo_layout_ref", func() string { r, _ := repository.GetDefaultRepoLayoutRef("federated", "conan")(); return r.(string) }()), //Check to ensure repository layout is set as per default even when it is not passed. + ), + }, + { + Config: federatedRepositoryUpdated, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(fqrn, "key", name), + resource.TestCheckResourceAttr(fqrn, "force_conan_authentication", fmt.Sprintf("%t", !forceConanAuthentication)), + resource.TestCheckResourceAttr(fqrn, "repo_layout_ref", func() string { r, _ := repository.GetDefaultRepoLayoutRef("federated", "conan")(); return r.(string) }()), //Check to ensure repository layout is set as per default even when it is not passed. + ), + }, + }, + }) +} + +func TestAccDataSourceFederatedDebianRepository(t *testing.T) { _, tempFqrn, name := testutil.MkNames("debian-federated", "artifactory_federated_debian_repository") kpId, kpFqrn, kpName := testutil.MkNames("some-keypair1", "artifactory_keypair") kpId2, kpFqrn2, kpName2 := testutil.MkNames("some-keypair2", "artifactory_keypair") @@ -451,7 +516,7 @@ func TestAccFederatedDebianRepository(t *testing.T) { }, }) } -func TestAccFederatedDockerV2Repository(t *testing.T) { +func TestAccDataSourceFederatedDockerV2Repository(t *testing.T) { _, fqrn, name := testutil.MkNames("docker-federated", "data.artifactory_federated_docker_v2_repository") federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) @@ -520,7 +585,7 @@ func TestAccFederatedDockerV2Repository(t *testing.T) { } // TestAccFederatedDockerRepository tests for backward compatibility -func TestAccFederatedDockerRepository(t *testing.T) { +func TestAccDataSourceFederatedDockerRepository(t *testing.T) { _, fqrn, name := testutil.MkNames("docker-federated", "data.artifactory_federated_docker_repository") federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) @@ -588,7 +653,7 @@ func TestAccFederatedDockerRepository(t *testing.T) { }) } -func TestAccFederatedDockerV1Repository(t *testing.T) { +func TestAccDataSourceFederatedDockerV1Repository(t *testing.T) { _, fqrn, name := testutil.MkNames("docker-federated", "data.artifactory_federated_docker_v1_repository") federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) @@ -660,7 +725,7 @@ const federatedJavaRepositoryBasic = ` } ` -func TestAccFederatedMavenRepository(t *testing.T) { +func TestAccDataSourceFederatedMavenRepository(t *testing.T) { _, fqrn, name := testutil.MkNames("maven-federated", "artifactory_federated_maven_repository") repoLayoutRef := func() string { r, _ := repository.GetDefaultRepoLayoutRef("federated", "maven")(); return r.(string) }() @@ -764,7 +829,7 @@ func makeFederatedGradleLikeRepoTestCase(repoType string, t *testing.T) (*testin } } -func TestAccFederatedAllGradleLikePackageTypes(t *testing.T) { +func TestAccDataSourceFederatedAllGradleLikePackageTypes(t *testing.T) { for _, repoType := range repository.GradleLikePackageTypes { title := cases.Title(language.AmericanEnglish).String(repoType) t.Run(title, func(t *testing.T) { @@ -773,7 +838,7 @@ func TestAccFederatedAllGradleLikePackageTypes(t *testing.T) { } } -func TestAccFederatedNugetRepository(t *testing.T) { +func TestAccDataSourceFederatedNugetRepository(t *testing.T) { _, tempFqrn, name := testutil.MkNames("nuget-federated", "artifactory_federated_nuget_repository") federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) @@ -837,7 +902,7 @@ func TestAccFederatedNugetRepository(t *testing.T) { }) } -func TestAccFederatedRpmRepository(t *testing.T) { +func TestAccDataSourceFederatedRpmRepository(t *testing.T) { _, tempFqrn, name := testutil.MkNames("rpm-federated", "artifactory_federated_rpm_repository") kpId, kpFqrn, kpName := testutil.MkNames("some-keypair1", "artifactory_keypair") kpId2, kpFqrn2, kpName2 := testutil.MkNames("some-keypair2", "artifactory_keypair") @@ -1073,7 +1138,7 @@ func makeFederatedTerraformRepoTestCase(registryType string, t *testing.T) (*tes } } -func TestAccFederatedTerraformRepositories(t *testing.T) { +func TestAccDataSourceFederatedTerraformRepositories(t *testing.T) { for _, registryType := range []string{"module", "provider"} { title := cases.Title(language.AmericanEnglish).String(registryType) t.Run(title, func(t *testing.T) { diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_rpm_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_rpm_repository.go index 0ad0c956..590cdf04 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_rpm_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_rpm_repository.go @@ -2,10 +2,10 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_terraform_repository.go b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_terraform_repository.go index f218d58f..8a77e4f4 100644 --- a/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_terraform_repository.go +++ b/pkg/artifactory/datasource/repository/federated/datasource_artifactory_federated_terraform_repository.go @@ -4,10 +4,10 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/repository/federated/federated.go b/pkg/artifactory/datasource/repository/federated/federated.go index 7383e919..9a7b831a 100644 --- a/pkg/artifactory/datasource/repository/federated/federated.go +++ b/pkg/artifactory/datasource/repository/federated/federated.go @@ -1,6 +1,6 @@ package federated -import "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" +import "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" const rclass = "federated" diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_alpine_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_alpine_repository.go index 3905f5c6..4d5ed4a8 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_alpine_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_alpine_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_cargo_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_cargo_repository.go index d5c6e09a..517f4812 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_cargo_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_cargo_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_conan_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_conan_repository.go new file mode 100644 index 00000000..7ab31f6c --- /dev/null +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_conan_repository.go @@ -0,0 +1,26 @@ +package local + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-shared/packer" +) + +func DataSourceArtifactoryLocalConanRepository() *schema.Resource { + constructor := func() (interface{}, error) { + return &local.ConanRepoParams{ + RepositoryBaseParams: local.RepositoryBaseParams{ + PackageType: resource_repository.ConanPackageType, + Rclass: rclass, + }, + }, nil + } + + return &schema.Resource{ + Schema: local.ConanSchema, + ReadContext: repository.MkRepoReadDataSource(packer.Default(local.ConanSchema), constructor), + Description: "Data source for local Conan repository", + } +} diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_debian_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_debian_repository.go index 061e900d..435f4413 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_debian_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_debian_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_docker_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_docker_repository.go index 9a3ed4b8..7f0e7980 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_docker_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_docker_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_generic_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_generic_repository.go index 6127cd52..01439c95 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_generic_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_generic_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_java_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_java_repository.go index c728c3a6..17f11ad8 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_java_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_java_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_nuget_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_nuget_repository.go index cb8b5fd9..09197635 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_nuget_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_nuget_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_repository_test.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_repository_test.go index 694cc9c9..1114a805 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_repository_test.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_repository_test.go @@ -6,10 +6,10 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "golang.org/x/text/cases" @@ -187,6 +187,39 @@ func TestAccDataSourceLocalCargoRepository(t *testing.T) { }) } +func TestAccDataSourceLocalConanRepository(t *testing.T) { + _, fqrn, name := testutil.MkNames("conan-local", "data.artifactory_local_conan_repository") + params := map[string]interface{}{ + "force_conan_authentication": testutil.RandBool(), + "name": name, + } + localRepositoryBasic := utilsdk.ExecuteTemplate("TestAccLocalConanRepository", ` + resource "artifactory_local_conan_repository" "{{ .name }}" { + key = "{{ .name }}" + force_conan_authentication = {{ .force_conan_authentication }} + } + + data "artifactory_local_conan_repository" "{{ .name }}" { + key = artifactory_local_conan_repository.{{ .name }}.id + } + `, params) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProviderFactories: acctest.ProviderFactories, + Steps: []resource.TestStep{ + { + Config: localRepositoryBasic, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(fqrn, "key", name), + resource.TestCheckResourceAttr(fqrn, "force_conan_authentication", fmt.Sprintf("%t", params["force_conan_authentication"])), + resource.TestCheckResourceAttr(fqrn, "repo_layout_ref", func() string { r, _ := repository.GetDefaultRepoLayoutRef("local", "conan")(); return r.(string) }()), //Check to ensure repository layout is set as per default even when it is not passed. + ), + }, + }, + }) +} + func TestAccDataSourceLocalDebianRepository(t *testing.T) { _, fqrn, name := testutil.MkNames("local-debian-repo", "data.artifactory_local_debian_repository") kpId, _, kpName := testutil.MkNames("some-keypair1", "artifactory_keypair") diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_rpm_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_rpm_repository.go index 1036de80..87d4f3f2 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_rpm_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_rpm_repository.go @@ -2,8 +2,8 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_terraform_repository.go b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_terraform_repository.go index ff718fe4..7824068d 100644 --- a/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_terraform_repository.go +++ b/pkg/artifactory/datasource/repository/local/datasource_artifactory_local_terraform_repository.go @@ -4,8 +4,8 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_basic_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_basic_repository.go index 23f47b2d..93a13554 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_basic_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_basic_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_bower_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_bower_repository.go index 85bb38b1..72d6ada8 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_bower_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_bower_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cargo_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cargo_repository.go index ab0d7c2d..f9328d83 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cargo_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cargo_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cocoapods_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cocoapods_repository.go index 8d06764d..2691e9f1 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cocoapods_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_cocoapods_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_composer_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_composer_repository.go index 09c58cdb..74a48554 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_composer_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_composer_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_conan_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_conan_repository.go index 7e77ba46..0932c4e9 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_conan_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_conan_repository.go @@ -2,29 +2,29 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) func DataSourceArtifactoryRemotecoConanRepository() *schema.Resource { constructor := func() (interface{}, error) { - repoLayout, err := resource_repository.GetDefaultRepoLayoutRef(rclass, remote.ConanPackageType)() + repoLayout, err := resource_repository.GetDefaultRepoLayoutRef(rclass, resource_repository.ConanPackageType)() if err != nil { return nil, err } - return &remote.ConanRemoteRepo{ + return &remote.ConanRepo{ RepositoryRemoteBaseParams: remote.RepositoryRemoteBaseParams{ Rclass: rclass, - PackageType: remote.ConanPackageType, + PackageType: resource_repository.ConanPackageType, RepoLayoutRef: repoLayout.(string), }, }, nil } - conanSchema := remote.ConanRemoteSchema(false) + conanSchema := remote.ConanSchema(false) return &schema.Resource{ Schema: conanSchema, diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_docker_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_docker_repository.go index a2f2bb0e..069a2114 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_docker_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_docker_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_generic_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_generic_repository.go index 8a82f137..cb182f03 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_generic_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_generic_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_go_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_go_repository.go index 51213329..dd0953a1 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_go_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_go_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_helm_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_helm_repository.go index c81f4b89..4f80ae41 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_helm_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_helm_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_java_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_java_repository.go index 4ba31972..84186723 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_java_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_java_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_maven_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_maven_repository.go index 1ab40fbd..870c7eed 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_maven_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_maven_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_nuget_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_nuget_repository.go index 835e98ab..4fed26c5 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_nuget_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_nuget_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_pypi_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_pypi_repository.go index e041121e..76ebe716 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_pypi_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_pypi_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_repository_test.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_repository_test.go index e4762ec0..f2eee9c3 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_repository_test.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_repository_test.go @@ -5,24 +5,23 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) func TestAccDataSourceRemoteAllBasicPackageTypes(t *testing.T) { for _, packageType := range remote.PackageTypesLikeBasic { - title := fmt.Sprintf("%s", packageType) - t.Run(title, func(t *testing.T) { + t.Run(packageType, func(t *testing.T) { resource.Test(mkTestCase(packageType, t)) }) } } func mkTestCase(packageType string, t *testing.T) (*testing.T, resource.TestCase) { - name := fmt.Sprintf("terraform-remote-%s-%d", packageType, testutil.RandomInt()) + name := fmt.Sprintf("remote-%s-%d", packageType, testutil.RandomInt()) resourceName := fmt.Sprintf("data.artifactory_remote_%s_repository.%s", packageType, name) params := map[string]interface{}{ diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_terraform_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_terraform_repository.go index c1a52e50..9dae8d5f 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_terraform_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_terraform_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_vcs_repository.go b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_vcs_repository.go index 74bb10b0..463339b4 100644 --- a/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_vcs_repository.go +++ b/pkg/artifactory/datasource/repository/remote/datasource_artifactory_remote_vcs_repository.go @@ -2,9 +2,9 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/repository.go b/pkg/artifactory/datasource/repository/repository.go index 0b8f8e58..bc2133a7 100644 --- a/pkg/artifactory/datasource/repository/repository.go +++ b/pkg/artifactory/datasource/repository/repository.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_alpine_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_alpine_repository.go index db0b59ed..1e5db9e4 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_alpine_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_alpine_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_bower_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_bower_repository.go index 1dc8ab4f..58c498de 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_bower_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_bower_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_conan_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_conan_repository.go new file mode 100644 index 00000000..75580624 --- /dev/null +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_conan_repository.go @@ -0,0 +1,41 @@ +package virtual + +import ( + "fmt" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-shared/packer" +) + +func DatasourceArtifactoryVirtualConanRepository() *schema.Resource { + constructor := func() (interface{}, error) { + repoLayout, err := resource_repository.GetDefaultRepoLayoutRef(rclass, resource_repository.ConanPackageType)() + if err != nil { + return nil, err + } + + return &virtual.ConanRepoParams{ + RepositoryBaseParamsWithRetrievalCachePeriodSecs: virtual.RepositoryBaseParamsWithRetrievalCachePeriodSecs{ + RepositoryBaseParams: virtual.RepositoryBaseParams{ + Rclass: rclass, + PackageType: resource_repository.ConanPackageType, + RepoLayoutRef: repoLayout.(string), + }, + }, + ConanBaseParams: resource_repository.ConanBaseParams{ + EnableConanSupport: true, + }, + }, nil + } + + conanSchema := virtual.ConanSchema + + return &schema.Resource{ + Schema: conanSchema, + ReadContext: repository.MkRepoReadDataSource(packer.Default(conanSchema), constructor), + Description: fmt.Sprintf("Provides a data source for a virtual %s repository", resource_repository.ConanPackageType), + } +} diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_debian_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_debian_repository.go index aa28c694..9049e698 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_debian_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_debian_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_docker_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_docker_repository.go index 9a1b50cf..f8461193 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_docker_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_docker_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_generic_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_generic_repository.go index 1ba8c53a..951776f1 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_generic_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_generic_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_go_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_go_repository.go index 63e4fd20..47700024 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_go_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_go_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_helm_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_helm_repository.go index 9be0fbe9..83635a8e 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_helm_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_helm_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_java_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_java_repository.go index c8b17327..f91a63f6 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_java_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_java_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_npm_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_npm_repository.go index bf04c227..d3fa8169 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_npm_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_npm_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_nuget_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_nuget_repository.go index d78f76d5..907e2de8 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_nuget_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_nuget_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_repository_test.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_repository_test.go index 05858279..90be9216 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_repository_test.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_repository_test.go @@ -6,10 +6,10 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "golang.org/x/text/cases" @@ -74,6 +74,14 @@ func TestAccDataSourceVirtualBowerRepository(t *testing.T) { })) } +func TestAccDataSourceVirtualConanRepository(t *testing.T) { + resource.Test(mkNewVirtualTestCase(repository.ConanPackageType, t, map[string]interface{}{ + "description": "conan virtual repository public description testing.", + "retrieval_cache_period_seconds": 60, + "force_conan_authentication": true, + })) +} + func TestAccDataSourceVirtualDebianRepository(t *testing.T) { resource.Test(mkNewVirtualTestCase(virtual.DebianPackageType, t, map[string]interface{}{ "description": "bower virtual repository public description testing.", @@ -271,7 +279,7 @@ func TestAccDataSourceVirtualRpmRepository(t *testing.T) { } func mkNewVirtualTestCase(packageType string, t *testing.T, extraFields map[string]interface{}) (*testing.T, resource.TestCase) { - _, fqrn, name := testutil.MkNames(fmt.Sprintf("terraform-virtual-%s-repo-full-", packageType), + _, fqrn, name := testutil.MkNames(fmt.Sprintf("virtual-%s-repo-full-", packageType), fmt.Sprintf("artifactory_virtual_%s_repository", packageType)) remoteRepoName := fmt.Sprintf("%s-remote", name) defaultFields := map[string]interface{}{ diff --git a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_rpm_repository.go b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_rpm_repository.go index 11e96127..8deda433 100644 --- a/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_rpm_repository.go +++ b/pkg/artifactory/datasource/repository/virtual/datasource_artifactory_virtual_rpm_repository.go @@ -4,9 +4,9 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository" - resource_repository "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository" + resource_repository "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" "github.com/jfrog/terraform-provider-shared/packer" ) diff --git a/pkg/artifactory/datasource/security/datasource_artifactory_group.go b/pkg/artifactory/datasource/security/datasource_artifactory_group.go index 3be3431a..7786cced 100644 --- a/pkg/artifactory/datasource/security/datasource_artifactory_group.go +++ b/pkg/artifactory/datasource/security/datasource_artifactory_group.go @@ -4,7 +4,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/datasource/security/datasource_artifactory_group_test.go b/pkg/artifactory/datasource/security/datasource_artifactory_group_test.go index 66cbb3c5..87429f9a 100644 --- a/pkg/artifactory/datasource/security/datasource_artifactory_group_test.go +++ b/pkg/artifactory/datasource/security/datasource_artifactory_group_test.go @@ -7,9 +7,9 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - datasourcesec "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/security" - resourcesec "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + datasourcesec "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/security" + resourcesec "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/datasource/security/datasource_artifactory_permission_target.go b/pkg/artifactory/datasource/security/datasource_artifactory_permission_target.go index 4d486529..365e45b6 100644 --- a/pkg/artifactory/datasource/security/datasource_artifactory_permission_target.go +++ b/pkg/artifactory/datasource/security/datasource_artifactory_permission_target.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/datasource/security/datasource_artifactory_permission_target_test.go b/pkg/artifactory/datasource/security/datasource_artifactory_permission_target_test.go index 7b6a2083..9ff9de94 100644 --- a/pkg/artifactory/datasource/security/datasource_artifactory_permission_target_test.go +++ b/pkg/artifactory/datasource/security/datasource_artifactory_permission_target_test.go @@ -6,10 +6,10 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - datasource "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/security" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + datasource "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/datasource/user/datasource_artifactory_user.go b/pkg/artifactory/datasource/user/datasource_artifactory_user.go index 0200d32e..8a95d288 100644 --- a/pkg/artifactory/datasource/user/datasource_artifactory_user.go +++ b/pkg/artifactory/datasource/user/datasource_artifactory_user.go @@ -8,7 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/user" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/user" "github.com/jfrog/terraform-provider-shared/validator" ) diff --git a/pkg/artifactory/datasource/user/datasource_artifactory_user_test.go b/pkg/artifactory/datasource/user/datasource_artifactory_user_test.go index a55baf62..8a09d0f8 100644 --- a/pkg/artifactory/datasource/user/datasource_artifactory_user_test.go +++ b/pkg/artifactory/datasource/user/datasource_artifactory_user_test.go @@ -6,7 +6,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/provider/datasources.go b/pkg/artifactory/provider/datasources.go index 8cb593a5..cddfb2ff 100644 --- a/pkg/artifactory/provider/datasources.go +++ b/pkg/artifactory/provider/datasources.go @@ -4,18 +4,18 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource" - datasource_federated "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository/federated" - datasource_local "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository/local" - datasource_remote "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository/remote" - datasource_virtual "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/repository/virtual" - datasource_security "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/security" - datasource_user "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/datasource/user" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource" + datasource_federated "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository/federated" + datasource_local "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository/local" + datasource_remote "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository/remote" + datasource_virtual "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/repository/virtual" + datasource_security "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/security" + datasource_user "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/datasource/user" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) @@ -28,6 +28,7 @@ func datasourcesMap() map[string]*schema.Resource { "artifactory_user": datasource_user.DataSourceArtifactoryUser(), "artifactory_local_alpine_repository": datasource_local.DataSourceArtifactoryLocalAlpineRepository(), "artifactory_local_cargo_repository": datasource_local.DataSourceArtifactoryLocalCargoRepository(), + "artifactory_local_conan_repository": datasource_local.DataSourceArtifactoryLocalConanRepository(), "artifactory_local_debian_repository": datasource_local.DataSourceArtifactoryLocalDebianRepository(), "artifactory_local_docker_v2_repository": datasource_local.DataSourceArtifactoryLocalDockerV2Repository(), "artifactory_local_docker_v1_repository": datasource_local.DataSourceArtifactoryLocalDockerV1Repository(), @@ -53,6 +54,7 @@ func datasourcesMap() map[string]*schema.Resource { "artifactory_virtual_alpine_repository": datasource_virtual.DatasourceArtifactoryVirtualAlpineRepository(), "artifactory_virtual_bower_repository": datasource_virtual.DatasourceArtifactoryVirtualBowerRepository(), "artifactory_virtual_debian_repository": datasource_virtual.DatasourceArtifactoryVirtualDebianRepository(), + "artifactory_virtual_conan_repository": datasource_virtual.DatasourceArtifactoryVirtualConanRepository(), "artifactory_virtual_go_repository": datasource_virtual.DatasourceArtifactoryVirtualGoRepository(), "artifactory_virtual_docker_repository": datasource_virtual.DatasourceArtifactoryVirtualDockerRepository(), "artifactory_virtual_helm_repository": datasource_virtual.DatasourceArtifactoryVirtualHelmRepository(), @@ -61,6 +63,7 @@ func datasourcesMap() map[string]*schema.Resource { "artifactory_virtual_rpm_repository": datasource_virtual.DatasourceArtifactoryVirtualRpmRepository(), "artifactory_federated_alpine_repository": datasource_federated.DataSourceArtifactoryFederatedAlpineRepository(), "artifactory_federated_cargo_repository": datasource_federated.DataSourceArtifactoryFederatedCargoRepository(), + "artifactory_federated_conan_repository": datasource_federated.DataSourceArtifactoryFederatedConanRepository(), "artifactory_federated_debian_repository": datasource_federated.DataSourceArtifactoryFederatedDebianRepository(), "artifactory_federated_docker_v1_repository": datasource_federated.DataSourceArtifactoryFederatedDockerV1Repository(), "artifactory_federated_docker_v2_repository": datasource_federated.DataSourceArtifactoryFederatedDockerV2Repository(), diff --git a/pkg/artifactory/provider/framework.go b/pkg/artifactory/provider/framework.go index 7b0eda5f..24327273 100644 --- a/pkg/artifactory/provider/framework.go +++ b/pkg/artifactory/provider/framework.go @@ -10,9 +10,9 @@ import ( "github.com/hashicorp/terraform-plugin-framework/provider/schema" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/types" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/user" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/user" "github.com/jfrog/terraform-provider-shared/client" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) @@ -174,6 +174,7 @@ func (p *ArtifactoryProvider) Resources(ctx context.Context) []func() resource.R security.NewGlobalEnvironmentResource, configuration.NewLdapSettingResource, configuration.NewLdapGroupSettingResource, + configuration.NewBackupResource, } } diff --git a/pkg/artifactory/provider/framework_test.go b/pkg/artifactory/provider/framework_test.go index b2b2c02b..f6cf3392 100644 --- a/pkg/artifactory/provider/framework_test.go +++ b/pkg/artifactory/provider/framework_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5" "github.com/hashicorp/terraform-plugin-mux/tf5muxserver" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/provider" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/provider" ) func TestMuxServer(t *testing.T) { diff --git a/pkg/artifactory/provider/resources.go b/pkg/artifactory/provider/resources.go index 3cb43548..b46c50e8 100644 --- a/pkg/artifactory/provider/resources.go +++ b/pkg/artifactory/provider/resources.go @@ -4,16 +4,16 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/replication" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/user" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/webhook" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/replication" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/user" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/webhook" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) @@ -22,6 +22,7 @@ func resourcesMap() map[string]*schema.Resource { "artifactory_keypair": security.ResourceArtifactoryKeyPair(), "artifactory_federated_alpine_repository": federated.ResourceArtifactoryFederatedAlpineRepository(), "artifactory_federated_cargo_repository": federated.ResourceArtifactoryFederatedCargoRepository(), + "artifactory_federated_conan_repository": federated.ResourceArtifactoryFederatedConanRepository(), "artifactory_federated_debian_repository": federated.ResourceArtifactoryFederatedDebianRepository(), "artifactory_federated_docker_repository": federated.ResourceArtifactoryFederatedDockerV2Repository(), // Alias for backward compatibility "artifactory_federated_docker_v1_repository": federated.ResourceArtifactoryFederatedDockerV1Repository(), @@ -35,6 +36,7 @@ func resourcesMap() map[string]*schema.Resource { "artifactory_local_maven_repository": local.ResourceArtifactoryLocalJavaRepository("maven", false), "artifactory_local_alpine_repository": local.ResourceArtifactoryLocalAlpineRepository(), "artifactory_local_cargo_repository": local.ResourceArtifactoryLocalCargoRepository(), + "artifactory_local_conan_repository": local.ResourceArtifactoryLocalConanRepository(), "artifactory_local_debian_repository": local.ResourceArtifactoryLocalDebianRepository(), "artifactory_local_docker_v2_repository": local.ResourceArtifactoryLocalDockerV2Repository(), "artifactory_local_docker_v1_repository": local.ResourceArtifactoryLocalDockerV1Repository(), @@ -57,6 +59,7 @@ func resourcesMap() map[string]*schema.Resource { "artifactory_remote_vcs_repository": remote.ResourceArtifactoryRemoteVcsRepository(), "artifactory_virtual_alpine_repository": virtual.ResourceArtifactoryVirtualAlpineRepository(), "artifactory_virtual_bower_repository": virtual.ResourceArtifactoryVirtualBowerRepository(), + "artifactory_virtual_conan_repository": virtual.ResourceArtifactoryVirtualConanRepository(), "artifactory_virtual_debian_repository": virtual.ResourceArtifactoryVirtualDebianRepository(), "artifactory_virtual_docker_repository": virtual.ResourceArtifactoryVirtualDockerRepository(), "artifactory_virtual_maven_repository": virtual.ResourceArtifactoryVirtualJavaRepository("maven"), @@ -82,7 +85,6 @@ func resourcesMap() map[string]*schema.Resource { "artifactory_single_replication_config": replication.ResourceArtifactorySingleReplicationConfig(), "artifactory_ldap_setting": configuration.ResourceArtifactoryLdapSetting(), "artifactory_ldap_group_setting": configuration.ResourceArtifactoryLdapGroupSetting(), - "artifactory_backup": configuration.ResourceArtifactoryBackup(), "artifactory_repository_layout": configuration.ResourceArtifactoryRepositoryLayout(), "artifactory_property_set": configuration.ResourceArtifactoryPropertySet(), "artifactory_proxy": configuration.ResourceArtifactoryProxy(), diff --git a/pkg/artifactory/provider/sdkv2_test.go b/pkg/artifactory/provider/sdkv2_test.go index 419363b6..e9301be0 100644 --- a/pkg/artifactory/provider/sdkv2_test.go +++ b/pkg/artifactory/provider/sdkv2_test.go @@ -3,7 +3,7 @@ package provider_test import ( "testing" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/provider" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/provider" ) func TestProvider(t *testing.T) { diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_backup.go b/pkg/artifactory/resource/configuration/resource_artifactory_backup.go index 6fb9de3e..dc0ebef9 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_backup.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_backup.go @@ -4,208 +4,364 @@ import ( "context" "fmt" - "github.com/hashicorp/terraform-plugin-sdk/v2/diag" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/diag" + "github.com/hashicorp/terraform-plugin-framework/path" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/booldefault" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64default" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + utilfw "github.com/jfrog/terraform-provider-shared/util/fw" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" + validatorfw "github.com/jfrog/terraform-provider-shared/validator/fw" - "github.com/jfrog/terraform-provider-shared/packer" - "github.com/jfrog/terraform-provider-shared/validator" "gopkg.in/yaml.v3" ) -type Backup struct { - Key string `xml:"key" yaml:"key"` - CronExp string `xml:"cronExp" yaml:"cronExp"` - Enabled bool `xml:"enabled" yaml:"enabled"` - RetentionPeriodHours int `xml:"retentionPeriodHours" yaml:"retentionPeriodHours"` - ExcludedRepositories []string `xml:"excludedRepositories>repositoryRef" yaml:"excludedRepositories"` - CreateArchive bool `xml:"createArchive" yaml:"createArchive"` - ExcludeNewRepositories bool `xml:"excludeNewRepositories" yaml:"excludeNewRepositories"` - SendMailOnError bool `xml:"sendMailOnError" yaml:"sendMailOnError"` - VerifyDiskSpace bool `xml:"precalculate" yaml:"precalculate"` - ExportMissionControl bool `xml:"exportMissionControl" yaml:"exportMissionControl"` +type BackupAPIModel struct { + Key string `xml:"key" yaml:"key"` + CronExp string `xml:"cronExp" yaml:"cronExp"` + Enabled bool `xml:"enabled" yaml:"enabled"` + RetentionPeriodHours int64 `xml:"retentionPeriodHours" yaml:"retentionPeriodHours"` + ExcludedRepositories *[]string `xml:"excludedRepositories>repositoryRef" yaml:"excludedRepositories"` + CreateArchive bool `xml:"createArchive" yaml:"createArchive"` + ExcludeNewRepositories bool `xml:"excludeNewRepositories" yaml:"excludeNewRepositories"` + SendMailOnError bool `xml:"sendMailOnError" yaml:"sendMailOnError"` + VerifyDiskSpace bool `xml:"precalculate" yaml:"precalculate"` + ExportMissionControl bool `xml:"exportMissionControl" yaml:"exportMissionControl"` } -func (b Backup) Id() string { - return b.Key +func (m BackupAPIModel) Id() string { + return m.Key } type Backups struct { - BackupArr []Backup `xml:"backups>backup" yaml:"backup"` + BackupArr []BackupAPIModel `xml:"backups>backup" yaml:"backup"` } -func ResourceArtifactoryBackup() *schema.Resource { - var backupSchema = map[string]*schema.Schema{ - "key": { - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateDiagFunc: validator.StringIsNotEmpty, - Description: "Backup config name.", - }, - "enabled": { - Type: schema.TypeBool, - Optional: true, - Default: true, - Description: "Flag to enable or disable the backup config. Default value is 'true'.", - }, - "cron_exp": { - Type: schema.TypeString, - Required: true, - ValidateDiagFunc: validator.Cron, - Description: "Cron expression to control the backup frequency.", - }, - "retention_period_hours": { - Type: schema.TypeInt, - Optional: true, - Default: 168, - ValidateDiagFunc: validator.IntAtLeast(0), - Description: "The number of hours to keep a backup before Artifactory will clean it up to free up disk space. Applicable only to non-incremental backups. Default value is 168 hours ie: 7 days.", - }, - "excluded_repositories": { - Type: schema.TypeList, - Optional: true, - Elem: &schema.Schema{ - Type: schema.TypeString, +type BackupResourceModel struct { + Key types.String `tfsdk:"key"` + Enabled types.Bool `tfsdk:"enabled"` + CronExp types.String `tfsdk:"cron_exp"` + RetentionPeriodHours types.Int64 `tfsdk:"retention_period_hours"` + ExcludedRepositories types.List `tfsdk:"excluded_repositories"` + CreateArchive types.Bool `tfsdk:"create_archive"` + ExcludeNewRepositories types.Bool `tfsdk:"exclude_new_repositories"` + SendMailOnError types.Bool `tfsdk:"send_mail_on_error"` + VerifyDiskSpace types.Bool `tfsdk:"verify_disk_space"` + ExportMissionControl types.Bool `tfsdk:"export_mission_control"` +} + +func (r *BackupResourceModel) toAPIModel(ctx context.Context, backup *BackupAPIModel) diag.Diagnostics { + // Convert from Terraform resource model into API model + var excludedRepositories []string + diags := r.ExcludedRepositories.ElementsAs(ctx, &excludedRepositories, true) + if diags != nil { + return diags + } + + *backup = BackupAPIModel{ + Key: r.Key.ValueString(), + Enabled: r.Enabled.ValueBool(), + CronExp: r.CronExp.ValueString(), + RetentionPeriodHours: r.RetentionPeriodHours.ValueInt64(), + CreateArchive: r.CreateArchive.ValueBool(), + ExcludeNewRepositories: r.ExcludeNewRepositories.ValueBool(), + SendMailOnError: r.SendMailOnError.ValueBool(), + ExcludedRepositories: &excludedRepositories, + VerifyDiskSpace: r.VerifyDiskSpace.ValueBool(), + ExportMissionControl: r.ExportMissionControl.ValueBool(), + } + + return nil +} + +func (r *BackupResourceModel) FromAPIModel(ctx context.Context, backup *BackupAPIModel) diag.Diagnostics { + r.Key = types.StringValue(backup.Key) + r.Enabled = types.BoolValue(backup.Enabled) + r.CronExp = types.StringValue(backup.CronExp) + r.RetentionPeriodHours = types.Int64Value(backup.RetentionPeriodHours) + r.CreateArchive = types.BoolValue(backup.CreateArchive) + r.ExcludeNewRepositories = types.BoolValue(backup.ExcludeNewRepositories) + r.SendMailOnError = types.BoolValue(backup.SendMailOnError) + + excludedRepositories, diags := types.ListValueFrom(ctx, types.StringType, backup.ExcludedRepositories) + if diags != nil { + return diags + } + r.ExcludedRepositories = excludedRepositories + r.VerifyDiskSpace = types.BoolValue(backup.VerifyDiskSpace) + r.ExportMissionControl = types.BoolValue(backup.ExportMissionControl) + + return nil +} + +func NewBackupResource() resource.Resource { + return &BackupResource{} +} + +type BackupResource struct { + ProviderData utilsdk.ProvderMetadata +} + +func (r *BackupResource) Metadata(ctx context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) { + resp.TypeName = "artifactory_backup" +} + +func (r *BackupResource) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse) { + resp.Schema = schema.Schema{ + MarkdownDescription: "Provides an Artifactory backup config resource. This resource configuration corresponds to backup config block in system configuration XML (REST endpoint: artifactory/api/system/configuration). Manages the automatic and periodic backups of the entire Artifactory instance.", + Attributes: map[string]schema.Attribute{ + "key": schema.StringAttribute{ + Required: true, + Validators: []validator.String{ + stringvalidator.LengthAtLeast(1), + }, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.RequiresReplace(), + }, + }, + "enabled": schema.BoolAttribute{ + MarkdownDescription: "Flag to enable or disable the backup config. Default value is `true`.", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + }, + "cron_exp": schema.StringAttribute{ + MarkdownDescription: "Cron expression to control the backup frequency.", + Required: true, + Validators: []validator.String{ + validatorfw.IsCron(), + }, + }, + "retention_period_hours": schema.Int64Attribute{ + MarkdownDescription: "The number of hours to keep a backup before Artifactory will clean it up to free up disk space. Applicable only to non-incremental backups. Default value is 168 hours i.e. 7 days.", + Optional: true, + Computed: true, + Default: int64default.StaticInt64(168), + Validators: []validator.Int64{ + int64validator.AtLeast(0), + }, + }, + "excluded_repositories": schema.ListAttribute{ + MarkdownDescription: "List of excluded repositories from the backup. Default is empty list.", + Optional: true, + ElementType: types.StringType, + }, + "create_archive": schema.BoolAttribute{ + MarkdownDescription: "If set to true, backups will be created within a Zip archive (Slow and CPU intensive). Default value is `false`", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(false), + }, + "exclude_new_repositories": schema.BoolAttribute{ + MarkdownDescription: "When set to true, new repositories will not be automatically added to the backup. Default value is `false`.", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(false), + }, + "send_mail_on_error": schema.BoolAttribute{ + MarkdownDescription: "If set to true, all Artifactory administrators will be notified by email if any problem is encountered during backup. Default value is `true`.", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + }, + "verify_disk_space": schema.BoolAttribute{ + MarkdownDescription: "If set, Artifactory will verify that the backup target location has enough disk space available to hold the backed up data. If there is not enough space available, Artifactory will abort the backup and write a message in the log file. Applicable only to non-incremental backups. Default value is `false`.", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(false), + }, + "export_mission_control": schema.BoolAttribute{ + MarkdownDescription: "When set to true, mission control will not be automatically added to the backup. Default value is `false`.", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(false), }, - Description: "List of excluded repositories from the backup. Default is empty list.", - }, - "create_archive": { - Type: schema.TypeBool, - Optional: true, - Default: false, - Description: "If set to true, backups will be created within a Zip archive (Slow and CPU intensive). Default value is 'false'", - }, - "exclude_new_repositories": { - Type: schema.TypeBool, - Optional: true, - Default: false, - Description: "When set to true, new repositories will not be automatically added to the backup. Default value is 'false'.", - }, - "send_mail_on_error": { - Type: schema.TypeBool, - Optional: true, - Default: true, - Description: "If set to true, all Artifactory administrators will be notified by email if any problem is encountered during backup. Default value is 'true'.", - }, - "verify_disk_space": { - Type: schema.TypeBool, - Optional: true, - Default: false, - Description: "If set, Artifactory will verify that the backup target location has enough disk space available to hold the backed up data. If there is not enough space available, Artifactory will abort the backup and write a message in the log file. Applicable only to non-incremental backups.", - }, - "export_mission_control": { - Type: schema.TypeBool, - Optional: true, - Default: false, - Description: "When set to true, mission control will not be automatically added to the backup. Default value is 'false'.", }, } +} + +func (r *BackupResource) Configure(ctx context.Context, req resource.ConfigureRequest, resp *resource.ConfigureResponse) { + // Prevent panic if the provider has not been configured. + if req.ProviderData == nil { + return + } + r.ProviderData = req.ProviderData.(utilsdk.ProvderMetadata) +} + +func (r *BackupResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) { + var data *BackupResourceModel + + // Read Terraform plan data into the model + resp.Diagnostics.Append(req.Plan.Get(ctx, &data)...) + if resp.Diagnostics.HasError() { + return + } + + var backup BackupAPIModel + resp.Diagnostics.Append(data.toAPIModel(ctx, &backup)...) + if resp.Diagnostics.HasError() { + return + } - var unpackBackup = func(s *schema.ResourceData) Backup { - d := &utilsdk.ResourceData{ResourceData: s} - backup := Backup{ - Key: d.GetString("key", false), - Enabled: d.GetBool("enabled", false), - CronExp: d.GetString("cron_exp", false), - RetentionPeriodHours: d.GetInt("retention_period_hours", false), - CreateArchive: d.GetBool("create_archive", false), - ExcludeNewRepositories: d.GetBool("exclude_new_repositories", false), - SendMailOnError: d.GetBool("send_mail_on_error", false), - ExcludedRepositories: d.GetList("excluded_repositories"), - VerifyDiskSpace: d.GetBool("verify_disk_space", false), - ExportMissionControl: d.GetBool("export_mission_control", false), - } - return backup + /* EXPLANATION FOR BELOW CONSTRUCTION USAGE. + + There is a difference in xml structure usage between GET and PATCH calls of API: /artifactory/api/system/configuration. + + GET call structure has "backups -> backup -> Array of backup config blocks". + + PATCH call structure has "backups -> Name/Key of backup that is being patched -> config block of the backup being patched". + + Since the Name/Key is dynamic string, following nested map of string structs are constructed to match the usage of PATCH call. + + See https://www.jfrog.com/confluence/display/JFROG/Artifactory+YAML+Configuration for patching system configuration + using YAML + */ + var constructBody = map[string]map[string]BackupAPIModel{} + constructBody["backups"] = map[string]BackupAPIModel{} + constructBody["backups"][backup.Key] = backup + content, err := yaml.Marshal(&constructBody) + if err != nil { + utilfw.UnableToCreateResourceError(resp, err.Error()) + return } - var resourceBackupRead = func(_ context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - data := &utilsdk.ResourceData{ResourceData: d} - key := data.GetString("key", false) + err = SendConfigurationPatch(content, r.ProviderData) + if err != nil { + utilfw.UnableToCreateResourceError(resp, err.Error()) + return + } + + // Assign the resource ID for the resource in the state + data.Key = types.StringValue(backup.Key) + + // Save data into Terraform state + resp.Diagnostics.Append(resp.State.Set(ctx, &data)...) +} - backups := Backups{} - _, err := m.(utilsdk.ProvderMetadata).Client.R().SetResult(&backups).Get("artifactory/api/system/configuration") - if err != nil { - return diag.Errorf("failed to retrieve data from API: /artifactory/api/system/configuration during Read") - } +func (r *BackupResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) { + var data *BackupResourceModel + // Read Terraform prior state data into the model + resp.Diagnostics.Append(req.State.Get(ctx, &data)...) + if resp.Diagnostics.HasError() { + return + } - matchedBackup := FindConfigurationById[Backup](backups.BackupArr, key) - if matchedBackup == nil { - d.SetId("") - return nil - } + backups := Backups{} + _, err := r.ProviderData.Client.R(). + SetResult(&backups). + Get("artifactory/api/system/configuration") + if err != nil { + utilfw.UnableToRefreshResourceError(resp, "failed to retrieve data from API: /artifactory/api/system/configuration during Read") + return + } - pkr := packer.Default(backupSchema) + matchedBackup := FindConfigurationById[BackupAPIModel](backups.BackupArr, data.Key.ValueString()) + if matchedBackup == nil { + resp.Diagnostics.AddAttributeWarning( + path.Root("key"), + "no matching backup found", + data.Key.ValueString(), + ) + resp.State.RemoveResource(ctx) + return + } - return diag.FromErr(pkr(matchedBackup, d)) + // Convert from the API data model to the Terraform data model + // and refresh any attribute values. + resp.Diagnostics.Append(data.FromAPIModel(ctx, matchedBackup)...) + if resp.Diagnostics.HasError() { + return } - var resourceBackupUpdate = func(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - unpackedBackup := unpackBackup(d) + // Save updated data into Terraform state + resp.Diagnostics.Append(resp.State.Set(ctx, &data)...) +} - /* EXPLANATION FOR BELOW CONSTRUCTION USAGE. +func (r *BackupResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) { + var data *BackupResourceModel - There is a difference in xml structure usage between GET and PATCH calls of API: /artifactory/api/system/configuration. + // Read Terraform plan data into the model + resp.Diagnostics.Append(req.Plan.Get(ctx, &data)...) - GET call structure has "backups -> backup -> Array of backup config blocks". + // Convert from Terraform data model into API data model + var backup BackupAPIModel + resp.Diagnostics.Append(data.toAPIModel(ctx, &backup)...) - PATCH call structure has "backups -> Name/Key of backup that is being patched -> config block of the backup being patched". + /* EXPLANATION FOR BELOW CONSTRUCTION USAGE. - Since the Name/Key is dynamic string, following nested map of string structs are constructed to match the usage of PATCH call. + There is a difference in xml structure usage between GET and PATCH calls of API: /artifactory/api/system/configuration. - See https://www.jfrog.com/confluence/display/JFROG/Artifactory+YAML+Configuration for patching system configuration - using YAML - */ - var constructBody = map[string]map[string]Backup{} - constructBody["backups"] = map[string]Backup{} - constructBody["backups"][unpackedBackup.Key] = unpackedBackup - content, err := yaml.Marshal(&constructBody) + GET call structure has "backups -> backup -> Array of backup config blocks". - if err != nil { - return diag.FromErr(err) - } + PATCH call structure has "backups -> Name/Key of backup that is being patched -> config block of the backup being patched". - err = SendConfigurationPatch(content, m) - if err != nil { - return diag.FromErr(err) - } + Since the Name/Key is dynamic string, following nested map of string structs are constructed to match the usage of PATCH call. - // we should only have one backup config resource, using same id - d.SetId(unpackedBackup.Key) - return resourceBackupRead(ctx, d, m) + See https://www.jfrog.com/confluence/display/JFROG/Artifactory+YAML+Configuration for patching system configuration + using YAML + */ + var constructBody = map[string]map[string]BackupAPIModel{} + constructBody["backups"] = map[string]BackupAPIModel{} + constructBody["backups"][backup.Key] = backup + content, err := yaml.Marshal(&constructBody) + if err != nil { + utilfw.UnableToUpdateResourceError(resp, err.Error()) + return } - var resourceBackupDelete = func(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - rsrcBackup := unpackBackup(d) + err = SendConfigurationPatch(content, r.ProviderData) + if err != nil { + utilfw.UnableToUpdateResourceError(resp, err.Error()) + return + } - deleteBackupConfig := fmt.Sprintf(` -backups: - %s: ~ -`, rsrcBackup.Key) + resp.Diagnostics.Append(data.FromAPIModel(ctx, &backup)...) + if resp.Diagnostics.HasError() { + return + } + + // Save updated data into Terraform state + resp.Diagnostics.Append(resp.State.Set(ctx, &data)...) +} - err := SendConfigurationPatch([]byte(deleteBackupConfig), m) - if err != nil { - return diag.FromErr(err) - } +func (r *BackupResource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) { + var data BackupResourceModel - d.SetId("") - return nil + // Read Terraform prior state data into the model + resp.Diagnostics.Append(req.State.Get(ctx, &data)...) + if resp.Diagnostics.HasError() { + return } - return &schema.Resource{ - UpdateContext: resourceBackupUpdate, - CreateContext: resourceBackupUpdate, - DeleteContext: resourceBackupDelete, - ReadContext: resourceBackupRead, + var backup BackupAPIModel + resp.Diagnostics.Append(data.toAPIModel(ctx, &backup)...) + if resp.Diagnostics.HasError() { + return + } - Importer: &schema.ResourceImporter{ - State: func(d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) { - d.Set("key", d.Id()) - return []*schema.ResourceData{d}, nil - }, - }, + deleteBackupConfig := fmt.Sprintf(` +backups: + %s: ~ +`, backup.Key) - Schema: backupSchema, - Description: "Provides an Artifactory backup config resource. This resource configuration corresponds to backup config block in system configuration XML (REST endpoint: artifactory/api/system/configuration). Manages the automatic and periodic backups of the entire Artifactory instance", + err := SendConfigurationPatch([]byte(deleteBackupConfig), r.ProviderData) + if err != nil { + utilfw.UnableToDeleteResourceError(resp, err.Error()) + return } + + // If the logic reaches here, it implicitly succeeded and will remove + // the resource from state if there are no other errors. +} + +// ImportState imports the resource into the Terraform state. +func (r *BackupResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) { + resource.ImportStatePassthroughID(ctx, path.Root("key"), req, resp) } diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_backup_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_backup_test.go index b12cb6e9..36f4bafa 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_backup_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_backup_test.go @@ -7,13 +7,10 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-shared/validator" - "golang.org/x/text/cases" - "golang.org/x/text/language" ) func TestAccBackup_full(t *testing.T) { @@ -58,9 +55,9 @@ resource "artifactory_backup" "{{ .resourceName }}" { }` resource.Test(t, resource.TestCase{ - PreCheck: func() { acctest.PreCheck(t) }, - ProviderFactories: acctest.ProviderFactories, - CheckDestroy: testAccBackupDestroy(resourceName), + PreCheck: func() { acctest.PreCheck(t) }, + ProtoV5ProviderFactories: acctest.ProtoV5MuxProviderFactories, + CheckDestroy: testAccBackupDestroy(resourceName), Steps: []resource.TestStep{ { @@ -85,9 +82,11 @@ resource "artifactory_backup" "{{ .resourceName }}" { ), }, { - ResourceName: fqrn, - ImportState: true, - ImportStateVerify: true, + ResourceName: fqrn, + ImportStateId: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIdentifierAttribute: "key", }, }, }) @@ -106,8 +105,8 @@ func TestAccBackup_importNotFound(t *testing.T) { } ` resource.Test(t, resource.TestCase{ - PreCheck: func() { acctest.PreCheck(t) }, - ProviderFactories: acctest.ProviderFactories, + PreCheck: func() { acctest.PreCheck(t) }, + ProtoV5ProviderFactories: acctest.ProtoV5MuxProviderFactories, Steps: []resource.TestStep{ { Config: config, @@ -120,7 +119,33 @@ func TestAccBackup_importNotFound(t *testing.T) { }) } -func TestAccCronExpressions(t *testing.T) { +func TestAccBackup_invalid_cron(t *testing.T) { + config := ` + resource "artifactory_backup" "invalid-cron-test" { + key = "invalid-cron-test" + enabled = false + cron_exp = "foo" + retention_period_hours = 1000 + excluded_repositories = [] + create_archive = true + verify_disk_space = true + export_mission_control = true + } + ` + resource.Test(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProtoV5ProviderFactories: acctest.ProtoV5MuxProviderFactories, + Steps: []resource.TestStep{ + { + Config: config, + ResourceName: "artifactory_backup.invalid-cron-test", + ExpectError: regexp.MustCompile("value must match be a valid cron expression"), + }, + }, + }) +} + +func TestAccBackup_CronExpressions(t *testing.T) { cronExpressions := [...]string{ "10/20 15 14 5-10 * ? *", "* 5,7,9 14-16 * * ? *", @@ -133,8 +158,7 @@ func TestAccCronExpressions(t *testing.T) { "0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2002-2010", } for _, cron := range cronExpressions { - title := fmt.Sprintf("TestBackupCronExpression_%s", cases.Title(language.AmericanEnglish).String(cron)) - t.Run(title, func(t *testing.T) { + t.Run(cron, func(t *testing.T) { resource.Test(cronTestCase(cron, t)) }) } @@ -155,9 +179,9 @@ func cronTestCase(cronExpression string, t *testing.T) (*testing.T, resource.Tes }` return t, resource.TestCase{ - PreCheck: func() { acctest.PreCheck(t) }, - ProviderFactories: acctest.ProviderFactories, - CheckDestroy: acctest.VerifyDeleted(fqrn, acctest.CheckRepo), + PreCheck: func() { acctest.PreCheck(t) }, + ProtoV5ProviderFactories: acctest.ProtoV5MuxProviderFactories, + CheckDestroy: acctest.VerifyDeleted(fqrn, acctest.CheckRepo), Steps: []resource.TestStep{ { Config: utilsdk.ExecuteTemplate("backup", BackupTemplateFull, fields), @@ -166,10 +190,11 @@ func cronTestCase(cronExpression string, t *testing.T) (*testing.T, resource.Tes ), }, { - ResourceName: fqrn, - ImportState: true, - ImportStateVerify: true, - ImportStateCheck: validator.CheckImportState("backuptest", "key"), + ResourceName: fqrn, + ImportStateId: "backuptest", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIdentifierAttribute: "key", }, }, } diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_general_security_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_general_security_test.go index fbc07b96..715a9ccd 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_general_security_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_general_security_test.go @@ -6,8 +6,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_test.go index e16b0ee4..b91d2c95 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_test.go @@ -7,8 +7,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" ) diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_v2_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_v2_test.go index 66a69662..299ef0e9 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_v2_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_group_setting_v2_test.go @@ -8,7 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_test.go index 5de68a4f..fb61680e 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_test.go @@ -5,13 +5,13 @@ import ( "regexp" "testing" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" ) func TestAccLdapSetting_full(t *testing.T) { diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_v2_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_v2_test.go index 407efdb8..11c26e2e 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_v2_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_ldap_setting_v2_test.go @@ -8,7 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_oauth_settings_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_oauth_settings_test.go index 886ed7eb..1f642e61 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_oauth_settings_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_oauth_settings_test.go @@ -6,8 +6,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_property_set_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_property_set_test.go index 454b6321..e9924d5b 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_property_set_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_property_set_test.go @@ -7,8 +7,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_proxy_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_proxy_test.go index e810befa..7957dfb3 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_proxy_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_proxy_test.go @@ -7,8 +7,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_repository_layout_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_repository_layout_test.go index a77c09df..86c50cc8 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_repository_layout_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_repository_layout_test.go @@ -7,8 +7,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/configuration/resource_artifactory_saml_settings_test.go b/pkg/artifactory/resource/configuration/resource_artifactory_saml_settings_test.go index 49dbe950..cd8b6210 100644 --- a/pkg/artifactory/resource/configuration/resource_artifactory_saml_settings_test.go +++ b/pkg/artifactory/resource/configuration/resource_artifactory_saml_settings_test.go @@ -6,8 +6,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/configuration" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/configuration" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/replication/replication_test.go b/pkg/artifactory/resource/replication/replication_test.go index 3f2fd114..3ef7acda 100644 --- a/pkg/artifactory/resource/replication/replication_test.go +++ b/pkg/artifactory/resource/replication/replication_test.go @@ -4,8 +4,8 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/replication" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/replication" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication.go b/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication.go index 41bc16be..400dfc72 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/client" "github.com/jfrog/terraform-provider-shared/validator" "golang.org/x/exp/slices" diff --git a/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication_test.go b/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication_test.go index b062dc0a..8a8424c5 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_local_repository_multi_replication_test.go @@ -6,7 +6,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_local_repository_single_replication_test.go b/pkg/artifactory/resource/replication/resource_artifactory_local_repository_single_replication_test.go index bd517ba6..3f1fa9f4 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_local_repository_single_replication_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_local_repository_single_replication_test.go @@ -6,7 +6,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/replication/resource_artifactory_pull_replication_test.go b/pkg/artifactory/resource/replication/resource_artifactory_pull_replication_test.go index 847bc7c9..675bc411 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_pull_replication_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_pull_replication_test.go @@ -6,7 +6,7 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_push_replication.go b/pkg/artifactory/resource/replication/resource_artifactory_push_replication.go index b37c3294..33e957e6 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_push_replication.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_push_replication.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/client" "github.com/jfrog/terraform-provider-shared/validator" "golang.org/x/exp/slices" diff --git a/pkg/artifactory/resource/replication/resource_artifactory_push_replication_test.go b/pkg/artifactory/resource/replication/resource_artifactory_push_replication_test.go index 17788082..6381247d 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_push_replication_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_push_replication_test.go @@ -6,7 +6,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_remote_repository_replication_test.go b/pkg/artifactory/resource/replication/resource_artifactory_remote_repository_replication_test.go index e0755193..c8e0f9b3 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_remote_repository_replication_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_remote_repository_replication_test.go @@ -6,7 +6,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/replication/resource_artifactory_replication_config.go b/pkg/artifactory/resource/replication/resource_artifactory_replication_config.go index ec85bb95..ec90c4de 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_replication_config.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_replication_config.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/validator" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_replication_config_test.go b/pkg/artifactory/resource/replication/resource_artifactory_replication_config_test.go index 1ca06e08..c86709ec 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_replication_config_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_replication_config_test.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config.go b/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config.go index 8184a108..7def7be0 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/client" ) diff --git a/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config_test.go b/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config_test.go index 3194ef0f..28a98557 100644 --- a/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config_test.go +++ b/pkg/artifactory/resource/replication/resource_artifactory_single_replication_config_test.go @@ -8,7 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/conan.go b/pkg/artifactory/resource/repository/conan.go new file mode 100644 index 00000000..b8895f8d --- /dev/null +++ b/pkg/artifactory/resource/repository/conan.go @@ -0,0 +1,19 @@ +package repository + +import "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + +const ConanPackageType = "conan" + +type ConanBaseParams struct { + EnableConanSupport bool `json:"enableConanSupport"` + ForceConanAuthentication bool `json:"forceConanAuthentication"` +} + +var ConanBaseSchema = map[string]*schema.Schema{ + "force_conan_authentication": { + Type: schema.TypeBool, + Optional: true, + Default: false, + Description: "Force basic authentication credentials in order to use this repository. Default value is 'false'.", + }, +} diff --git a/pkg/artifactory/resource/repository/federated/federated.go b/pkg/artifactory/resource/repository/federated/federated.go index f63b8180..95022b0f 100644 --- a/pkg/artifactory/resource/repository/federated/federated.go +++ b/pkg/artifactory/resource/repository/federated/federated.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/client" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/unpacker" @@ -25,7 +25,6 @@ var PackageTypesLikeGeneric = []string{ "chef", "cocoapods", "composer", - "conan", "conda", "cran", "gems", @@ -129,6 +128,7 @@ func PackMembers(members []Member, d *schema.ResourceData) error { return nil } + func deleteRepo(_ context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { // For federated repositories we delete all the federated members (except the initial repo member), if the flag `cleanup_on_delete` is set to `true` s := &utilsdk.ResourceData{ResourceData: d} diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_alpine_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_alpine_repository.go index 85ef550e..4c8ee854 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_alpine_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_alpine_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_cargo_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_cargo_repository.go index 3d70b6e4..5ad97c7b 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_cargo_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_cargo_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_conan_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_conan_repository.go new file mode 100644 index 00000000..63e80171 --- /dev/null +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_conan_repository.go @@ -0,0 +1,70 @@ +package federated + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-shared/packer" + "github.com/jfrog/terraform-provider-shared/predicate" + utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" +) + +type ConanRepositoryParams struct { + local.ConanRepoParams + Members []Member `hcl:"member" json:"members"` +} + +func ResourceArtifactoryFederatedConanRepository() *schema.Resource { + conanSchema := utilsdk.MergeMaps( + local.ConanSchema, + memberSchema, + repository.RepoLayoutRefSchema(rclass, repository.ConanPackageType), + ) + + var unpackConanRepository = func(data *schema.ResourceData) (interface{}, string, error) { + d := &utilsdk.ResourceData{ResourceData: data} + repo := ConanRepositoryParams{ + ConanRepoParams: local.ConanRepoParams{ + RepositoryBaseParams: local.UnpackBaseRepo(rclass, data, repository.ConanPackageType), + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + ForceConanAuthentication: d.GetBool("force_conan_authentication", false), + }, + }, + Members: unpackMembers(data), + } + return repo, repo.Id(), nil + } + + var packConanMembers = func(repo interface{}, d *schema.ResourceData) error { + repo.(*ConanRepositoryParams).EnableConanSupport = true + members := repo.(*ConanRepositoryParams).Members + return PackMembers(members, d) + } + + pkr := packer.Compose( + packer.Universal( + predicate.All( + predicate.NoClass, + predicate.Ignore("member", "terraform_type", "enable_conan_support"), + ), + ), + packConanMembers, + ) + + constructor := func() (interface{}, error) { + return &ConanRepositoryParams{ + ConanRepoParams: local.ConanRepoParams{ + RepositoryBaseParams: local.RepositoryBaseParams{ + PackageType: repository.ConanPackageType, + Rclass: rclass, + }, + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + }, + }, + }, nil + } + + return mkResourceSchema(conanSchema, pkr, unpackConanRepository, constructor) +} diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_debian_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_debian_repository.go index e3f08399..29affb3c 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_debian_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_debian_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_docker_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_docker_repository.go index aa618d8a..7cea94cc 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_docker_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_docker_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_generic_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_generic_repository.go index b85d720d..29bfe64e 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_generic_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_generic_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_java_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_java_repository.go index 2afe4075..7c799639 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_java_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_java_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_nuget_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_nuget_repository.go index a7d54033..258ee5fa 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_nuget_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_nuget_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_repository_test.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_repository_test.go index cc5c637c..47148ee0 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_repository_test.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_repository_test.go @@ -11,11 +11,11 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/federated" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/federated" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" @@ -450,6 +450,72 @@ func TestAccFederatedCargoRepository(t *testing.T) { }) } +func TestAccFederatedConanRepository(t *testing.T) { + _, fqrn, name := testutil.MkNames("conan-federated", "artifactory_federated_conan_repository") + federatedMemberUrl := fmt.Sprintf("%s/artifactory/%s", acctest.GetArtifactoryUrl(t), name) + forceConanAuthentication := testutil.RandBool() + + params := map[string]interface{}{ + "force_conan_authentication": forceConanAuthentication, + "name": name, + "memberUrl": federatedMemberUrl, + } + + template := ` + resource "artifactory_federated_conan_repository" "{{ .name }}" { + key = "{{ .name }}" + force_conan_authentication = {{ .force_conan_authentication }} + + member { + url = "{{ .memberUrl }}" + enabled = true + } + } + ` + federatedRepositoryBasic := utilsdk.ExecuteTemplate("TestAccFederatedConanRepository", template, params) + + federatedRepositoryUpdated := utilsdk.ExecuteTemplate( + "TestAccFederatedCargoRepository", + template, + map[string]interface{}{ + "force_conan_authentication": !forceConanAuthentication, + "name": name, + "memberUrl": federatedMemberUrl, + }, + ) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProviderFactories: acctest.ProviderFactories, + CheckDestroy: acctest.VerifyDeleted(fqrn, acctest.CheckRepo), + Steps: []resource.TestStep{ + { + Config: federatedRepositoryBasic, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(fqrn, "key", name), + resource.TestCheckResourceAttr(fqrn, "force_conan_authentication", fmt.Sprintf("%t", forceConanAuthentication)), + resource.TestCheckResourceAttr(fqrn, "repo_layout_ref", func() string { r, _ := repository.GetDefaultRepoLayoutRef("federated", "conan")(); return r.(string) }()), //Check to ensure repository layout is set as per default even when it is not passed. + ), + }, + { + Config: federatedRepositoryUpdated, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(fqrn, "key", name), + resource.TestCheckResourceAttr(fqrn, "force_conan_authentication", fmt.Sprintf("%t", !forceConanAuthentication)), + resource.TestCheckResourceAttr(fqrn, "repo_layout_ref", func() string { r, _ := repository.GetDefaultRepoLayoutRef("federated", "conan")(); return r.(string) }()), //Check to ensure repository layout is set as per default even when it is not passed. + ), + }, + { + ResourceName: fqrn, + ImportState: true, + ImportStateVerify: true, + ImportStateCheck: validator.CheckImportState(name, "key"), + ImportStateVerifyIgnore: []string{"cleanup_on_delete"}, + }, + }, + }) +} + func TestAccFederatedDebianRepository(t *testing.T) { _, fqrn, name := testutil.MkNames("debian-federated", "artifactory_federated_debian_repository") kpId, kpFqrn, kpName := testutil.MkNames("some-keypair1", "artifactory_keypair") diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_rpm_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_rpm_repository.go index 1292f0e8..c12ca3ca 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_rpm_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_rpm_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_terraform_repository.go b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_terraform_repository.go index da667220..b19028ad 100644 --- a/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_terraform_repository.go +++ b/pkg/artifactory/resource/repository/federated/resource_artifactory_federated_terraform_repository.go @@ -2,8 +2,8 @@ package federated import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/local/local.go b/pkg/artifactory/resource/repository/local/local.go index 4f0fd0d4..5afe304e 100644 --- a/pkg/artifactory/resource/repository/local/local.go +++ b/pkg/artifactory/resource/repository/local/local.go @@ -4,7 +4,7 @@ import ( "strings" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) @@ -15,7 +15,6 @@ var PackageTypesLikeGeneric = []string{ "chef", "cocoapods", "composer", - "conan", "conda", "cran", "gems", diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_alpine_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_alpine_repository.go index c014a336..4074a5b1 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_alpine_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_alpine_repository.go @@ -2,7 +2,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_cargo_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_cargo_repository.go index 700079cb..f99c818c 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_cargo_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_cargo_repository.go @@ -2,7 +2,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_conan_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_conan_repository.go new file mode 100644 index 00000000..058ef242 --- /dev/null +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_conan_repository.go @@ -0,0 +1,53 @@ +package local + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-shared/packer" + utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" +) + +var ConanSchema = utilsdk.MergeMaps( + BaseLocalRepoSchema, + repository.ConanBaseSchema, + repository.RepoLayoutRefSchema(rclass, repository.ConanPackageType), +) + +type ConanRepoParams struct { + RepositoryBaseParams + repository.ConanBaseParams +} + +func UnpackConnanRepository(data *schema.ResourceData) (interface{}, string, error) { + d := &utilsdk.ResourceData{ResourceData: data} + repo := ConanRepoParams{ + RepositoryBaseParams: UnpackBaseRepo(rclass, data, repository.ConanPackageType), + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + ForceConanAuthentication: d.GetBool("force_conan_authentication", false), + }, + } + return repo, repo.Id(), nil +} + +func ResourceArtifactoryLocalConanRepository() *schema.Resource { + + constructor := func() (interface{}, error) { + return &ConanRepoParams{ + RepositoryBaseParams: RepositoryBaseParams{ + PackageType: repository.ConanPackageType, + Rclass: rclass, + }, + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + }, + }, nil + } + + return repository.MkResourceSchema( + ConanSchema, + packer.Default(ConanSchema), + UnpackConnanRepository, + constructor, + ) +} diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_debian_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_debian_repository.go index ffc25905..c893fe96 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_debian_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_debian_repository.go @@ -2,7 +2,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_docker_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_docker_repository.go index 73dff54e..cebfc314 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_docker_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_docker_repository.go @@ -3,7 +3,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_generic_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_generic_repository.go index ed1ee341..b8fb8cda 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_generic_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_generic_repository.go @@ -2,7 +2,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_java_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_java_repository.go index b733030a..9937ea7e 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_java_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_java_repository.go @@ -3,7 +3,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_nuget_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_nuget_repository.go index f9a42dbb..8021f408 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_nuget_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_nuget_repository.go @@ -2,7 +2,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_repository_test.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_repository_test.go index fdda4ccc..1062ec35 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_repository_test.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_repository_test.go @@ -10,10 +10,10 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/local" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/local" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" @@ -1076,3 +1076,39 @@ func TestAccLocalCargoRepository(t *testing.T) { }, }) } + +func TestAccLocalConanRepository(t *testing.T) { + _, fqrn, name := testutil.MkNames("conan-local", "artifactory_local_conan_repository") + params := map[string]interface{}{ + "force_conan_authentication": testutil.RandBool(), + "name": name, + } + localRepositoryBasic := utilsdk.ExecuteTemplate("TestAccLocalConanRepository", ` + resource "artifactory_local_conan_repository" "{{ .name }}" { + key = "{{ .name }}" + force_conan_authentication = {{ .force_conan_authentication }} + } + `, params) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProviderFactories: acctest.ProviderFactories, + CheckDestroy: acctest.VerifyDeleted(fqrn, acctest.CheckRepo), + Steps: []resource.TestStep{ + { + Config: localRepositoryBasic, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(fqrn, "key", name), + resource.TestCheckResourceAttr(fqrn, "force_conan_authentication", fmt.Sprintf("%t", params["force_conan_authentication"])), + resource.TestCheckResourceAttr(fqrn, "repo_layout_ref", func() string { r, _ := repository.GetDefaultRepoLayoutRef("local", "conan")(); return r.(string) }()), //Check to ensure repository layout is set as per default even when it is not passed. + ), + }, + { + ResourceName: fqrn, + ImportState: true, + ImportStateVerify: true, + ImportStateCheck: validator.CheckImportState(name, "key"), + }, + }, + }) +} diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_rpm_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_rpm_repository.go index 5c41d472..8cb1846d 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_rpm_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_rpm_repository.go @@ -3,7 +3,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/repository/local/resource_artifactory_local_terraform_repository.go b/pkg/artifactory/resource/repository/local/resource_artifactory_local_terraform_repository.go index 213fbdab..a4232779 100644 --- a/pkg/artifactory/resource/repository/local/resource_artifactory_local_terraform_repository.go +++ b/pkg/artifactory/resource/repository/local/resource_artifactory_local_terraform_repository.go @@ -2,7 +2,7 @@ package local import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/remote.go b/pkg/artifactory/resource/repository/remote/remote.go index 6f87207f..a6308c79 100644 --- a/pkg/artifactory/resource/repository/remote/remote.go +++ b/pkg/artifactory/resource/repository/remote/remote.go @@ -7,7 +7,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/unpacker" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_bower_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_bower_repository.go index c47234ae..f5816853 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_bower_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_bower_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cargo_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cargo_repository.go index 3b3d8ffa..0f5bd21e 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cargo_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cargo_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cocoapods_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cocoapods_repository.go index f287ecf2..d851733b 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cocoapods_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_cocoapods_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_composer_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_composer_repository.go index 5e3e52a4..f6ae2858 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_composer_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_composer_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_conan_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_conan_repository.go index 38c1209d..3b35c2e0 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_conan_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_conan_repository.go @@ -2,59 +2,61 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) -type ConanRemoteRepo struct { +type ConanRepo struct { RepositoryRemoteBaseParams - ForceConanAuthentication bool `json:"forceConanAuthentication"` + repository.ConanBaseParams } -const ConanPackageType = "conan" - -var ConanRemoteSchema = func(isResource bool) map[string]*schema.Schema { +var ConanSchema = func(isResource bool) map[string]*schema.Schema { return utilsdk.MergeMaps( BaseRemoteRepoSchema(isResource), - map[string]*schema.Schema{ - "force_conan_authentication": { - Type: schema.TypeBool, - Optional: true, - Default: false, - Description: `Force basic authentication credentials in order to use this repository. Default value is 'false'.`, - }, - }, - repository.RepoLayoutRefSchema(rclass, ConanPackageType), + repository.ConanBaseSchema, + repository.RepoLayoutRefSchema(rclass, repository.ConanPackageType), ) } func ResourceArtifactoryRemoteConanRepository() *schema.Resource { - var unpackConanRemoteRepo = func(s *schema.ResourceData) (interface{}, string, error) { + var unpackConanRepo = func(s *schema.ResourceData) (interface{}, string, error) { d := &utilsdk.ResourceData{ResourceData: s} - repo := ConanRemoteRepo{ - RepositoryRemoteBaseParams: UnpackBaseRemoteRepo(s, ConanPackageType), - ForceConanAuthentication: d.GetBool("force_conan_authentication", false), + repo := ConanRepo{ + RepositoryRemoteBaseParams: UnpackBaseRemoteRepo(s, repository.ConanPackageType), + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + ForceConanAuthentication: d.GetBool("force_conan_authentication", false), + }, } return repo, repo.Id(), nil } constructor := func() (interface{}, error) { - repoLayout, err := repository.GetDefaultRepoLayoutRef(rclass, ConanPackageType)() + repoLayout, err := repository.GetDefaultRepoLayoutRef(rclass, repository.ConanPackageType)() if err != nil { return nil, err } - return &ConanRemoteRepo{ + return &ConanRepo{ RepositoryRemoteBaseParams: RepositoryRemoteBaseParams{ Rclass: rclass, - PackageType: ConanPackageType, + PackageType: repository.ConanPackageType, RepoLayoutRef: repoLayout.(string), }, + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + }, }, nil } - conanSchema := ConanRemoteSchema(true) + conanSchema := ConanSchema(true) - return mkResourceSchema(conanSchema, packer.Default(conanSchema), unpackConanRemoteRepo, constructor) + return mkResourceSchema( + conanSchema, + packer.Default(conanSchema), + unpackConanRepo, + constructor, + ) } diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_docker_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_docker_repository.go index 273ec3ec..69bc7d81 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_docker_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_docker_repository.go @@ -2,7 +2,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_generic_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_generic_repository.go index 48035af3..051c257a 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_generic_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_generic_repository.go @@ -2,7 +2,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_go_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_go_repository.go index 17c4d2cd..69c199c4 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_go_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_go_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_helm_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_helm_repository.go index 0a00f9ab..e02ca1f7 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_helm_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_helm_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/predicate" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_maven_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_maven_repository.go index 9eb69909..6c49ead7 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_maven_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_maven_repository.go @@ -5,7 +5,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" "github.com/jfrog/terraform-provider-shared/unpacker" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_nuget_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_nuget_repository.go index ec3dc774..ffd48f98 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_nuget_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_nuget_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_pypi_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_pypi_repository.go index 8083be47..4fb08525 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_pypi_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_pypi_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_repository_test.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_repository_test.go index b9e2a17e..40a9b517 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_repository_test.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_repository_test.go @@ -12,10 +12,10 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/remote" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/remote" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/client" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_terraform_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_terraform_repository.go index 0b081f8b..628950c0 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_terraform_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_terraform_repository.go @@ -3,7 +3,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_vcs_repository.go b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_vcs_repository.go index b6d83f88..2314d0bd 100644 --- a/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_vcs_repository.go +++ b/pkg/artifactory/resource/repository/remote/resource_artifactory_remote_vcs_repository.go @@ -2,7 +2,7 @@ package remote import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/repository.go b/pkg/artifactory/resource/repository/repository.go index b3bd241c..9b188a56 100644 --- a/pkg/artifactory/resource/repository/repository.go +++ b/pkg/artifactory/resource/repository/repository.go @@ -39,7 +39,7 @@ var BaseRepoSchema = map[string]*schema.Schema{ "project_environments": { Type: schema.TypeSet, Elem: &schema.Schema{Type: schema.TypeString}, - MinItems: 1, + MinItems: 0, MaxItems: 2, Set: schema.HashString, Optional: true, @@ -300,7 +300,7 @@ func RepoLayoutRefSchema(repositoryType string, packageType string) map[string]* Type: schema.TypeString, Optional: true, DefaultFunc: GetDefaultRepoLayoutRef(repositoryType, packageType), - Description: "Repository layout key for the local repository", + Description: fmt.Sprintf("Repository layout key for the %s repository", repositoryType), }, } } @@ -415,11 +415,11 @@ type SupportedRepoClasses struct { } // GetDefaultRepoLayoutRef return the default repo layout by Repository Type & Package Type -func GetDefaultRepoLayoutRef(repositoryType string, packageType string) func() (interface{}, error) { +func GetDefaultRepoLayoutRef(repositoryType, packageType string) func() (interface{}, error) { return func() (interface{}, error) { if v, ok := defaultRepoLayoutMap[packageType].SupportedRepoTypes[repositoryType]; ok && v { return defaultRepoLayoutMap[packageType].RepoLayoutRef, nil } - return "", fmt.Errorf("default repo layout not found for repository type %v & package type %v", repositoryType, packageType) + return nil, fmt.Errorf("default repo layout not found for repository type %s & package type %s", repositoryType, packageType) } } diff --git a/pkg/artifactory/resource/repository/repository_test.go b/pkg/artifactory/resource/repository/repository_test.go index 9100d1fd..10f6e112 100644 --- a/pkg/artifactory/resource/repository/repository_test.go +++ b/pkg/artifactory/resource/repository/repository_test.go @@ -9,8 +9,8 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_alpine_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_alpine_repository.go index 7b95ba54..cd93eb1d 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_alpine_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_alpine_repository.go @@ -3,7 +3,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_bower_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_bower_repository.go index 419852d1..d3c3b7d1 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_bower_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_bower_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_conan_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_conan_repository.go new file mode 100644 index 00000000..ee12199d --- /dev/null +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_conan_repository.go @@ -0,0 +1,55 @@ +package virtual + +import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-shared/packer" + utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" +) + +var ConanSchema = utilsdk.MergeMaps( + BaseVirtualRepoSchema, + RetrievalCachePeriodSecondsSchema, + repository.ConanBaseSchema, + repository.RepoLayoutRefSchema(Rclass, repository.ConanPackageType), +) + +type ConanRepoParams struct { + RepositoryBaseParamsWithRetrievalCachePeriodSecs + repository.ConanBaseParams +} + +func ResourceArtifactoryVirtualConanRepository() *schema.Resource { + var unpackConanRepository = func(s *schema.ResourceData) (interface{}, string, error) { + d := &utilsdk.ResourceData{ResourceData: s} + repo := ConanRepoParams{ + RepositoryBaseParamsWithRetrievalCachePeriodSecs: UnpackBaseVirtRepoWithRetrievalCachePeriodSecs(s, repository.ConanPackageType), + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + ForceConanAuthentication: d.GetBool("force_conan_authentication", false), + }, + } + return repo, repo.Id(), nil + } + + constructor := func() (interface{}, error) { + return &ConanRepoParams{ + RepositoryBaseParamsWithRetrievalCachePeriodSecs: RepositoryBaseParamsWithRetrievalCachePeriodSecs{ + RepositoryBaseParams: RepositoryBaseParams{ + Rclass: Rclass, + PackageType: repository.ConanPackageType, + }, + }, + ConanBaseParams: repository.ConanBaseParams{ + EnableConanSupport: true, + }, + }, nil + } + + return repository.MkResourceSchema( + ConanSchema, + packer.Default(ConanSchema), + unpackConanRepository, + constructor, + ) +} diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_debian_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_debian_repository.go index 251a8eca..4c35bcf2 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_debian_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_debian_repository.go @@ -5,7 +5,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_docker_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_docker_repository.go index 81a06add..c81de066 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_docker_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_docker_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_generic_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_generic_repository.go index ad6b15da..9697fc0d 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_generic_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_generic_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_go_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_go_repository.go index 221649a3..61878bfe 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_go_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_go_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_helm_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_helm_repository.go index f0ff5faa..037b4d9e 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_helm_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_helm_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_java_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_java_repository.go index 7e2f171c..cd2a9a78 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_java_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_java_repository.go @@ -3,7 +3,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_npm_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_npm_repository.go index 2c9521da..b4ddc942 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_npm_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_npm_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_nuget_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_nuget_repository.go index 4496d11a..9e153e19 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_nuget_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_nuget_repository.go @@ -2,7 +2,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_repository_test.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_repository_test.go index dc69549b..095d78d9 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_repository_test.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_repository_test.go @@ -10,10 +10,10 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository/virtual" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository/virtual" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" @@ -844,6 +844,14 @@ func TestAccVirtualAlpineRepositoryZeroRetrievalPeriod(t *testing.T) { })) } +func TestAccVirtualConanRepository(t *testing.T) { + resource.Test(mkNewVirtualTestCase("conan", t, map[string]interface{}{ + "description": "conan virtual repository public description testing.", + "retrieval_cache_period_seconds": 650, + "force_conan_authentication": true, + })) +} + func TestAccVirtualNugetRepository(t *testing.T) { resource.Test(mkNewVirtualTestCase("nuget", t, map[string]interface{}{ "description": "nuget virtual repository public description testing.", diff --git a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_rpm_repository.go b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_rpm_repository.go index 452429e6..662af135 100644 --- a/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_rpm_repository.go +++ b/pkg/artifactory/resource/repository/virtual/resource_artifactory_virtual_rpm_repository.go @@ -3,7 +3,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" "github.com/jfrog/terraform-provider-shared/packer" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/repository/virtual/virtual.go b/pkg/artifactory/resource/repository/virtual/virtual.go index 48cf3341..bd76c10a 100644 --- a/pkg/artifactory/resource/repository/virtual/virtual.go +++ b/pkg/artifactory/resource/repository/virtual/virtual.go @@ -3,7 +3,7 @@ package virtual import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/repository" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/repository" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) @@ -49,7 +49,6 @@ var PackageTypesLikeGeneric = []string{ var PackageTypesLikeGenericWithRetrievalCachePeriodSecs = []string{ "chef", - "conan", "conda", "cran", } diff --git a/pkg/artifactory/resource/security/resource_artifactory_access_token_test.go b/pkg/artifactory/resource/security/resource_artifactory_access_token_test.go index 693e1007..3f2e86c1 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_access_token_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_access_token_test.go @@ -9,8 +9,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/client" ) diff --git a/pkg/artifactory/resource/security/resource_artifactory_api_key_test.go b/pkg/artifactory/resource/security/resource_artifactory_api_key_test.go index f08f3542..384f88c8 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_api_key_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_api_key_test.go @@ -6,8 +6,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/security/resource_artifactory_certificate_test.go b/pkg/artifactory/resource/security/resource_artifactory_certificate_test.go index 6c93e1fc..0b6762b5 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_certificate_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_certificate_test.go @@ -8,8 +8,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" "github.com/jfrog/terraform-provider-shared/validator" ) diff --git a/pkg/artifactory/resource/security/resource_artifactory_distribution_public_key_test.go b/pkg/artifactory/resource/security/resource_artifactory_distribution_public_key_test.go index 3d04e0a2..6fb4cb67 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_distribution_public_key_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_distribution_public_key_test.go @@ -7,8 +7,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/security/resource_artifactory_global_environment_test.go b/pkg/artifactory/resource/security/resource_artifactory_global_environment_test.go index 8f269d95..6367bc99 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_global_environment_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_global_environment_test.go @@ -7,8 +7,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/security/resource_artifactory_group_test.go b/pkg/artifactory/resource/security/resource_artifactory_group_test.go index ac4af7f7..56dc3a65 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_group_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_group_test.go @@ -8,8 +8,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/security/resource_artifactory_keypair_test.go b/pkg/artifactory/resource/security/resource_artifactory_keypair_test.go index 43cc6cfa..03891305 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_keypair_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_keypair_test.go @@ -6,8 +6,8 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/security/resource_artifactory_permission_target.go b/pkg/artifactory/resource/security/resource_artifactory_permission_target.go index 3027d848..d164e58e 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_permission_target.go +++ b/pkg/artifactory/resource/security/resource_artifactory_permission_target.go @@ -4,7 +4,6 @@ import ( "context" "net/http" - // "github.com/hashicorp/terraform-plugin-framework-validators/objectvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" "github.com/hashicorp/terraform-plugin-framework/attr" "github.com/hashicorp/terraform-plugin-framework/diag" @@ -471,6 +470,9 @@ func (r *PermissionTargetResource) Delete(ctx context.Context, req resource.Dele // Read Terraform prior state data into the model resp.Diagnostics.Append(req.State.Get(ctx, &data)...) + if resp.Diagnostics.HasError() { + return + } response, err := r.ProviderData.Client.R(). Delete(PermissionsEndPoint + data.Id.ValueString()) diff --git a/pkg/artifactory/resource/security/resource_artifactory_permission_target_test.go b/pkg/artifactory/resource/security/resource_artifactory_permission_target_test.go index 36f35550..82094346 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_permission_target_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_permission_target_test.go @@ -9,8 +9,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/security/resource_artifactory_scoped_token_test.go b/pkg/artifactory/resource/security/resource_artifactory_scoped_token_test.go index 4f656bfe..eb879b5d 100644 --- a/pkg/artifactory/resource/security/resource_artifactory_scoped_token_test.go +++ b/pkg/artifactory/resource/security/resource_artifactory_scoped_token_test.go @@ -7,8 +7,8 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/security" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/security" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" ) diff --git a/pkg/artifactory/resource/user/resource_artifactory_anonymous_user_test.go b/pkg/artifactory/resource/user/resource_artifactory_anonymous_user_test.go index 59fb4bdf..efc25978 100644 --- a/pkg/artifactory/resource/user/resource_artifactory_anonymous_user_test.go +++ b/pkg/artifactory/resource/user/resource_artifactory_anonymous_user_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/validator" ) diff --git a/pkg/artifactory/resource/user/resource_artifactory_managed_user_test.go b/pkg/artifactory/resource/user/resource_artifactory_managed_user_test.go index f8e2b09b..32442d7d 100644 --- a/pkg/artifactory/resource/user/resource_artifactory_managed_user_test.go +++ b/pkg/artifactory/resource/user/resource_artifactory_managed_user_test.go @@ -8,8 +8,8 @@ import ( "github.com/hashicorp/terraform-plugin-framework/providerserver" "github.com/hashicorp/terraform-plugin-go/tfprotov5" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/provider" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/provider" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/user/resource_artifactory_unmanaged_user_test.go b/pkg/artifactory/resource/user/resource_artifactory_unmanaged_user_test.go index ac72027e..a7f320e2 100644 --- a/pkg/artifactory/resource/user/resource_artifactory_unmanaged_user_test.go +++ b/pkg/artifactory/resource/user/resource_artifactory_unmanaged_user_test.go @@ -8,7 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/user/resource_artifactory_user_test.go b/pkg/artifactory/resource/user/resource_artifactory_user_test.go index 88460f83..722927fc 100644 --- a/pkg/artifactory/resource/user/resource_artifactory_user_test.go +++ b/pkg/artifactory/resource/user/resource_artifactory_user_test.go @@ -8,7 +8,7 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk" "github.com/jfrog/terraform-provider-shared/validator" diff --git a/pkg/artifactory/resource/webhook/resource_artifactory_webhook_test.go b/pkg/artifactory/resource/webhook/resource_artifactory_webhook_test.go index 31790fb1..653b93cd 100644 --- a/pkg/artifactory/resource/webhook/resource_artifactory_webhook_test.go +++ b/pkg/artifactory/resource/webhook/resource_artifactory_webhook_test.go @@ -10,8 +10,8 @@ import ( "github.com/go-resty/resty/v2" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/acctest" - "github.com/jfrog/terraform-provider-artifactory/v8/pkg/artifactory/resource/webhook" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/acctest" + "github.com/jfrog/terraform-provider-artifactory/v9/pkg/artifactory/resource/webhook" "github.com/jfrog/terraform-provider-shared/client" "github.com/jfrog/terraform-provider-shared/testutil" utilsdk "github.com/jfrog/terraform-provider-shared/util/sdk"