Skip to content

Commit

Permalink
fix(exceptions): Use kork's NotFoundException (#922)
Browse files Browse the repository at this point in the history
Follow up from spinnaker/kork#737 where I added a generic 400 response exception handler for UserException.
But `front50` needs to return an actual 404 (since callers, e.g. `orca` expect and handle it).
Kork already has a generic 404 handler for NotFoundException
  • Loading branch information
marchello2000 committed Aug 10, 2020
1 parent ac2e2a7 commit cca223d
Show file tree
Hide file tree
Showing 51 changed files with 50 additions and 66 deletions.
Expand Up @@ -24,7 +24,7 @@
import com.microsoft.azure.storage.ResultSegment;
import com.microsoft.azure.storage.StorageException;
import com.microsoft.azure.storage.blob.*;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import com.netflix.spinnaker.security.AuthenticatedRequest;
import java.io.IOException;
import java.net.HttpURLConnection;
Expand Down
Expand Up @@ -21,11 +21,11 @@
import com.netflix.spinnaker.front50.config.FiatConfigurationProperties;
import com.netflix.spinnaker.front50.events.ApplicationPermissionEventListener;
import com.netflix.spinnaker.front50.events.ApplicationPermissionEventListener.Type;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.application.Application.Permission;
import com.netflix.spinnaker.front50.model.application.ApplicationDAO;
import com.netflix.spinnaker.front50.model.application.ApplicationPermissionDAO;
import com.netflix.spinnaker.kork.exceptions.SystemException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
import java.util.Collection;
Expand Down
Expand Up @@ -21,9 +21,9 @@
import com.netflix.spinnaker.fiat.shared.FiatService;
import com.netflix.spinnaker.front50.config.FiatConfigurationProperties;
import com.netflix.spinnaker.front50.config.annotations.ConditionalOnAnyProviderExceptRedisIsEnabled;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.serviceaccount.ServiceAccount;
import com.netflix.spinnaker.front50.model.serviceaccount.ServiceAccountDAO;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
Expand Down

This file was deleted.

@@ -1,6 +1,6 @@
package com.netflix.spinnaker.front50.model;

import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.time.Duration;
import java.util.Collection;

Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.model;

import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.time.Duration;
import java.util.Collection;
import java.util.List;
Expand Down
Expand Up @@ -21,7 +21,7 @@
import com.netflix.spectator.api.Counter;
import com.netflix.spectator.api.Registry;
import com.netflix.spectator.api.Timer;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import com.netflix.spinnaker.security.AuthenticatedRequest;
import com.netflix.spinnaker.security.User;
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
Expand Down
Expand Up @@ -18,9 +18,9 @@

import com.google.common.base.Strings;
import com.netflix.spinnaker.front50.UntypedUtils;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ItemDAO;
import com.netflix.spinnaker.front50.model.SearchUtils;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.util.*;
import java.util.stream.Collectors;

Expand Down
Expand Up @@ -22,7 +22,6 @@
import com.netflix.spinnaker.front50.ServiceAccountsService;
import com.netflix.spinnaker.front50.events.ApplicationEventListener;
import com.netflix.spinnaker.front50.events.ApplicationEventListener.ApplicationModelEvent;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.exception.ValidationException;
import com.netflix.spinnaker.front50.model.notification.HierarchicalLevel;
import com.netflix.spinnaker.front50.model.notification.NotificationDAO;
Expand All @@ -33,6 +32,7 @@
import com.netflix.spinnaker.front50.validator.ApplicationValidationErrors;
import com.netflix.spinnaker.front50.validator.ApplicationValidator;
import com.netflix.spinnaker.kork.annotations.NonnullByDefault;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
Expand Down
Expand Up @@ -17,11 +17,11 @@
package com.netflix.spinnaker.front50.model.application;

import com.netflix.spectator.api.Registry;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ObjectKeyLoader;
import com.netflix.spinnaker.front50.model.ObjectType;
import com.netflix.spinnaker.front50.model.StorageService;
import com.netflix.spinnaker.front50.model.StorageServiceSupport;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
import java.util.Collection;
import java.util.Map;
Expand Down
Expand Up @@ -17,11 +17,11 @@
package com.netflix.spinnaker.front50.model.notification;

import com.netflix.spectator.api.Registry;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ObjectKeyLoader;
import com.netflix.spinnaker.front50.model.ObjectType;
import com.netflix.spinnaker.front50.model.StorageService;
import com.netflix.spinnaker.front50.model.StorageServiceSupport;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
import rx.Scheduler;

