From a9a8b2a2c549f0f9a34c3f5b5fbb3ec3a01b1d5c Mon Sep 17 00:00:00 2001 From: Jon Schneider Date: Thu, 6 Jun 2019 08:17:06 -0500 Subject: [PATCH] fix(cf): Filter by provider type when deciding which accounts to delete (#3755) --- .../CloudFoundryCredentialsSynchronizer.java | 1 + ...oudFoundryCredentialsSynchronizerTest.java | 36 ++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizer.java b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizer.java index 40f2f4abdb7..20213a865f9 100644 --- a/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizer.java +++ b/clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizer.java @@ -119,6 +119,7 @@ private List getDeletedAccountNames( CloudFoundryConfigurationProperties cloudFoundryConfigurationProperties) { List existingNames = accountCredentialsRepository.getAll().stream() + .filter(c -> CloudFoundryProvider.PROVIDER_ID.equals(c.getCloudProvider())) .map(AccountCredentials::getName) .collect(Collectors.toList()); diff --git a/clouddriver-cloudfoundry/src/test/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizerTest.java b/clouddriver-cloudfoundry/src/test/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizerTest.java index 728d8672e99..c613c43d3fa 100644 --- a/clouddriver-cloudfoundry/src/test/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizerTest.java +++ b/clouddriver-cloudfoundry/src/test/java/com/netflix/spinnaker/clouddriver/cloudfoundry/security/CloudFoundryCredentialsSynchronizerTest.java @@ -67,12 +67,45 @@ void setUp() { provider, configurationProperties, repository, catsModule, registry); } + private class StaticOtherProviderCredentials implements AccountCredentials { + @Override + public String getName() { + return "unchanged-other-provider"; + } + + @Override + public String getEnvironment() { + return null; + } + + @Override + public String getAccountType() { + return null; + } + + @Override + public Void getCredentials() { + return null; + } + + @Override + public String getCloudProvider() { + return "other"; + } + + @Override + public List getRequiredGroupMembership() { + return null; + } + } + @Test void synchronize() { repository.save("to-be-changed", createCredentials("to-be-changed")); repository.save("unchanged2", createCredentials("unchanged2")); repository.save("unchanged3", createCredentials("unchanged3")); repository.save("to-be-deleted", createCredentials("to-be-deleted")); + repository.save("unchanged-other-provider", new StaticOtherProviderCredentials()); loadProviderFromRepository(); @@ -91,7 +124,8 @@ void synchronize() { assertThat(repository.getAll()) .extracting(AccountCredentials::getName) - .containsExactlyInAnyOrder("unchanged2", "unchanged3", "added", "to-be-changed"); + .containsExactlyInAnyOrder( + "unchanged2", "unchanged3", "added", "to-be-changed", "unchanged-other-provider"); assertThat(ProviderUtils.getScheduledAccounts(provider)) .containsExactlyInAnyOrder("unchanged2", "unchanged3", "added", "to-be-changed");