From a81140d98db79a377255d15752507f4df5767b22 Mon Sep 17 00:00:00 2001 From: nevenr Date: Tue, 7 Nov 2023 19:26:01 +0100 Subject: [PATCH] Add support for Terraform package type #354 - Changes based on PR #380 feedback --- .../settings/TerraformRepositorySettings.java | 10 ++-- ...TerraformPackageTypeRepositoryTests.groovy | 56 +++++++++---------- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/api/src/main/java/org/jfrog/artifactory/client/model/repository/settings/TerraformRepositorySettings.java b/api/src/main/java/org/jfrog/artifactory/client/model/repository/settings/TerraformRepositorySettings.java index 3660f01a..74e82b2b 100644 --- a/api/src/main/java/org/jfrog/artifactory/client/model/repository/settings/TerraformRepositorySettings.java +++ b/api/src/main/java/org/jfrog/artifactory/client/model/repository/settings/TerraformRepositorySettings.java @@ -1,22 +1,22 @@ package org.jfrog.artifactory.client.model.repository.settings; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsGitProvider; import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsType; +@JsonIgnoreProperties(ignoreUnknown = true) public interface TerraformRepositorySettings extends RepositorySettings{ - // local and federated settings + // Local and federated settings enum TerraformType { module, provider } - // local and federated settings TerraformType getTerraformType(); - // remote settings - - // url is already declared in RemoteRepo + // Remote settings + // Url is already declared in RemoteRepo VcsType getVcsType(); diff --git a/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy b/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy index 3b49b3ea..1072b295 100644 --- a/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy +++ b/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy @@ -19,38 +19,36 @@ class TerraformPackageTypeRepositoryTests extends BaseRepositoryTests { @Override RepositorySettings getRepositorySettings(RepositoryType repositoryType) { - - if (repositoryType == RepositoryTypeImpl.REMOTE) { - def settings = new TerraformRepositorySettingsImpl() - settings.with { - repoLayout = defaultLayout - vcsType = VcsType.GIT - vcsGitProvider = VcsGitProvider.GITHUB - terraformRegistryUrl = "https://registry.terraform.io" - terraformProvidersUrl = "https://releases.hashicorp.com" - remoteRepoLayoutRef = defaultLayout - } - return settings - } - - if (repositoryType == RepositoryTypeImpl.VIRTUAL) { - def settings = new TerraformRepositorySettingsImpl() - settings.with { - repoLayout = moduleLayout - } - return settings + def settings = new TerraformRepositorySettingsImpl() + + switch (repositoryType) { + case RepositoryTypeImpl.REMOTE: + settings.with { + repoLayout = defaultLayout + vcsType = VcsType.GIT + vcsGitProvider = VcsGitProvider.GITHUB + terraformRegistryUrl = "https://registry.terraform.io" + terraformProvidersUrl = "https://releases.hashicorp.com" + remoteRepoLayoutRef = defaultLayout + } + break + case RepositoryTypeImpl.VIRTUAL: + settings.with { + repoLayout = moduleLayout + } + break + case RepositoryTypeImpl.FEDERATED: + settings.with { + terraformType = TerraformRepositorySettings.TerraformType.module + repoLayout = moduleLayout + } + break + default: + settings = null } - if (repositoryType == RepositoryTypeImpl.FEDERATED) { - def settings = new TerraformRepositorySettingsImpl() - settings.with { - terraformType = TerraformRepositorySettings.TerraformType.module - repoLayout = moduleLayout - } - return settings - } + return settings - return null } @BeforeMethod