Expand Down
Expand Up @@ -17,11 +17,11 @@
package com.netflix.spinnaker.front50.model.pipeline;

import com.netflix.spectator.api.Registry;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ObjectKeyLoader;
import com.netflix.spinnaker.front50.model.ObjectType;
import com.netflix.spinnaker.front50.model.StorageService;
import com.netflix.spinnaker.front50.model.StorageServiceSupport;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
import java.util.Collection;
import java.util.UUID;
Expand Down
Expand Up @@ -17,11 +17,11 @@
package com.netflix.spinnaker.front50.model.pipeline;

import com.netflix.spectator.api.Registry;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ObjectKeyLoader;
import com.netflix.spinnaker.front50.model.ObjectType;
import com.netflix.spinnaker.front50.model.StorageService;
import com.netflix.spinnaker.front50.model.StorageServiceSupport;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
import java.util.Collection;
import java.util.UUID;
Expand Down
Expand Up @@ -17,12 +17,12 @@

import com.netflix.spinnaker.front50.config.annotations.ConditionalOnAnyProviderExceptRedisIsEnabled;
import com.netflix.spinnaker.front50.echo.EchoService;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.plugins.PluginBinaryStorageService;
import com.netflix.spinnaker.front50.validator.GenericValidationErrors;
import com.netflix.spinnaker.front50.validator.PluginInfoValidator;
import com.netflix.spinnaker.kork.exceptions.UserException;
import com.netflix.spinnaker.kork.web.exceptions.InvalidRequestException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import com.netflix.spinnaker.security.AuthenticatedRequest;
import java.time.Instant;
import java.util.ArrayList;
Expand Down
Expand Up @@ -17,7 +17,7 @@

import static java.lang.String.format;

import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
Expand Down
Expand Up @@ -17,11 +17,11 @@
package com.netflix.spinnaker.front50.model.project;

import com.netflix.spectator.api.Registry;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ObjectKeyLoader;
import com.netflix.spinnaker.front50.model.ObjectType;
import com.netflix.spinnaker.front50.model.StorageService;
import com.netflix.spinnaker.front50.model.StorageServiceSupport;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
import java.util.UUID;
import rx.Scheduler;
Expand Down
@@ -1,7 +1,7 @@
package com.netflix.spinnaker.front50.model.project;

import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.ItemDAO;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.util.Collection;

