Skip to content
Snippets Groups Projects
Commit 46c8b516 authored by Rucha Deshpande's avatar Rucha Deshpande
Browse files

Merge branch 'dev' into deshruch

parents 0bfab1d9 3930fafc
No related branches found
No related tags found
1 merge request!137Aws xuserid fix
Pipeline #74115 failed
variables:
OSDU_GCP_APPLICATION_NAME: os-notification
OSDU_GCP_CLOUD_RUN_PARAMETERS: "--min-instances=1"
OSDU_GCP_VENDOR: gcp
OSDU_GCP_SERVICE: notification
OSDU_GCP_REGISTER_BASE_URL: https://os-register-attcrcktoa-uc.a.run.app/api/register/v1
OSDU_GCP_ENV_VARS: APP_PROJECT=$OSDU_GCP_PROJECT,APP_ENTITLEMENTS=$OSDU_GCP_ENTITLEMENTS_V2_URL,APP_REGISTER=$OSDU_GCP_REGISTER_BASE_URL,APP_GOOGLEAUDIENCE=$GOOGLE_AUDIENCE,PARTITION_API=$OSDU_GCP_PARTITION_API,GOOGLE_AUDIENCES=$GOOGLE_AUDIENCE
OSDU_GCP_ENVIRONMENT: dev_gke
OSDU_GCP_LOG_LEVEL: INFO
OSDU_GCP_VENDOR: gcp
OSDU_GCP_HELM_DEPLOYMENT_DIR: "devops/gcp/deploy"
OSDU_GCP_HELM_CONFIG_DIR: "devops/gcp/configmap"
OSDU_GCP_HELM_NAMESPACE: "default"
OSDU_GCP_HELM_CONFIG_SERVICE_VARS: " --set data.log_level=$OSDU_GCP_LOG_LEVEL --set data.app_project=$OSDU_GCP_PROJECT --set data.app_googleaudience=$GOOGLE_AUDIENCE --set data.google_audiences=$GOOGLE_AUDIENCE --set data.app_register=$OSDU_GCP_REGISTER_API"
OSDU_GCP_HELM_DEPLOYMENT_SERVICE_VARS: "--set data.image=$CI_REGISTRY_IMAGE/osdu-gcp:$CI_COMMIT_SHORT_SHA --set data.serviceAccountName=workload-identity-notification"
OSDU_GCP_HELM_CONFIG_SERVICE: "notification-config"
OSDU_GCP_HELM_DEPLOYMENT_SERVICE: "notification-deploy"
OSDU_GCP_HELM_PACKAGE_CHARTS: "devops/gcp/deploy devops/gcp/configmap"
AWS_BUILD_SUBDIR: provider/notification-aws/build-aws
......@@ -46,8 +47,7 @@ include:
file: "cloud-providers/azure.yml"
- project: "osdu/platform/ci-cd-pipelines"
ref: "master"
file: "cloud-providers/osdu-gcp-cloudrun.yml"
file: "cloud-providers/osdu-gcp-gke.yml"
- project: "osdu/platform/ci-cd-pipelines"
file: "cloud-providers/aws.yml"
......@@ -59,4 +59,3 @@ osdu-gcp-test:
variables:
ENVIRONMENT: $OSDU_GCP_ENVIRONMENT
REGISTER_BASE_URL: $OSDU_GCP_REGISTER_BASE_URL
allow_failure: true
This diff is collapsed.
......@@ -18,6 +18,8 @@ package org.opengroup.osdu.notification.errors;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.Ordered;
......@@ -32,6 +34,7 @@ import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
import org.opengroup.osdu.core.common.model.http.AppException;
import javax.validation.ValidationException;
import java.io.IOException;
import java.nio.file.AccessDeniedException;
import java.util.List;
import java.util.stream.Collectors;
......@@ -78,6 +81,17 @@ public class SpringExceptionMapper extends ResponseEntityExceptionHandler {
"An unknown error has occurred.", e));
}
@ExceptionHandler(IOException.class)
public ResponseEntity<Object> handleIOException(IOException e) {
if (StringUtils.containsIgnoreCase(ExceptionUtils.getRootCauseMessage(e), "Broken pipe")) {
this.log.warning("Client closed the connection while request still being processed");
return null;
} else {
return this.getErrorResponse(
new AppException(HttpStatus.SERVICE_UNAVAILABLE.value(), "Unknown error", e.getMessage(), e));
}
}
private ResponseEntity<Object> getErrorResponse(AppException e) {
if(e.getOriginalException()!= null) {
this.log.error(e.getOriginalException().getMessage(), e.getOriginalException());
......
package org.opengroup.osdu.notification.provider.azure.di;
import lombok.Data;
import org.opengroup.osdu.core.common.notification.SubscriptionAPIConfig;
import org.opengroup.osdu.notification.provider.interfaces.IAppProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AbstractFactoryBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties
public class SubscriptionAPIConfigBean extends AbstractFactoryBean<SubscriptionAPIConfig> {
@Autowired
private IAppProperties config;
private String apiKey;
@Override
public Class<?> getObjectType() {
return SubscriptionAPIConfig.class;
}
@Override
protected SubscriptionAPIConfig createInstance() throws Exception {
return SubscriptionAPIConfig
.builder()
.rootUrl(config.getRegisterAPI())
.apiKey(apiKey)
.build();
}
}
// Copyright © Microsoft Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package org.opengroup.osdu.notification.provider.azure.di;
import org.opengroup.osdu.core.common.http.IHttpClient;
import org.opengroup.osdu.core.common.model.http.DpsHeaders;
import org.opengroup.osdu.core.common.notification.ISubscriptionFactory;
import org.opengroup.osdu.core.common.notification.ISubscriptionService;
import org.opengroup.osdu.core.common.notification.SubscriptionAPIConfig;
import org.opengroup.osdu.core.common.notification.SubscriptionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Component
@Primary
public class SubscriptionFactoryAzure implements ISubscriptionFactory {
private final SubscriptionAPIConfig config;
private final IHttpClient client;
@Autowired
public SubscriptionFactoryAzure(final SubscriptionAPIConfig subscriptionConfig, final IHttpClient httpClient) {
Objects.requireNonNull(subscriptionConfig, "SubscriptionAPIConfig cannot be null");
this.config = subscriptionConfig;
this.client = httpClient;
}
@Override
public ISubscriptionService create(final DpsHeaders dpsHeaders) {
Objects.requireNonNull(dpsHeaders, "headers cannot be null");
return new SubscriptionService(this.config, this.client, dpsHeaders);
}
}
package org.opengroup.osdu.notification.di;
import org.junit.Assert;
import org.junit.Test;
import org.opengroup.osdu.core.common.model.http.DpsHeaders;
import org.opengroup.osdu.core.common.notification.ISubscriptionService;
import org.opengroup.osdu.core.common.notification.SubscriptionAPIConfig;
import org.opengroup.osdu.notification.provider.azure.di.SubscriptionFactoryAzure;
public class SubscriptionFactoryAzureTest {
@Test
public void constructor_should_work_when_config_is_not_null() {
SubscriptionAPIConfig subscriptionAPIConfig = SubscriptionAPIConfig.builder().build();
subscriptionAPIConfig.setApiKey("apiKey");
subscriptionAPIConfig.setRootUrl("rootUrl");
SubscriptionFactoryAzure subscriptionFactoryAzure = new SubscriptionFactoryAzure(subscriptionAPIConfig, null);
Assert.assertNotNull(subscriptionFactoryAzure);
}
@Test(expected = NullPointerException.class)
public void constructor_should_throw_npe_if_config_is_null() {
SubscriptionFactoryAzure subscriptionFactoryAzure = new SubscriptionFactoryAzure(null, null);
}
@Test
public void create_subscriptionService_instance_dpsHeaders_is_not_null() {
DpsHeaders dpsHeaders = new DpsHeaders();
SubscriptionAPIConfig subscriptionAPIConfig = SubscriptionAPIConfig.builder().build();
subscriptionAPIConfig.setApiKey("apiKey");
subscriptionAPIConfig.setRootUrl("rootUrl");
SubscriptionFactoryAzure subscriptionFactoryAzure = new SubscriptionFactoryAzure(subscriptionAPIConfig, null);
ISubscriptionService subscriptionService = subscriptionFactoryAzure.create(dpsHeaders);
Assert.assertNotNull(subscriptionService);
}
@Test(expected = NullPointerException.class)
public void create_subscriptionService_should_throw_npe_if_headers_is_null() {
SubscriptionAPIConfig subscriptionAPIConfig = SubscriptionAPIConfig.builder().build();
subscriptionAPIConfig.setApiKey("apiKey");
subscriptionAPIConfig.setRootUrl("rootUrl");
SubscriptionFactoryAzure subscriptionFactoryAzure = new SubscriptionFactoryAzure(subscriptionAPIConfig, null);
ISubscriptionService subscriptionService = subscriptionFactoryAzure.create(null);
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%yellow([%thread]) %highlight(| %-5level |) %green(%d) %cyan(| %logger{15} |) %highlight(%msg) %n</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment