diff --git a/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineLoadBalancerCachingAgent.groovy b/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineLoadBalancerCachingAgent.groovy index 7c809247c81..d80f6586d83 100644 --- a/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineLoadBalancerCachingAgent.groovy +++ b/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineLoadBalancerCachingAgent.groovy @@ -34,6 +34,7 @@ import com.netflix.spinnaker.clouddriver.appengine.security.AppengineNamedAccoun import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent.OnDemandResult import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import groovy.util.logging.Slf4j import java.util.concurrent.TimeUnit @@ -78,12 +79,12 @@ class AppengineLoadBalancerCachingAgent extends AbstractAppengineCachingAgent im metricsSupport = new OnDemandMetricsSupport( registry, this, - "$AppengineCloudProvider.ID:$OnDemandAgent.OnDemandType.LoadBalancer") + "$AppengineCloudProvider.ID:$OnDemandType.LoadBalancer") } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.LoadBalancer && cloudProvider == AppengineCloudProvider.ID + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.LoadBalancer && cloudProvider == AppengineCloudProvider.ID } @Override diff --git a/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineServerGroupCachingAgent.groovy b/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineServerGroupCachingAgent.groovy index 51dc4e23356..2f5d27d880f 100644 --- a/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineServerGroupCachingAgent.groovy +++ b/clouddriver-appengine/src/main/groovy/com/netflix/spinnaker/clouddriver/appengine/provider/agent/AppengineServerGroupCachingAgent.groovy @@ -40,6 +40,7 @@ import com.netflix.spinnaker.clouddriver.appengine.provider.view.MutableCacheDat import com.netflix.spinnaker.clouddriver.appengine.security.AppengineNamedAccountCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import groovy.util.logging.Slf4j import static com.netflix.spinnaker.cats.agent.AgentDataType.Authority.AUTHORITATIVE @@ -70,7 +71,7 @@ class AppengineServerGroupCachingAgent extends AbstractAppengineCachingAgent imp this.metricsSupport = new OnDemandMetricsSupport( registry, this, - "$AppengineCloudProvider.ID:$OnDemandAgent.OnDemandType.ServerGroup") + "$AppengineCloudProvider.ID:$OnDemandType.ServerGroup") } @Override @@ -89,8 +90,8 @@ class AppengineServerGroupCachingAgent extends AbstractAppengineCachingAgent imp } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.ServerGroup && cloudProvider == AppengineCloudProvider.ID + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.ServerGroup && cloudProvider == AppengineCloudProvider.ID } @Override diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AbstractAmazonLoadBalancerCachingAgent.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AbstractAmazonLoadBalancerCachingAgent.groovy index fa7241b71d8..4230c535b29 100644 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AbstractAmazonLoadBalancerCachingAgent.groovy +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AbstractAmazonLoadBalancerCachingAgent.groovy @@ -34,6 +34,7 @@ import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import org.slf4j.Logger import org.slf4j.LoggerFactory @@ -117,12 +118,12 @@ abstract class AbstractAmazonLoadBalancerCachingAgent implements CachingAgent, O this.region = region this.objectMapper = objectMapper.copy().enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) this.registry = registry - this.metricsSupport = new OnDemandMetricsSupport(registry, this, amazonCloudProvider.id + ":" + "${amazonCloudProvider.id}:${OnDemandAgent.OnDemandType.LoadBalancer}") + this.metricsSupport = new OnDemandMetricsSupport(registry, this, amazonCloudProvider.id + ":" + "${amazonCloudProvider.id}:${OnDemandType.LoadBalancer}") } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.LoadBalancer && cloudProvider == amazonCloudProvider.id + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.LoadBalancer && cloudProvider == amazonCloudProvider.id } abstract CacheResult loadDataInternal(ProviderCache providerCache) diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgent.java b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgent.java index edbabe53aff..1042b6b209f 100644 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgent.java +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgent.java @@ -33,6 +33,7 @@ import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import java.util.*; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonSecurityGroupCachingAgent.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonSecurityGroupCachingAgent.groovy index 051fc2ce99b..e94361e4f0e 100644 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonSecurityGroupCachingAgent.groovy +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonSecurityGroupCachingAgent.groovy @@ -36,6 +36,7 @@ import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport import com.netflix.spinnaker.clouddriver.aws.cache.Keys import com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import groovy.util.logging.Slf4j import static com.netflix.spinnaker.cats.agent.AgentDataType.Authority.AUTHORITATIVE @@ -71,7 +72,7 @@ class AmazonSecurityGroupCachingAgent implements CachingAgent, OnDemandAgent, Ac this.objectMapper = objectMapper this.registry = registry this.eddaTimeoutConfig = eddaTimeoutConfig - this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${AmazonCloudProvider.ID}:${OnDemandAgent.OnDemandType.SecurityGroup}") + this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${AmazonCloudProvider.ID}:${OnDemandType.SecurityGroup}") this.lastModifiedKey = Keys.getSecurityGroupKey('LAST_MODIFIED', 'LAST_MODIFIED', region, account.name, null) } @@ -125,8 +126,8 @@ class AmazonSecurityGroupCachingAgent implements CachingAgent, OnDemandAgent, Ac } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.SecurityGroup && cloudProvider == AmazonCloudProvider.ID + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.SecurityGroup && cloudProvider == AmazonCloudProvider.ID } @Override diff --git a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/ClusterCachingAgent.groovy b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/ClusterCachingAgent.groovy index 28a10a17af6..23bcc7b8a55 100644 --- a/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/ClusterCachingAgent.groovy +++ b/clouddriver-aws/src/main/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/ClusterCachingAgent.groovy @@ -52,6 +52,7 @@ import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport import com.netflix.spinnaker.clouddriver.aws.data.Keys +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import org.slf4j.Logger import org.slf4j.LoggerFactory @@ -102,7 +103,7 @@ class ClusterCachingAgent implements CachingAgent, OnDemandAgent, AccountAware, this.objectMapper = objectMapper.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) this.registry = registry this.eddaTimeoutConfig = eddaTimeoutConfig - this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${amazonCloudProvider.id}:${OnDemandAgent.OnDemandType.ServerGroup}") + this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${amazonCloudProvider.id}:${OnDemandType.ServerGroup}") } @Override @@ -170,8 +171,8 @@ class ClusterCachingAgent implements CachingAgent, OnDemandAgent, AccountAware, } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.ServerGroup && cloudProvider == amazonCloudProvider.id + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.ServerGroup && cloudProvider == amazonCloudProvider.id } @Override diff --git a/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgentSpec.groovy b/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgentSpec.groovy index 2c5d9e10e95..a1a7af3d73a 100644 --- a/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgentSpec.groovy +++ b/clouddriver-aws/src/test/groovy/com/netflix/spinnaker/clouddriver/aws/provider/agent/AmazonCloudFormationCachingAgentSpec.groovy @@ -33,6 +33,7 @@ import com.netflix.spinnaker.clouddriver.aws.cache.Keys import com.netflix.spinnaker.clouddriver.aws.security.AmazonClientProvider import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import spock.lang.Shared import spock.lang.Specification import spock.lang.Subject @@ -213,9 +214,9 @@ class AmazonCloudFormationCachingAgentSpec extends Specification { where: onDemandType | provider || expected - OnDemandAgent.OnDemandType.CloudFormation | AmazonCloudProvider.ID || true - OnDemandAgent.OnDemandType.CloudFormation | "other" || false - OnDemandAgent.OnDemandType.Job | AmazonCloudProvider.ID || false + OnDemandType.CloudFormation | AmazonCloudProvider.ID || true + OnDemandType.CloudFormation | "other" || false + OnDemandType.Job | AmazonCloudProvider.ID || false } @Unroll diff --git a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/common/cache/AzureCachingAgent.groovy b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/common/cache/AzureCachingAgent.groovy index e9c24c34052..c8bc9536700 100644 --- a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/common/cache/AzureCachingAgent.groovy +++ b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/common/cache/AzureCachingAgent.groovy @@ -28,6 +28,7 @@ import com.netflix.spinnaker.clouddriver.azure.AzureCloudProvider import com.netflix.spinnaker.clouddriver.azure.resources.common.cache.provider.AzureInfrastructureProvider import com.netflix.spinnaker.clouddriver.azure.security.AzureCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent +import com.netflix.spinnaker.clouddriver.cache.OnDemandType abstract class AzureCachingAgent implements CachingAgent, OnDemandAgent, AccountAware { @@ -84,7 +85,7 @@ abstract class AzureCachingAgent implements CachingAgent, OnDemandAgent, Account } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { + boolean handles(OnDemandType type, String cloudProvider) { type == getOnDemandType() && cloudProvider == azureCloudProvider.id } @@ -101,7 +102,7 @@ abstract class AzureCachingAgent implements CachingAgent, OnDemandAgent, Account abstract Boolean validKeys(Map data) - abstract protected OnDemandAgent.OnDemandType getOnDemandType() + abstract protected OnDemandType getOnDemandType() def static parseOnDemandCache(Collection results, long lastReadTime) { List evictions = new ArrayList() diff --git a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/appgateway/cache/AzureAppGatewayCachingAgent.groovy b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/appgateway/cache/AzureAppGatewayCachingAgent.groovy index c06d143e28c..54add578b5e 100644 --- a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/appgateway/cache/AzureAppGatewayCachingAgent.groovy +++ b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/appgateway/cache/AzureAppGatewayCachingAgent.groovy @@ -37,6 +37,7 @@ import com.netflix.spinnaker.clouddriver.azure.resources.common.cache.provider.A import com.netflix.spinnaker.clouddriver.azure.security.AzureCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import groovy.transform.WithWriteLock import groovy.util.logging.Slf4j @@ -59,7 +60,7 @@ class AzureAppGatewayCachingAgent extends AzureCachingAgent { Registry registry) { super(azureCloudProvider, accountName, creds, region, objectMapper) this.registry = registry - this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${azureCloudProvider.id}:${OnDemandAgent.OnDemandType.LoadBalancer}") + this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${azureCloudProvider.id}:${OnDemandType.LoadBalancer}") } @Override @@ -79,13 +80,13 @@ class AzureAppGatewayCachingAgent extends AzureCachingAgent { } @Override - OnDemandAgent.OnDemandType getOnDemandType() { - OnDemandAgent.OnDemandType.LoadBalancer + OnDemandType getOnDemandType() { + OnDemandType.LoadBalancer } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.LoadBalancer && cloudProvider == azureCloudProvider.id + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.LoadBalancer && cloudProvider == azureCloudProvider.id } @Override diff --git a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/loadbalancer/cache/AzureLoadBalancerCachingAgent.groovy b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/loadbalancer/cache/AzureLoadBalancerCachingAgent.groovy index ec0f8bed299..799d2dac54d 100644 --- a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/loadbalancer/cache/AzureLoadBalancerCachingAgent.groovy +++ b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/loadbalancer/cache/AzureLoadBalancerCachingAgent.groovy @@ -36,6 +36,7 @@ import com.netflix.spinnaker.clouddriver.azure.resources.loadbalancer.model.Azur import com.netflix.spinnaker.clouddriver.azure.security.AzureCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import groovy.transform.WithWriteLock import groovy.util.logging.Slf4j @@ -68,7 +69,7 @@ class AzureLoadBalancerCachingAgent implements CachingAgent, OnDemandAgent, Acco this.region = region this.objectMapper = objectMapper.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) this.registry = registry - this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${azureCloudProvider.id}:${OnDemandAgent.OnDemandType.LoadBalancer}") + this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${azureCloudProvider.id}:${OnDemandType.LoadBalancer}") } @Override @@ -97,8 +98,8 @@ class AzureLoadBalancerCachingAgent implements CachingAgent, OnDemandAgent, Acco } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.LoadBalancer && cloudProvider == azureCloudProvider.id + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.LoadBalancer && cloudProvider == azureCloudProvider.id } @Override diff --git a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/securitygroup/cache/AzureSecurityGroupCachingAgent.groovy b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/securitygroup/cache/AzureSecurityGroupCachingAgent.groovy index 993377e9771..acb8c68054f 100644 --- a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/securitygroup/cache/AzureSecurityGroupCachingAgent.groovy +++ b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/securitygroup/cache/AzureSecurityGroupCachingAgent.groovy @@ -36,6 +36,7 @@ import com.netflix.spinnaker.clouddriver.azure.resources.securitygroup.model.Azu import com.netflix.spinnaker.clouddriver.azure.security.AzureCredentials import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import groovy.transform.WithWriteLock import groovy.util.logging.Slf4j @@ -68,7 +69,7 @@ class AzureSecurityGroupCachingAgent implements CachingAgent, OnDemandAgent, Acc this.region = region this.objectMapper = objectMapper.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) this.registry = registry - this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${azureCloudProvider.id}:${OnDemandAgent.OnDemandType.SecurityGroup}") + this.metricsSupport = new OnDemandMetricsSupport(registry, this, "${azureCloudProvider.id}:${OnDemandType.SecurityGroup}") } @Override @@ -97,8 +98,8 @@ class AzureSecurityGroupCachingAgent implements CachingAgent, OnDemandAgent, Acc } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.SecurityGroup && cloudProvider == azureCloudProvider.id + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.SecurityGroup && cloudProvider == azureCloudProvider.id } @Override diff --git a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/servergroup/cache/AzureServerGroupCachingAgent.groovy b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/servergroup/cache/AzureServerGroupCachingAgent.groovy index f712d6f46fe..d1231927cfc 100644 --- a/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/servergroup/cache/AzureServerGroupCachingAgent.groovy +++ b/clouddriver-azure/src/main/groovy/com/netflix/spinnaker/clouddriver/azure/resources/servergroup/cache/AzureServerGroupCachingAgent.groovy @@ -32,6 +32,7 @@ import com.netflix.spinnaker.clouddriver.azure.common.cache.AzureCachingAgent import com.netflix.spinnaker.clouddriver.azure.common.cache.MutableCacheData import com.netflix.spinnaker.clouddriver.azure.resources.common.cache.Keys import com.netflix.spinnaker.clouddriver.azure.resources.loadbalancer.model.AzureLoadBalancer +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import static com.netflix.spinnaker.clouddriver.azure.resources.common.cache.Keys.Namespace.* import com.netflix.spinnaker.clouddriver.azure.resources.servergroup.model.AzureServerGroupDescription @@ -343,8 +344,8 @@ class AzureServerGroupCachingAgent extends AzureCachingAgent { } @Override - OnDemandAgent.OnDemandType getOnDemandType() { - OnDemandAgent.OnDemandType.ServerGroup + OnDemandType getOnDemandType() { + OnDemandType.ServerGroup } private static void cache(List data, Map cacheDataById) { diff --git a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/AbstractCloudFoundryCachingAgent.java b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/AbstractCloudFoundryCachingAgent.java index 64b101f022f..e5987cce508 100644 --- a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/AbstractCloudFoundryCachingAgent.java +++ b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/AbstractCloudFoundryCachingAgent.java @@ -29,6 +29,7 @@ import com.netflix.spinnaker.cats.cache.DefaultCacheData; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.ResourceCacheData; import com.netflix.spinnaker.clouddriver.cloudfoundry.client.CloudFoundryClient; import com.netflix.spinnaker.clouddriver.cloudfoundry.model.Views; diff --git a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryLoadBalancerCachingAgent.java b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryLoadBalancerCachingAgent.java index d31b9c1a357..f3b6839efc4 100644 --- a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryLoadBalancerCachingAgent.java +++ b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryLoadBalancerCachingAgent.java @@ -33,7 +33,7 @@ import com.netflix.spinnaker.cats.cache.CacheData; import com.netflix.spinnaker.cats.cache.RelationshipCacheFilter; import com.netflix.spinnaker.cats.provider.ProviderCache; -import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.Keys; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.ResourceCacheData; import com.netflix.spinnaker.clouddriver.cloudfoundry.client.model.RouteId; @@ -151,7 +151,7 @@ private CacheData setCacheData( @Override public boolean handles(OnDemandType type, String cloudProvider) { - return type.equals(OnDemandAgent.OnDemandType.LoadBalancer) + return type.equals(OnDemandType.LoadBalancer) && cloudProvider.equals(CloudFoundryProvider.PROVIDER_ID); } diff --git a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryServerGroupCachingAgent.java b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryServerGroupCachingAgent.java index 78b81a0ad8c..26bc9312f58 100644 --- a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryServerGroupCachingAgent.java +++ b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundryServerGroupCachingAgent.java @@ -35,7 +35,7 @@ import com.netflix.spinnaker.cats.cache.DefaultCacheData; import com.netflix.spinnaker.cats.cache.RelationshipCacheFilter; import com.netflix.spinnaker.cats.provider.ProviderCache; -import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.Keys; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.ResourceCacheData; import com.netflix.spinnaker.clouddriver.cloudfoundry.model.*; @@ -132,8 +132,8 @@ public CacheResult loadData(ProviderCache providerCache) { } @Override - public boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - return type.equals(OnDemandAgent.OnDemandType.ServerGroup) + public boolean handles(OnDemandType type, String cloudProvider) { + return type.equals(OnDemandType.ServerGroup) && cloudProvider.equals(CloudFoundryProvider.PROVIDER_ID); } diff --git a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundrySpaceCachingAgent.java b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundrySpaceCachingAgent.java index 14d6ac5ddf3..37bdb100799 100644 --- a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundrySpaceCachingAgent.java +++ b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/provider/agent/CloudFoundrySpaceCachingAgent.java @@ -31,6 +31,7 @@ import com.netflix.spinnaker.cats.agent.DefaultCacheResult; import com.netflix.spinnaker.cats.cache.CacheData; import com.netflix.spinnaker.cats.provider.ProviderCache; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.Keys; import com.netflix.spinnaker.clouddriver.cloudfoundry.cache.ResourceCacheData; import com.netflix.spinnaker.clouddriver.cloudfoundry.model.CloudFoundrySpace; diff --git a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/CatsOnDemandCacheUpdater.groovy b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/CatsOnDemandCacheUpdater.groovy index e0f5893d710..bf64ec512a1 100644 --- a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/CatsOnDemandCacheUpdater.groovy +++ b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/CatsOnDemandCacheUpdater.groovy @@ -50,17 +50,17 @@ class CatsOnDemandCacheUpdater implements OnDemandCacheUpdater { } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { + boolean handles(OnDemandType type, String cloudProvider) { onDemandAgents.any { it.handles(type, cloudProvider) } } @Override - OnDemandCacheResult handle(OnDemandAgent.OnDemandType type, String cloudProvider, Map data) { + OnDemandCacheResult handle(OnDemandType type, String cloudProvider, Map data) { Collection onDemandAgents = onDemandAgents.findAll { it.handles(type, cloudProvider) } return handle(type, onDemandAgents, data) } - OnDemandCacheResult handle(OnDemandAgent.OnDemandType type, Collection onDemandAgents, Map data) { + OnDemandCacheResult handle(OnDemandType type, Collection onDemandAgents, Map data) { log.debug("Calling handle on data: {}, onDemandAgents: {}, type: {}", data, onDemandAgents, type) boolean hasOnDemandResults = false Map> cachedIdentifiersByType = [:].withDefault { [] } @@ -139,7 +139,7 @@ class CatsOnDemandCacheUpdater implements OnDemandCacheUpdater { } @Override - Collection pendingOnDemandRequests(OnDemandAgent.OnDemandType type, String cloudProvider) { + Collection pendingOnDemandRequests(OnDemandType type, String cloudProvider) { if (agentScheduler.atomic) { return [] } @@ -152,7 +152,7 @@ class CatsOnDemandCacheUpdater implements OnDemandCacheUpdater { } @Override - Map pendingOnDemandRequest(OnDemandAgent.OnDemandType type, String cloudProvider, String id) { + Map pendingOnDemandRequest(OnDemandType type, String cloudProvider, String id) { if (agentScheduler.atomic) { return null } diff --git a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/NoopOnDemandCacheUpdater.groovy b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/NoopOnDemandCacheUpdater.groovy index 57167346bde..7a849cb41d4 100644 --- a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/NoopOnDemandCacheUpdater.groovy +++ b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/NoopOnDemandCacheUpdater.groovy @@ -25,24 +25,24 @@ import org.springframework.stereotype.Component class NoopOnDemandCacheUpdater implements OnDemandCacheUpdater { @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { + boolean handles(OnDemandType type, String cloudProvider) { false } @Override - OnDemandCacheResult handle(OnDemandAgent.OnDemandType type, String cloudProvider, Map data) { + OnDemandCacheResult handle(OnDemandType type, String cloudProvider, Map data) { return new OnDemandCacheResult( status: OnDemandCacheStatus.SUCCESSFUL ) } @Override - Collection pendingOnDemandRequests(OnDemandAgent.OnDemandType type, String cloudProvider) { + Collection pendingOnDemandRequests(OnDemandType type, String cloudProvider) { return [] } @Override - Map pendingOnDemandRequest(OnDemandAgent.OnDemandType type, String cloudProvider, String id) { + Map pendingOnDemandRequest(OnDemandType type, String cloudProvider, String id) { return null } } diff --git a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandAgent.java b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandAgent.java index 5132baa6630..7877845c9f9 100644 --- a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandAgent.java +++ b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandAgent.java @@ -20,7 +20,6 @@ import com.netflix.spinnaker.cats.provider.ProviderCache; import com.netflix.spinnaker.moniker.Moniker; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -39,25 +38,6 @@ public interface OnDemandAgent { // TODO(ttomsu): This seems like it should go in a different interface. OnDemandMetricsSupport getMetricsSupport(); - enum OnDemandType { - ServerGroup, - SecurityGroup, - LoadBalancer, - Job, - TargetGroup, - CloudFormation, - Manifest, - Function; - - static OnDemandType fromString(String s) { - return Arrays.stream(values()) - .filter(v -> v.toString().equalsIgnoreCase(s)) - .findFirst() - .orElseThrow( - () -> new IllegalArgumentException("Cannot create OnDemandType from '" + s + "'")); - } - } - boolean handles(OnDemandType type, String cloudProvider); @Data diff --git a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandCacheUpdater.groovy b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandCacheUpdater.groovy index f7da7f65291..e8baf3e4c68 100644 --- a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandCacheUpdater.groovy +++ b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandCacheUpdater.groovy @@ -34,7 +34,7 @@ interface OnDemandCacheUpdater { * @param cloudProvider * @return */ - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) + boolean handles(OnDemandType type, String cloudProvider) /** * Handles the update request @@ -42,11 +42,11 @@ interface OnDemandCacheUpdater { * @param cloudProvider * @param data */ - OnDemandCacheResult handle(OnDemandAgent.OnDemandType type, String cloudProvider, Map data) + OnDemandCacheResult handle(OnDemandType type, String cloudProvider, Map data) - Collection pendingOnDemandRequests(OnDemandAgent.OnDemandType type, String cloudProvider) + Collection pendingOnDemandRequests(OnDemandType type, String cloudProvider) - Map pendingOnDemandRequest(OnDemandAgent.OnDemandType type, String cloudProvider, String id) + Map pendingOnDemandRequest(OnDemandType type, String cloudProvider, String id) static class OnDemandCacheResult { OnDemandCacheStatus status diff --git a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandType.java b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandType.java new file mode 100644 index 00000000000..be7bb4d2596 --- /dev/null +++ b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/cache/OnDemandType.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Armory, Inc. + * + * 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 com.netflix.spinnaker.clouddriver.cache; + +import java.util.Objects; +import lombok.Data; + +@Data +public class OnDemandType { + private final String value; + + public static OnDemandType fromString(String value) { + return new OnDemandType(value); + } + + public static final OnDemandType ServerGroup = new OnDemandType("ServerGroup"); + public static final OnDemandType SecurityGroup = new OnDemandType("SecurityGroup"); + public static final OnDemandType LoadBalancer = new OnDemandType("LoadBalancer"); + public static final OnDemandType Job = new OnDemandType("Job"); + public static final OnDemandType TargetGroup = new OnDemandType("TargetGroup"); + public static final OnDemandType CloudFormation = new OnDemandType("CloudFormation"); + public static final OnDemandType Manifest = new OnDemandType("Manifest"); + public static final OnDemandType Function = new OnDemandType("Function"); + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OnDemandType that = (OnDemandType) o; + return Objects.equals(value.toLowerCase(), that.value.toLowerCase()); + } + + @Override + public int hashCode() { + return Objects.hash(value.toLowerCase()); + } + + @Override + public String toString() { + return value; + } +} diff --git a/clouddriver-core/src/test/java/com/netflix/spinnaker/clouddriver/cache/OnDemandTypeTest.java b/clouddriver-core/src/test/java/com/netflix/spinnaker/clouddriver/cache/OnDemandTypeTest.java new file mode 100644 index 00000000000..777a7960535 --- /dev/null +++ b/clouddriver-core/src/test/java/com/netflix/spinnaker/clouddriver/cache/OnDemandTypeTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020 Armory, Inc. + * + * 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 com.netflix.spinnaker.clouddriver.cache; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class OnDemandTypeTest { + + @Test + void onDemandTypesWithSameValueShouldBeEqual() { + assertEquals(new OnDemandType("instance"), new OnDemandType("instance")); + } + + @Test + void onDemandTypesWithSameValueShouldBeEqualRegardlessOfCase() { + assertEquals(new OnDemandType("Instance"), new OnDemandType("instance")); + } + + @Test + void onDemandTypesWithDifferentValuesShouldNotBeEqual() { + assertNotEquals(new OnDemandType("instance"), new OnDemandType("job")); + } + + @Test + void onDemandTypesWithSameValueShouldHaveSameHashCode() { + assertEquals(new OnDemandType("instance").hashCode(), new OnDemandType("instance").hashCode()); + } + + @Test + void onDemandTypesWithSameValueShouldHaveSameHashCodeRegardlessOfCase() { + assertEquals(new OnDemandType("Instance").hashCode(), new OnDemandType("instance").hashCode()); + } + + @Test + void onDemandTypesWithDifferentValuesShouldHaveDifferentHashCodes() { + assertNotEquals(new OnDemandType("instance").hashCode(), new OnDemandType("job").hashCode()); + } + + @Test + void toStringShouldReturnValue() { + assertEquals(new OnDemandType("instance").toString(), "instance"); + } +} diff --git a/clouddriver-ecs/src/main/java/com/netflix/spinnaker/clouddriver/ecs/provider/agent/AbstractEcsOnDemandAgent.java b/clouddriver-ecs/src/main/java/com/netflix/spinnaker/clouddriver/ecs/provider/agent/AbstractEcsOnDemandAgent.java index 1a501c7a89f..0c9a684ee5a 100644 --- a/clouddriver-ecs/src/main/java/com/netflix/spinnaker/clouddriver/ecs/provider/agent/AbstractEcsOnDemandAgent.java +++ b/clouddriver-ecs/src/main/java/com/netflix/spinnaker/clouddriver/ecs/provider/agent/AbstractEcsOnDemandAgent.java @@ -25,6 +25,7 @@ import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.ecs.EcsCloudProvider; import java.util.Collection; import java.util.LinkedList; diff --git a/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleLoadBalancerCachingAgent.groovy b/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleLoadBalancerCachingAgent.groovy index db90b680714..a805210a438 100644 --- a/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleLoadBalancerCachingAgent.groovy +++ b/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleLoadBalancerCachingAgent.groovy @@ -26,6 +26,7 @@ import com.netflix.spinnaker.cats.cache.DefaultCacheData import com.netflix.spinnaker.cats.provider.ProviderCache import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import com.netflix.spinnaker.clouddriver.google.GoogleCloudProvider import com.netflix.spinnaker.clouddriver.google.cache.CacheResultBuilder import com.netflix.spinnaker.clouddriver.google.cache.Keys @@ -69,12 +70,12 @@ abstract class AbstractGoogleLoadBalancerCachingAgent extends AbstractGoogleCach this.metricsSupport = new OnDemandMetricsSupport( registry, this, - "${GoogleCloudProvider.ID}:${OnDemandAgent.OnDemandType.LoadBalancer}") + "${GoogleCloudProvider.ID}:${OnDemandType.LoadBalancer}") } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.LoadBalancer && cloudProvider == GoogleCloudProvider.ID + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.LoadBalancer && cloudProvider == GoogleCloudProvider.ID } @Override diff --git a/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleServerGroupCachingAgent.java b/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleServerGroupCachingAgent.java index b9419be7b6c..cd93883aa00 100644 --- a/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleServerGroupCachingAgent.java +++ b/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/AbstractGoogleServerGroupCachingAgent.java @@ -68,6 +68,7 @@ import com.netflix.spinnaker.cats.provider.ProviderCache; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.google.GoogleCloudProvider; import com.netflix.spinnaker.clouddriver.google.cache.CacheResultBuilder; import com.netflix.spinnaker.clouddriver.google.cache.CacheResultBuilder.CacheDataBuilder; @@ -127,7 +128,7 @@ abstract class AbstractGoogleServerGroupCachingAgent INFORMATIVE.forType(LOAD_BALANCERS.getNs())); private static final String ON_DEMAND_TYPE = - String.join(":", GoogleCloudProvider.getID(), OnDemandType.ServerGroup.name()); + String.join(":", GoogleCloudProvider.getID(), OnDemandType.ServerGroup.getValue()); private static final Splitter COMMA = Splitter.on(',').omitEmptyStrings().trimResults(); private static final MapSplitter IMAGE_DESCRIPTION_SPLITTER = diff --git a/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/GoogleSecurityGroupCachingAgent.groovy b/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/GoogleSecurityGroupCachingAgent.groovy index e06b4ec6151..00a14b00592 100644 --- a/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/GoogleSecurityGroupCachingAgent.groovy +++ b/clouddriver-google/src/main/groovy/com/netflix/spinnaker/clouddriver/google/provider/agent/GoogleSecurityGroupCachingAgent.groovy @@ -27,6 +27,7 @@ import com.netflix.spinnaker.cats.cache.DefaultCacheData import com.netflix.spinnaker.cats.provider.ProviderCache import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import com.netflix.spinnaker.clouddriver.google.GoogleCloudProvider import com.netflix.spinnaker.clouddriver.google.cache.CacheResultBuilder import com.netflix.spinnaker.clouddriver.google.cache.Keys @@ -65,12 +66,12 @@ class GoogleSecurityGroupCachingAgent extends AbstractGoogleCachingAgent impleme this.metricsSupport = new OnDemandMetricsSupport( registry, this, - "${GoogleCloudProvider.ID}:${OnDemandAgent.OnDemandType.SecurityGroup}") + "${GoogleCloudProvider.ID}:${OnDemandType.SecurityGroup}") } @Override - boolean handles(OnDemandAgent.OnDemandType type, String cloudProvider) { - type == OnDemandAgent.OnDemandType.SecurityGroup && cloudProvider == GoogleCloudProvider.ID + boolean handles(OnDemandType type, String cloudProvider) { + type == OnDemandType.SecurityGroup && cloudProvider == GoogleCloudProvider.ID } @Override diff --git a/clouddriver-huaweicloud/src/main/java/com/netflix/spinnaker/clouddriver/huaweicloud/provider/agent/HuaweiCloudSecurityGroupCachingAgent.java b/clouddriver-huaweicloud/src/main/java/com/netflix/spinnaker/clouddriver/huaweicloud/provider/agent/HuaweiCloudSecurityGroupCachingAgent.java index e9fc9d446f1..c8c61e10916 100644 --- a/clouddriver-huaweicloud/src/main/java/com/netflix/spinnaker/clouddriver/huaweicloud/provider/agent/HuaweiCloudSecurityGroupCachingAgent.java +++ b/clouddriver-huaweicloud/src/main/java/com/netflix/spinnaker/clouddriver/huaweicloud/provider/agent/HuaweiCloudSecurityGroupCachingAgent.java @@ -29,8 +29,8 @@ import com.netflix.spinnaker.cats.agent.AgentDataType; import com.netflix.spinnaker.cats.provider.ProviderCache; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; -import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent.OnDemandType; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.huaweicloud.HuaweiCloudUtils; import com.netflix.spinnaker.clouddriver.huaweicloud.cache.CacheResultBuilder; import com.netflix.spinnaker.clouddriver.huaweicloud.cache.CacheResultBuilder.NamespaceCache; diff --git a/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/caching/agent/KubernetesV2OnDemandCachingAgent.java b/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/caching/agent/KubernetesV2OnDemandCachingAgent.java index 4987aaf1c48..2b1b97708c8 100644 --- a/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/caching/agent/KubernetesV2OnDemandCachingAgent.java +++ b/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/caching/agent/KubernetesV2OnDemandCachingAgent.java @@ -17,8 +17,6 @@ package com.netflix.spinnaker.clouddriver.kubernetes.caching.agent; -import static com.netflix.spinnaker.clouddriver.cache.OnDemandAgent.OnDemandType.Manifest; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -33,6 +31,7 @@ import com.netflix.spinnaker.cats.provider.ProviderCache; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.kubernetes.KubernetesCloudProvider; import com.netflix.spinnaker.clouddriver.kubernetes.caching.Keys; import com.netflix.spinnaker.clouddriver.kubernetes.description.manifest.KubernetesKind; @@ -77,7 +76,8 @@ protected KubernetesV2OnDemandCachingAgent( .withResource(KubernetesManifest.class); metricsSupport = - new OnDemandMetricsSupport(registry, this, KubernetesCloudProvider.ID + ":" + Manifest); + new OnDemandMetricsSupport( + registry, this, KubernetesCloudProvider.ID + ":" + OnDemandType.Manifest); } @Override @@ -333,7 +333,7 @@ public String getOnDemandAgentType() { @Override public boolean handles(OnDemandType type, String cloudProvider) { - return type == Manifest && cloudProvider.equals(KubernetesCloudProvider.ID); + return type.equals(OnDemandType.Manifest) && cloudProvider.equals(KubernetesCloudProvider.ID); } @Override diff --git a/clouddriver-lambda/src/main/java/com/netflix/spinnaker/clouddriver/lambda/provider/agent/LambdaCachingAgent.java b/clouddriver-lambda/src/main/java/com/netflix/spinnaker/clouddriver/lambda/provider/agent/LambdaCachingAgent.java index 8931d0c8f68..5b86341c3de 100644 --- a/clouddriver-lambda/src/main/java/com/netflix/spinnaker/clouddriver/lambda/provider/agent/LambdaCachingAgent.java +++ b/clouddriver-lambda/src/main/java/com/netflix/spinnaker/clouddriver/lambda/provider/agent/LambdaCachingAgent.java @@ -43,6 +43,7 @@ import com.netflix.spinnaker.clouddriver.aws.security.NetflixAmazonCredentials; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.lambda.cache.Keys; import java.util.*; import java.util.function.Predicate; @@ -265,7 +266,7 @@ private final Map addConfigAttributes( @Override public boolean handles(OnDemandType type, String cloudProvider) { - return type == OnDemandType.Function && cloudProvider.equals(AmazonCloudProvider.ID); + return type.equals(OnDemandType.Function) && cloudProvider.equals(AmazonCloudProvider.ID); } @Override diff --git a/clouddriver-titus/src/main/groovy/com/netflix/spinnaker/clouddriver/titus/caching/agents/TitusV2ClusterCachingAgent.java b/clouddriver-titus/src/main/groovy/com/netflix/spinnaker/clouddriver/titus/caching/agents/TitusV2ClusterCachingAgent.java index 02b431d63b7..4aeefc9f38a 100644 --- a/clouddriver-titus/src/main/groovy/com/netflix/spinnaker/clouddriver/titus/caching/agents/TitusV2ClusterCachingAgent.java +++ b/clouddriver-titus/src/main/groovy/com/netflix/spinnaker/clouddriver/titus/caching/agents/TitusV2ClusterCachingAgent.java @@ -45,6 +45,7 @@ import com.netflix.spinnaker.clouddriver.cache.CustomScheduledAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent; import com.netflix.spinnaker.clouddriver.cache.OnDemandMetricsSupport; +import com.netflix.spinnaker.clouddriver.cache.OnDemandType; import com.netflix.spinnaker.clouddriver.titus.TitusClientProvider; import com.netflix.spinnaker.clouddriver.titus.TitusCloudProvider; import com.netflix.spinnaker.clouddriver.titus.caching.Keys; @@ -179,7 +180,7 @@ public Optional> getCacheKeyPatterns() { @Override public boolean handles(OnDemandType type, String cloudProvider) { - return type == OnDemandType.ServerGroup && cloudProvider.equals(TitusCloudProvider.ID); + return type.equals(OnDemandType.ServerGroup) && cloudProvider.equals(TitusCloudProvider.ID); } @Override diff --git a/clouddriver-web/src/main/groovy/com/netflix/spinnaker/clouddriver/controllers/CacheController.groovy b/clouddriver-web/src/main/groovy/com/netflix/spinnaker/clouddriver/controllers/CacheController.groovy index 3fd4ec6dfe9..de86dbcb5c4 100644 --- a/clouddriver-web/src/main/groovy/com/netflix/spinnaker/clouddriver/controllers/CacheController.groovy +++ b/clouddriver-web/src/main/groovy/com/netflix/spinnaker/clouddriver/controllers/CacheController.groovy @@ -20,6 +20,7 @@ import com.netflix.spinnaker.cats.cache.AgentIntrospection import com.netflix.spinnaker.cats.cache.CacheIntrospectionStore import com.netflix.spinnaker.clouddriver.cache.OnDemandAgent import com.netflix.spinnaker.clouddriver.cache.OnDemandCacheUpdater +import com.netflix.spinnaker.clouddriver.cache.OnDemandType import com.netflix.spinnaker.kork.web.exceptions.NotFoundException import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus @@ -37,7 +38,7 @@ class CacheController { ResponseEntity handleOnDemand(@PathVariable String cloudProvider, @PathVariable String type, @RequestBody Map data) { - OnDemandAgent.OnDemandType onDemandType = getOnDemandType(type); + OnDemandType onDemandType = getOnDemandType(type); def onDemandCacheResult = onDemandCacheUpdaters.find { it.handles(onDemandType, cloudProvider) @@ -66,7 +67,7 @@ class CacheController { Collection pendingOnDemands(@PathVariable String cloudProvider, @PathVariable String type, @RequestParam(value = "id", required = false) String id) { - OnDemandAgent.OnDemandType onDemandType = getOnDemandType(type) + OnDemandType onDemandType = getOnDemandType(type) onDemandCacheUpdaters.findAll { it.handles(onDemandType, cloudProvider) }?.collect { @@ -78,9 +79,9 @@ class CacheController { }.flatten() } - static OnDemandAgent.OnDemandType getOnDemandType(String type) { + static OnDemandType getOnDemandType(String type) { try { - return OnDemandAgent.OnDemandType.fromString(type) + return OnDemandType.fromString(type) } catch (IllegalArgumentException e) { throw new NotFoundException(e.message) }