public interface ProjectDAO extends ItemDAO<Project> {
Expand Down
Expand Up @@ -20,7 +20,7 @@ import com.netflix.spinnaker.fiat.shared.FiatClientConfigurationProperties
import com.netflix.spinnaker.fiat.shared.FiatPermissionEvaluator
import com.netflix.spinnaker.fiat.shared.FiatService
import com.netflix.spinnaker.front50.config.FiatConfigurationProperties
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.serviceaccount.ServiceAccount
import com.netflix.spinnaker.front50.model.serviceaccount.ServiceAccountDAO
import org.springframework.security.core.Authentication
Expand Down
Expand Up @@ -19,7 +19,7 @@ package com.netflix.spinnaker.front50.model.application

import com.netflix.spinnaker.front50.ServiceAccountsService
import com.netflix.spinnaker.front50.events.ApplicationEventListener
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.exception.ValidationException
import com.netflix.spinnaker.front50.model.notification.HierarchicalLevel
import com.netflix.spinnaker.front50.model.notification.NotificationDAO
Expand Down
Expand Up @@ -16,7 +16,7 @@
package com.netflix.spinnaker.front50.model.plugins

import com.netflix.spinnaker.front50.echo.EchoService
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.plugins.remote.RemoteExtension
import com.netflix.spinnaker.front50.model.plugins.remote.stage.StageRemoteExtensionConfig
import com.netflix.spinnaker.front50.plugins.PluginBinaryStorageService
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.model.plugins

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import spock.lang.Specification
import spock.lang.Subject

Expand Down
Expand Up @@ -29,7 +29,7 @@ import com.google.cloud.storage.Storage.BucketGetOption
import com.google.cloud.storage.StorageException
import com.google.common.collect.ImmutableMap
import com.google.common.util.concurrent.Futures
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import java.io.IOException
import java.time.Duration
import java.util.concurrent.ExecutorService
Expand Down
Expand Up @@ -25,12 +25,12 @@ import com.google.cloud.storage.BucketInfo
import com.google.cloud.storage.Storage
import com.google.cloud.storage.StorageOptions
import com.google.common.util.concurrent.MoreExecutors
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.front50.model.GcsStorageService
import com.netflix.spinnaker.front50.model.ObjectType
import com.netflix.spinnaker.front50.model.application.Application
import com.netflix.spinnaker.front50.model.delivery.Delivery
import com.netflix.spinnaker.front50.model.pipeline.Pipeline
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import io.mockk.every
import io.mockk.mockk
import io.mockk.slot
Expand Down
Expand Up @@ -13,7 +13,7 @@
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import com.google.common.base.Supplier;
import com.netflix.spinnaker.front50.config.OracleProperties;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import com.oracle.bmc.auth.AuthenticationDetailsProvider;
import com.oracle.bmc.auth.SimpleAuthenticationDetailsProvider;
import com.oracle.bmc.auth.SimplePrivateKeySupplier;
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.application.Application
import com.netflix.spinnaker.front50.model.application.ApplicationDAO
import org.springframework.data.redis.core.Cursor
Expand Down
Expand Up @@ -15,7 +15,7 @@
*/

package com.netflix.spinnaker.front50.redis
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.pipeline.Pipeline
import com.netflix.spinnaker.front50.model.pipeline.PipelineDAO
import org.springframework.data.redis.core.Cursor
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.pipeline.Pipeline
import com.netflix.spinnaker.front50.model.pipeline.PipelineStrategyDAO
import org.springframework.data.redis.core.Cursor
Expand Down
Expand Up @@ -16,9 +16,9 @@
package com.netflix.spinnaker.front50.redis;

import com.google.common.collect.Lists;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.front50.model.pipeline.PipelineTemplate;
import com.netflix.spinnaker.front50.model.pipeline.PipelineTemplateDAO;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.project.Project
import com.netflix.spinnaker.front50.model.project.ProjectDAO
import org.springframework.data.redis.core.Cursor
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.application.Application
import com.netflix.spinnaker.front50.redis.config.EmbeddedRedisConfig
import org.springframework.beans.factory.annotation.Autowired
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.pipeline.Pipeline
import com.netflix.spinnaker.front50.pipeline.PipelineDAOSpec
import com.netflix.spinnaker.front50.redis.config.EmbeddedRedisConfig
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.pipeline.Pipeline
import com.netflix.spinnaker.front50.redis.config.EmbeddedRedisConfig
import org.springframework.beans.factory.annotation.Autowired
Expand Down
Expand Up @@ -16,7 +16,7 @@

package com.netflix.spinnaker.front50.redis

import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.front50.model.project.Project
import com.netflix.spinnaker.front50.redis.config.EmbeddedRedisConfig
import org.springframework.beans.factory.annotation.Autowired
Expand Down
Expand Up @@ -25,7 +25,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.netflix.spinnaker.front50.exception.NotFoundException;
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.time.Duration;
Expand Down
Expand Up @@ -17,8 +17,8 @@
package com.netflix.spinnaker.front50.model

import com.netflix.spectator.api.Registry
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.kork.dynamicconfig.DynamicConfigService
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import org.slf4j.LoggerFactory
import org.springframework.scheduling.annotation.Scheduled

Expand Down
Expand Up @@ -18,7 +18,6 @@ package com.netflix.spinnaker.front50.model

import com.fasterxml.jackson.databind.ObjectMapper
import com.netflix.spectator.api.Registry
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.front50.model.ObjectType.APPLICATION
import com.netflix.spinnaker.front50.model.ObjectType.APPLICATION_PERMISSION
import com.netflix.spinnaker.front50.model.ObjectType.DELIVERY
Expand All @@ -41,6 +40,7 @@ import com.netflix.spinnaker.front50.model.sql.transactional
import com.netflix.spinnaker.front50.model.sql.withRetry
import com.netflix.spinnaker.kork.sql.config.SqlRetryProperties
import com.netflix.spinnaker.kork.sql.routing.withPool
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import com.netflix.spinnaker.security.AuthenticatedRequest
import java.time.Clock
import kotlin.system.measureTimeMillis
Expand Down
Expand Up @@ -17,10 +17,10 @@
package com.netflix.spinnaker.front50.model

import com.netflix.spectator.api.NoopRegistry
import com.netflix.spinnaker.front50.exception.NotFoundException
import com.netflix.spinnaker.front50.model.application.Application
import com.netflix.spinnaker.front50.model.tag.EntityTags
import com.netflix.spinnaker.kork.dynamicconfig.DynamicConfigService
import com.netflix.spinnaker.kork.web.exceptions.NotFoundException
import dev.minutest.junit.JUnit5Minutests
import dev.minutest.rootContext
import io.mockk.Called
Expand Down

0 comments on commit cca223d

Please sign in to comment.