From ab6cfda57a35b68ed203cdbfa44ae621c7505fcf Mon Sep 17 00:00:00 2001 From: nevenr Date: Wed, 27 Sep 2023 20:46:54 +0200 Subject: [PATCH 1/3] Add support for Terraform package type #354 --- .../settings/TerraformRepositorySettings.java | 31 ++++ .../impl/jackson/RepositorySettingsMixIn.java | 3 +- .../impl/FederatedRepositoryBuilderImpl.java | 2 +- .../impl/LocalRepositoryBuilderImpl.java | 2 +- .../client/model/impl/PackageTypeImpl.java | 3 +- .../impl/RemoteRepositoryBuilderImpl.java | 2 +- .../impl/VirtualRepositoryBuilderImpl.java | 2 +- .../impl/TerraformRepositorySettingsImpl.java | 84 +++++++++ .../client/BaseRepositoryTests.groovy | 10 +- ...TerraformPackageTypeRepositoryTests.groovy | 159 ++++++++++++++++++ 10 files changed, 287 insertions(+), 11 deletions(-) create mode 100644 api/src/main/java/org/jfrog/artifactory/client/model/repository/settings/TerraformRepositorySettings.java create mode 100644 services/src/main/java/org/jfrog/artifactory/client/model/repository/settings/impl/TerraformRepositorySettingsImpl.java create mode 100644 services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy 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 new file mode 100644 index 00000000..3660f01a --- /dev/null +++ b/api/src/main/java/org/jfrog/artifactory/client/model/repository/settings/TerraformRepositorySettings.java @@ -0,0 +1,31 @@ +package org.jfrog.artifactory.client.model.repository.settings; + +import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsGitProvider; +import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsType; + +public interface TerraformRepositorySettings extends RepositorySettings{ + + // local and federated settings + enum TerraformType { + module, + provider + } + + // local and federated settings + TerraformType getTerraformType(); + + // remote settings + + // url is already declared in RemoteRepo + + VcsType getVcsType(); + + VcsGitProvider getVcsGitProvider(); + + String getTerraformRegistryUrl(); + + String getTerraformProvidersUrl(); + + String getRemoteRepoLayoutRef(); + +} diff --git a/services/src/main/java/org/jfrog/artifactory/client/impl/jackson/RepositorySettingsMixIn.java b/services/src/main/java/org/jfrog/artifactory/client/impl/jackson/RepositorySettingsMixIn.java index 2d21e320..7439f7e9 100644 --- a/services/src/main/java/org/jfrog/artifactory/client/impl/jackson/RepositorySettingsMixIn.java +++ b/services/src/main/java/org/jfrog/artifactory/client/impl/jackson/RepositorySettingsMixIn.java @@ -42,7 +42,8 @@ @JsonSubTypes.Type(value = PuppetRepositorySettingsImpl.class, name = "puppet"), @JsonSubTypes.Type(value = HelmRepositorySettingsImpl.class, name = "helm"), @JsonSubTypes.Type(value = GoRepositorySettingsImpl.class, name = "go"), - @JsonSubTypes.Type(value = CargoRepositorySettingsImpl.class, name = "cargo") + @JsonSubTypes.Type(value = CargoRepositorySettingsImpl.class, name = "cargo"), + @JsonSubTypes.Type(value = TerraformRepositorySettingsImpl.class, name = "terraform") }) public abstract class RepositorySettingsMixIn { diff --git a/services/src/main/java/org/jfrog/artifactory/client/model/impl/FederatedRepositoryBuilderImpl.java b/services/src/main/java/org/jfrog/artifactory/client/model/impl/FederatedRepositoryBuilderImpl.java index e807a15d..9e25dac5 100644 --- a/services/src/main/java/org/jfrog/artifactory/client/model/impl/FederatedRepositoryBuilderImpl.java +++ b/services/src/main/java/org/jfrog/artifactory/client/model/impl/FederatedRepositoryBuilderImpl.java @@ -16,7 +16,7 @@ */ public class FederatedRepositoryBuilderImpl extends NonVirtualRepositoryBuilderBase implements FederatedRepositoryBuilder { private static Set federatedRepositorySupportedTypes = new HashSet<>(Arrays.asList( - bower, cocoapods, cran, conda, debian, docker, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, opkg, pypi, sbt, vagrant, yum, rpm, composer, conan, chef, puppet, helm, go, cargo + bower, cocoapods, cran, conda, debian, docker, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, opkg, pypi, sbt, vagrant, yum, rpm, composer, conan, chef, puppet, helm, go, cargo, terraform )); protected List members = new ArrayList<>(); diff --git a/services/src/main/java/org/jfrog/artifactory/client/model/impl/LocalRepositoryBuilderImpl.java b/services/src/main/java/org/jfrog/artifactory/client/model/impl/LocalRepositoryBuilderImpl.java index 2d7a04bd..0d536340 100644 --- a/services/src/main/java/org/jfrog/artifactory/client/model/impl/LocalRepositoryBuilderImpl.java +++ b/services/src/main/java/org/jfrog/artifactory/client/model/impl/LocalRepositoryBuilderImpl.java @@ -17,7 +17,7 @@ */ public class LocalRepositoryBuilderImpl extends NonVirtualRepositoryBuilderBase implements LocalRepositoryBuilder { private static Set localRepositorySupportedTypes = new HashSet(Arrays.asList( - bower, cocoapods, cran, conda, debian, docker, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, opkg, pypi, sbt, vagrant, yum, rpm, composer, conan, chef, puppet, helm, go, cargo + bower, cocoapods, cran, conda, debian, docker, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, opkg, pypi, sbt, vagrant, yum, rpm, composer, conan, chef, puppet, helm, go, cargo, terraform )); protected LocalRepositoryBuilderImpl() { diff --git a/services/src/main/java/org/jfrog/artifactory/client/model/impl/PackageTypeImpl.java b/services/src/main/java/org/jfrog/artifactory/client/model/impl/PackageTypeImpl.java index df7c7848..23d85eb1 100644 --- a/services/src/main/java/org/jfrog/artifactory/client/model/impl/PackageTypeImpl.java +++ b/services/src/main/java/org/jfrog/artifactory/client/model/impl/PackageTypeImpl.java @@ -32,7 +32,8 @@ public enum PackageTypeImpl implements PackageType { puppet, helm, go, - cargo; + cargo, + terraform; @Override public boolean isCustom() { diff --git a/services/src/main/java/org/jfrog/artifactory/client/model/impl/RemoteRepositoryBuilderImpl.java b/services/src/main/java/org/jfrog/artifactory/client/model/impl/RemoteRepositoryBuilderImpl.java index 8b2625ec..bef2adc0 100644 --- a/services/src/main/java/org/jfrog/artifactory/client/model/impl/RemoteRepositoryBuilderImpl.java +++ b/services/src/main/java/org/jfrog/artifactory/client/model/impl/RemoteRepositoryBuilderImpl.java @@ -17,7 +17,7 @@ */ public class RemoteRepositoryBuilderImpl extends NonVirtualRepositoryBuilderBase implements RemoteRepositoryBuilder { private static Set remoteRepositorySupportedTypes = new HashSet(Arrays.asList( - bower, cocoapods, cran, conda, debian, docker, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, opkg, p2, pypi, sbt, vcs, yum, rpm, composer, conan, chef, puppet, helm, go, cargo + bower, cocoapods, cran, conda, debian, docker, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, opkg, p2, pypi, sbt, vcs, yum, rpm, composer, conan, chef, puppet, helm, go, cargo, terraform )); private String url; diff --git a/services/src/main/java/org/jfrog/artifactory/client/model/impl/VirtualRepositoryBuilderImpl.java b/services/src/main/java/org/jfrog/artifactory/client/model/impl/VirtualRepositoryBuilderImpl.java index 651a3b90..b29b8b54 100644 --- a/services/src/main/java/org/jfrog/artifactory/client/model/impl/VirtualRepositoryBuilderImpl.java +++ b/services/src/main/java/org/jfrog/artifactory/client/model/impl/VirtualRepositoryBuilderImpl.java @@ -15,7 +15,7 @@ */ public class VirtualRepositoryBuilderImpl extends RepositoryBuilderBase implements VirtualRepositoryBuilder { private static Set virtualRepositorySupportedTypes = new HashSet(Arrays.asList( - bower, cran, conda, docker, debian, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, p2, pypi, sbt, yum, rpm, composer, conan, chef, puppet, helm, go + bower, cran, conda, docker, debian, gems, generic, gitlfs, gradle, ivy, maven, npm, nuget, p2, pypi, sbt, yum, rpm, composer, conan, chef, puppet, helm, go, terraform )); private Collection repositories = Collections.emptyList(); diff --git a/services/src/main/java/org/jfrog/artifactory/client/model/repository/settings/impl/TerraformRepositorySettingsImpl.java b/services/src/main/java/org/jfrog/artifactory/client/model/repository/settings/impl/TerraformRepositorySettingsImpl.java new file mode 100644 index 00000000..f81a8771 --- /dev/null +++ b/services/src/main/java/org/jfrog/artifactory/client/model/repository/settings/impl/TerraformRepositorySettingsImpl.java @@ -0,0 +1,84 @@ +package org.jfrog.artifactory.client.model.repository.settings.impl; + +import org.jfrog.artifactory.client.model.PackageType; +import org.jfrog.artifactory.client.model.impl.PackageTypeImpl; +import org.jfrog.artifactory.client.model.repository.settings.AbstractRepositorySettings; +import org.jfrog.artifactory.client.model.repository.settings.TerraformRepositorySettings; +import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsGitProvider; +import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsType; + +public class TerraformRepositorySettingsImpl extends AbstractRepositorySettings implements TerraformRepositorySettings { + + public static String defaultLayout = "simple-default"; + public static String moduleLayout = "terraform-module-default"; + public static String providerLayout = "terraform-provider-default"; + private TerraformType terraformType; + private String terraformRegistryUrl; + private String terraformProvidersUrl; + private VcsType vcsType; + private VcsGitProvider vcsGitProvider; + private String remoteRepoLayoutRef; + + public TerraformRepositorySettingsImpl() { + super(defaultLayout); + } + + @Override + public PackageType getPackageType() { + return PackageTypeImpl.terraform; + } + + @Override + public TerraformType getTerraformType() { + return terraformType; + } + + @Override + public VcsType getVcsType() { + return vcsType; + } + + @Override + public VcsGitProvider getVcsGitProvider() { + return vcsGitProvider; + } + + @Override + public String getTerraformRegistryUrl() { + return terraformRegistryUrl; + } + + @Override + public String getTerraformProvidersUrl() { + return terraformProvidersUrl; + } + + @Override + public String getRemoteRepoLayoutRef() { + return remoteRepoLayoutRef; + } + + public void setTerraformType(TerraformType terraformType) { + this.terraformType = terraformType; + } + + public void setVcsType(VcsType vcsType) { + this.vcsType = vcsType; + } + + public void setVcsGitProvider(VcsGitProvider vcsGitProvider) { + this.vcsGitProvider = vcsGitProvider; + } + + public void setTerraformRegistryUrl(String terraformRegistryUrl) { + this.terraformRegistryUrl = terraformRegistryUrl; + } + + public void setTerraformProvidersUrl(String terraformProvidersUrl) { + this.terraformProvidersUrl = terraformProvidersUrl; + } + + public void setRemoteRepoLayoutRef(String remoteRepoLayoutRef) { + this.remoteRepoLayoutRef = remoteRepoLayoutRef; + } +} diff --git a/services/src/test/groovy/org/jfrog/artifactory/client/BaseRepositoryTests.groovy b/services/src/test/groovy/org/jfrog/artifactory/client/BaseRepositoryTests.groovy index 1b7419ad..911dd282 100644 --- a/services/src/test/groovy/org/jfrog/artifactory/client/BaseRepositoryTests.groovy +++ b/services/src/test/groovy/org/jfrog/artifactory/client/BaseRepositoryTests.groovy @@ -76,7 +76,7 @@ abstract class BaseRepositoryTests extends ArtifactoryTestsBase { .build() } if (prepareLocalRepo) { - RepositorySettings settings = getRepositorySettings() + RepositorySettings settings = getRepositorySettings(RepositoryTypeImpl.LOCAL) localRepo = artifactory.repositories().builders().localRepositoryBuilder() .key("$REPO_NAME_PREFIX-local-$id") .description("local-$id") @@ -95,12 +95,12 @@ abstract class BaseRepositoryTests extends ArtifactoryTestsBase { List members = new ArrayList() if(federationUrl != null && StringUtils.isNoneBlank(federationUrl)) { if (!federationUrl.endsWith("/")) { - federationUrl += "/"; + federationUrl += "/" } FederatedMember member = new FederatedMember( federationUrl+"$REPO_NAME_PREFIX-fed-$id", true) members.add(member) } - RepositorySettings settings = getRepositorySettings() + RepositorySettings settings = getRepositorySettings(RepositoryTypeImpl.FEDERATED) federatedRepo = artifactory.repositories().builders().federatedRepositoryBuilder() .key("$REPO_NAME_PREFIX-fed-$id") .description("fed-$id") @@ -118,7 +118,7 @@ abstract class BaseRepositoryTests extends ArtifactoryTestsBase { } if (prepareRemoteRepo) { - RepositorySettings settings = getRepositorySettings() + RepositorySettings settings = getRepositorySettings(RepositoryTypeImpl.REMOTE) ContentSync contentSync = new ContentSyncImpl() remoteRepo = artifactory.repositories().builders().remoteRepositoryBuilder() .key("$REPO_NAME_PREFIX-remote-$id") @@ -152,7 +152,7 @@ abstract class BaseRepositoryTests extends ArtifactoryTestsBase { } if (prepareVirtualRepo) { - RepositorySettings settings = getRepositorySettings() + RepositorySettings settings = getRepositorySettings(RepositoryTypeImpl.VIRTUAL) artifactory.repositories().create(0, genericRepo) def repos = new ArrayList() repos.add(genericRepo.getKey()) diff --git a/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy b/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy new file mode 100644 index 00000000..3b49b3ea --- /dev/null +++ b/services/src/test/groovy/org/jfrog/artifactory/client/TerraformPackageTypeRepositoryTests.groovy @@ -0,0 +1,159 @@ +package org.jfrog.artifactory.client + +import org.hamcrest.CoreMatchers +import org.jfrog.artifactory.client.model.RepositoryType +import org.jfrog.artifactory.client.model.impl.RepositoryTypeImpl +import org.jfrog.artifactory.client.model.repository.settings.RepositorySettings +import org.jfrog.artifactory.client.model.repository.settings.TerraformRepositorySettings +import org.jfrog.artifactory.client.model.repository.settings.impl.TerraformRepositorySettingsImpl +import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsGitProvider +import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsType +import org.testng.annotations.BeforeMethod +import org.testng.annotations.Test + +class TerraformPackageTypeRepositoryTests extends BaseRepositoryTests { + + TerraformPackageTypeRepositoryTests() { + remoteRepoUrl = "https://github.com" + } + + @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 + } + + if (repositoryType == RepositoryTypeImpl.FEDERATED) { + def settings = new TerraformRepositorySettingsImpl() + settings.with { + terraformType = TerraformRepositorySettings.TerraformType.module + repoLayout = moduleLayout + } + return settings + } + + return null + } + + @BeforeMethod + protected void setUp() { + super.setUp() + } + + @Test(groups = "terraformPackageTypeRepo") + void testTerraformLocalRepoModule() { + def mySettings = new TerraformRepositorySettingsImpl() + mySettings.with { + terraformType = TerraformRepositorySettings.TerraformType.module + repoLayout = moduleLayout + } + + testLocalRepoWithSettings(mySettings) + } + + @Test(groups = "terraformPackageTypeRepo") + void testTerraformLocalRepoProvider() { + def mySettings = new TerraformRepositorySettingsImpl() + mySettings.with { + terraformType = TerraformRepositorySettings.TerraformType.provider + repoLayout = providerLayout + } + + testLocalRepoWithSettings(mySettings) + } + + @Test(groups = "terraformPackageTypeRepo") + void testTerraformRemoteRepo() { + artifactory.repositories().create(0, remoteRepo) + def expectedSettings = remoteRepo.repositorySettings + + def resp = artifactory.repository(remoteRepo.getKey()).get() + assertThat(resp, CoreMatchers.notNullValue()) + assertThat(resp.repoLayoutRef, CoreMatchers.is(expectedSettings.repoLayout)) + assertThat(resp.url, CoreMatchers.is(remoteRepoUrl)) + resp.getRepositorySettings().with { + assertThat(packageType, CoreMatchers.is(expectedSettings.getPackageType())) + + // remote + assertThat(vcsType, CoreMatchers.is(expectedSettings.vcsType)) + assertThat(vcsGitProvider, CoreMatchers.is(expectedSettings.vcsGitProvider)) + assertThat(terraformRegistryUrl, CoreMatchers.is(expectedSettings.terraformRegistryUrl)) + assertThat(terraformProvidersUrl, CoreMatchers.is(expectedSettings.terraformProvidersUrl)) + assertThat(remoteRepoLayoutRef, CoreMatchers.is(expectedSettings.remoteRepoLayoutRef)) + } + } + + @Test(groups = "terraformPackageTypeRepo") + void testTerraformVirtualRepo() { + artifactory.repositories().create(0, virtualRepo) + def expectedSettings = virtualRepo.repositorySettings + + def resp = artifactory.repository(virtualRepo.getKey()).get() + assertThat(resp, CoreMatchers.notNullValue()) + assertThat(resp.repoLayoutRef, CoreMatchers.is(expectedSettings.repoLayout)) + + resp.getRepositorySettings().with { + assertThat(packageType, CoreMatchers.is(expectedSettings.getPackageType())) + } + } + + @Test(groups = "terraformPackageTypeRepo") + void testTerraformFederatedRepo() { + artifactory.repositories().create(0, federatedRepo) + def expectedSettings = federatedRepo.repositorySettings + + def resp = artifactory.repository(federatedRepo.getKey()).get() + assertThat(resp, CoreMatchers.notNullValue()) + assertThat(resp.repoLayoutRef, CoreMatchers.is(expectedSettings.repoLayout)) + + resp.getRepositorySettings().with { + assertThat(packageType, CoreMatchers.is(expectedSettings.getPackageType())) + } + } + + private void testLocalRepoWithSettings(TerraformRepositorySettingsImpl mySettings) { + String id = Long.toString(repoUniqueId) + def myLocalRepo = artifactory.repositories().builders().localRepositoryBuilder() + .key("$REPO_NAME_PREFIX-local-$id") + .description("local-$id") + .notes("notes-${rnd.nextInt()}") + .archiveBrowsingEnabled(rnd.nextBoolean()) + .blackedOut(rnd.nextBoolean()) + .excludesPattern("org/${rnd.nextInt()}/**") + .includesPattern("org/${rnd.nextInt()}/**") + .propertySets(Collections.emptyList()) // no property sets configured + .repositorySettings(mySettings) + .xraySettings(xraySettings) + .customProperties(customProperties) + .build() + artifactory.repositories().create(0, myLocalRepo) + def expectedSettings = myLocalRepo.repositorySettings + + def resp = artifactory.repository(myLocalRepo.getKey()).get() + assertThat(resp, CoreMatchers.notNullValue()) + assertThat(resp.repoLayoutRef, CoreMatchers.is(expectedSettings.repoLayout)) + + resp.getRepositorySettings().with { + assertThat(packageType, CoreMatchers.is(expectedSettings.packageType)) + assertThat(terraformType, CoreMatchers.is(expectedSettings.terraformType)) + } + } +} From a81140d98db79a377255d15752507f4df5767b22 Mon Sep 17 00:00:00 2001 From: nevenr Date: Tue, 7 Nov 2023 19:26:01 +0100 Subject: [PATCH 2/3] 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 From 3f6fc8b8d59af89d353725c923a6538bd18b3e6c Mon Sep 17 00:00:00 2001 From: yahavi Date: Wed, 8 Nov 2023 08:22:58 +0200 Subject: [PATCH 3/3] Reformat code --- .../model/repository/settings/TerraformRepositorySettings.java | 3 +-- 1 file changed, 1 insertion(+), 2 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 74e82b2b..e00f1b1e 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 @@ -5,7 +5,7 @@ import org.jfrog.artifactory.client.model.repository.settings.vcs.VcsType; @JsonIgnoreProperties(ignoreUnknown = true) -public interface TerraformRepositorySettings extends RepositorySettings{ +public interface TerraformRepositorySettings extends RepositorySettings { // Local and federated settings enum TerraformType { @@ -27,5 +27,4 @@ enum TerraformType { String getTerraformProvidersUrl(); String getRemoteRepoLayoutRef(); - }