Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix side effect of having metadata configuration mandatory #815

Merged
merged 7 commits into from
Feb 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.oracle.bmc.certificates.responses.GetCertificateBundleResponse
import io.micronaut.context.annotation.Context
import io.micronaut.context.annotation.Primary
import io.micronaut.context.annotation.Property
import io.micronaut.context.env.Environment
import io.micronaut.http.HttpRequest
import io.micronaut.http.HttpResponse
import io.micronaut.http.MediaType
Expand All @@ -22,7 +21,7 @@ import io.micronaut.test.extensions.spock.annotation.MicronautTest
import jakarta.inject.Inject
import spock.lang.Specification

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name="oci.certificates.enabled", value = "true")
@Property(name="micronaut.server.dual-protocol", value = "true")
@Property(name="micronaut.server.ssl.enabled", value = "true")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,20 +199,21 @@ protected ClientConfiguration.ClientConfigurationBuilder configurationBuilder(
@Primary
@Context
@BootstrapContextCompatible
protected TenancyIdProvider tenantIdProvider(@Nullable BasicAuthenticationDetailsProvider authenticationDetailsProvider, OracleCloudMetadataConfiguration metadataConfiguration) {
protected TenancyIdProvider tenantIdProvider(@Nullable BasicAuthenticationDetailsProvider authenticationDetailsProvider, @Nullable OracleCloudMetadataConfiguration metadataConfiguration) {
if (authenticationDetailsProvider == null) {
throw new DisabledBeanException("Invalid Oracle Cloud Configuration. If you are running locally ensure the CLI is configured by running: oci setup config");
}
final OracleCloudMetadataConfiguration cfg = Optional.ofNullable(metadataConfiguration).orElse(new OracleCloudMetadataConfiguration());
return () -> {
if (authenticationDetailsProvider instanceof AuthenticationDetailsProvider) {
return ((AuthenticationDetailsProvider) authenticationDetailsProvider).getTenantId();
} else if (authenticationDetailsProvider instanceof ResourcePrincipalAuthenticationDetailsProvider) {
return ((ResourcePrincipalAuthenticationDetailsProvider) authenticationDetailsProvider).getStringClaim(ResourcePrincipalAuthenticationDetailsProvider.ClaimKeys.TENANT_ID_CLAIM_KEY);
if (authenticationDetailsProvider instanceof AuthenticationDetailsProvider a) {
return a.getTenantId();
} else if (authenticationDetailsProvider instanceof ResourcePrincipalAuthenticationDetailsProvider r) {
return r.getStringClaim(ResourcePrincipalAuthenticationDetailsProvider.ClaimKeys.TENANT_ID_CLAIM_KEY);
} else if (authenticationDetailsProvider instanceof InstancePrincipalsAuthenticationDetailsProvider) {
URLBasedX509CertificateSupplier urlBasedX509CertificateSupplier;
String tenantId;
try {
String baseMetadataUrl = metadataConfiguration.getBaseUrl();
String baseMetadataUrl = cfg.getBaseUrl();
urlBasedX509CertificateSupplier = new URLBasedX509CertificateSupplier(
new URL(baseMetadataUrl + "identity/cert.pem"),
new URL(baseMetadataUrl + "identity/key.pem"),
Expand Down Expand Up @@ -256,6 +257,7 @@ protected ClientConfiguration clientConfiguration(ClientConfiguration.ClientConf
@Requires(property = OracleCloudConfigFileConfigurationProperties.PREFIX + ".session-token", notEquals = StringUtils.FALSE, defaultValue = StringUtils.FALSE)
@Requires(property = OracleCloudConfigFileConfigurationProperties.PREFIX + ".enabled", notEquals = StringUtils.FALSE, defaultValue = StringUtils.TRUE)
@Primary
@BootstrapContextCompatible
protected SessionTokenAuthenticationDetailsProvider sessionTokenAuthenticationDetailsProvider() throws IOException {
String profile = getProfile().orElse(null);
if (getConfigPath().isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ security_token_file=${testPath}/oci_api_key.pem
given:
def ctx = ApplicationContext.run([
(OracleCloudConfigFileConfigurationProperties.PREFIX + ".config-path"): ociConfig.absolutePath
], Environment.ORACLE_CLOUD)
])

expect:
ctx.containsBean(ConfigFileAuthenticationDetailsProvider)
Expand All @@ -56,7 +56,7 @@ security_token_file=${testPath}/oci_api_key.pem
def ctx = ApplicationContext.run([
(OracleCloudConfigFileConfigurationProperties.PREFIX + ".config-path"): ociConfig.absolutePath,
(OracleCloudConfigFileConfigurationProperties.PREFIX + ".enabled"): false
], Environment.ORACLE_CLOUD)
])

expect:
!ctx.containsBean(ConfigFileAuthenticationDetailsProvider)
Expand All @@ -71,7 +71,7 @@ security_token_file=${testPath}/oci_api_key.pem
def ctx = ApplicationContext.run([
(OracleCloudConfigFileConfigurationProperties.PREFIX + ".config-path"): ociConfig.absolutePath,
(OracleCloudConfigFileConfigurationProperties.PREFIX + ".session-token"): true
], Environment.ORACLE_CLOUD)
])

expect:
!ctx.containsBean(ConfigFileAuthenticationDetailsProvider)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider;
import io.micronaut.aop.InterceptedProxy;
import io.micronaut.context.annotation.Property;
import io.micronaut.context.env.Environment;
import io.micronaut.core.util.StringUtils;
import io.micronaut.test.annotation.MockBean;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
Expand All @@ -16,9 +15,9 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name = InstancePrincipalConfiguration.PREFIX + ".enabled", value = StringUtils.TRUE)
class InstancePrincipalConfigurationTest {
public class InstancePrincipalConfigurationTest {

@Inject
InstancePrincipalConfiguration configuration;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package io.micronaut.oraclecloud.core;

import com.oracle.bmc.ClientConfiguration;
import io.micronaut.context.env.Environment;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
class OracleCloudCoreDefaultConfigTest {
@MicronautTest
public class OracleCloudCoreDefaultConfigTest {

/*
* This tests that the default configurations can be setup.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,16 @@
import com.oracle.bmc.auth.AuthenticationDetailsProvider;
import com.oracle.bmc.auth.SimpleAuthenticationDetailsProvider;
import io.micronaut.context.annotation.Property;
import io.micronaut.context.env.Environment;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name = "oci.tenantId", value = "something")
@Property(name = "oci.region", value = "ap-mumbai-1")
@Property(name = "oci.passphrase", value = "junk")
class OracleCloudCustomAuthConfigTest {
public class OracleCloudCustomAuthConfigTest {

@Test
void testCustomAuth(AuthenticationDetailsProvider provider) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@

import com.oracle.bmc.ClientConfiguration;
import io.micronaut.context.annotation.Property;
import io.micronaut.context.env.Environment;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name = "oci.client.readTimeoutMillis", value = "25000")
class OracleCloudCustomConfigTest {
public class OracleCloudCustomConfigTest {

@Test
void testCustomConfig(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.micronaut.oraclecloud.function.http

import io.micronaut.context.env.Environment
import io.micronaut.core.type.Argument
import io.micronaut.http.HttpRequest
import io.micronaut.http.HttpStatus
Expand All @@ -16,7 +15,7 @@ import jakarta.inject.Inject
* @author Pavol Gressa
* @since 2.3*
*/
@MicronautTest(environments = ["custom-env", Environment.ORACLE_CLOUD])
@MicronautTest(environments = ["custom-env"])
class MockFnHttpServerSpec extends Specification {

@Inject
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.micronaut.oraclecloud.function.http

import io.micronaut.context.env.Environment
import io.micronaut.http.HttpHeaders
import io.micronaut.http.HttpRequest
import io.micronaut.http.HttpStatus
Expand All @@ -14,7 +13,7 @@ import spock.lang.Specification

import jakarta.inject.Inject

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
class ParameterBindingSpec extends Specification {

@Inject
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.micronaut.oraclecloud.function.http;

import io.micronaut.context.annotation.Property;
import io.micronaut.context.env.Environment;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
import io.micronaut.http.client.HttpClient;
Expand All @@ -14,9 +13,9 @@

import static org.junit.jupiter.api.Assertions.assertEquals;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name = "fn.test.config.foo.bar", value = "good")
class ParameterBindingTest {
public class ParameterBindingTest {

@Client("/")
@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import com.oracle.bmc.loggingingestion.responses.PutLogsResponse
import io.micronaut.context.annotation.Property
import io.micronaut.context.annotation.Replaces
import io.micronaut.context.annotation.Requires
import io.micronaut.context.env.Environment
import io.micronaut.context.event.ApplicationEventPublisher
import io.micronaut.runtime.ApplicationConfiguration
import io.micronaut.runtime.server.EmbeddedServer
Expand All @@ -25,7 +24,7 @@ import org.slf4j.LoggerFactory
import spock.lang.Specification
import spock.util.concurrent.PollingConditions

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name = "spec.name", value = "OracleCloudLoggingSpec")
@Property(name = "oci.logging.logId", value = "test-logId-from-application-config")
class OracleCloudLoggingSpec extends Specification {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistr
import io.micronaut.test.extensions.spock.annotation.MicronautTest
import spock.lang.Specification

@MicronautTest(startApplication = false, environments = Environment.ORACLE_CLOUD)
@MicronautTest(startApplication = false)
@Property(name = "micronaut.metrics.export.oraclecloud.enabled", value = "false")
@Requires(beans = AuthenticationDetailsProvider)
class OracleCloudMeterRegistryFactoryTest extends Specification {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.oracle.bmc.auth.okeworkloadidentity.OkeWorkloadIdentityAuthenticationDetailsProvider;
import io.micronaut.aop.InterceptedProxy;
import io.micronaut.context.annotation.Property;
import io.micronaut.context.env.Environment;
import io.micronaut.core.util.StringUtils;
import io.micronaut.oraclecloud.core.OracleCloudCoreFactory;
import io.micronaut.test.annotation.MockBean;
Expand All @@ -16,9 +15,9 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
@Property(name = OracleCloudCoreFactory.OKE_WORKLOAD_IDENTITY_PREFIX + ".enabled", value = StringUtils.TRUE)
class OkeWorkloadIdentityConfigurationTest {
public class OkeWorkloadIdentityConfigurationTest {

@Inject
OkeWorkloadIdentityConfiguration configuration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,13 @@
import com.oracle.bmc.responses.AsyncHandler;
import io.micronaut.context.annotation.Bean;
import io.micronaut.context.annotation.Replaces;
import io.micronaut.context.env.Environment;
import io.micronaut.oraclecloud.clients.reactor.objectstorage.ObjectStorageReactorClient;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
public class ObjectStorageReactorClientTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.oracle.bmc.objectstorage.requests.ListBucketsRequest;
import io.micronaut.context.annotation.Bean;
import io.micronaut.context.annotation.Replaces;
import io.micronaut.context.env.Environment;
import io.micronaut.oraclecloud.clients.rxjava2.objectstorage.ObjectStorageRxClient;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;
Expand All @@ -18,8 +17,8 @@

import static org.junit.jupiter.api.Assertions.assertEquals;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
class ObjectStorageRxClientTest {
@MicronautTest
public class ObjectStorageRxClientTest {

@Test
void testObjectStorageClientRx(ObjectStorageRxClient objectStorageRxClient) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class OracleCloudVaultConfigurationSpec extends Specification {
'oci.vault.vaults' : [
['ocid' : 'ocid1.vault.oc1.phx....',
'compartment-ocid': 'ocid1.compartment.oc1....']
]], Environment.ORACLE_CLOUD)
]])
OracleCloudVaultConfiguration config = ctx.getBean(OracleCloudVaultConfiguration)

expect:
Expand All @@ -42,7 +42,7 @@ class OracleCloudVaultConfigurationSpec extends Specification {
'oci.vault.vaults' : [
['ocid' : 'ocid1.vault.oc1.phx....',
'compartment-ocid': 'ocid1.compartment.oc1....']
]], Environment.ORACLE_CLOUD)
]])

when:
ctx.getBean(OracleCloudVaultConfigurationClient)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package example;

import io.micronaut.context.env.Environment;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
Expand All @@ -12,7 +11,7 @@

import static org.junit.jupiter.api.Assertions.assertTrue;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
public class LoggingTest {

public static final Logger log = LoggerFactory.getLogger("LoggingTest");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import java.sql.SQLException;
import java.util.Map;

@MicronautTest(startApplication = false, environments = Environment.ORACLE_CLOUD)
@MicronautTest(startApplication = false)
@Requires(property = "atp.user")
@Requires(property = "atp.pass")
@Requires(property = "atp.ocid")
Expand Down
2 changes: 1 addition & 1 deletion test-suite-java/src/test/java/example/MicrometerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

import java.util.Map;

@MicronautTest(startApplication = false, environments = Environment.ORACLE_CLOUD)
@MicronautTest(startApplication = false)
@Requires(beans = AuthenticationDetailsProvider.class)
@Property(name = "micronaut.metrics.export.oraclecloud.enabled", value = "false")
@Requires(property = "monitoring.compartment.ocid")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package example;

import com.oracle.bmc.vault.model.SecretSummary;
import io.micronaut.context.env.Environment;
import io.micronaut.json.JsonMapper;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;
Expand All @@ -11,7 +10,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

@MicronautTest(environments = Environment.ORACLE_CLOUD)
@MicronautTest
public class VaultSerializationTest {
@Test
void testSerialization(JsonMapper jsonMapper) throws IOException {
Expand Down
2 changes: 1 addition & 1 deletion test-suite-java/src/test/java/example/VaultTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import java.util.ArrayList;
import java.util.Map;

@MicronautTest(startApplication = false, environments = Environment.ORACLE_CLOUD)
@MicronautTest(startApplication = false)
@Requires(property = "vault.ocid")
@Requires(property = "vault.secrets.compartment.ocid")
@Requires(property = "vault.secret.name")
Expand Down
Loading