xds: Rename to dynamic reloading cert provider. (#7547)

Co-authored-by: matthewstevenson88 <mattstev@google.com>
This commit is contained in:
sanjaypujare 2020-10-22 12:57:43 -07:00 committed by GitHub
parent 45b8b0eb60
commit 26a4ca38ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 50 additions and 43 deletions

View File

@ -37,9 +37,10 @@ import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
/** Implementation of {@link CertificateProvider} for Zatar cert provider. */
final class ZatarCertificateProvider extends CertificateProvider {
private static final Logger logger = Logger.getLogger(ZatarCertificateProvider.class.getName());
/** Implementation of {@link CertificateProvider} for dynamic reloading cert provider. */
final class DynamicReloadingCertificateProvider extends CertificateProvider {
private static final Logger logger =
Logger.getLogger(DynamicReloadingCertificateProvider.class.getName());
private final SynchronizationContext syncContext;
private final ScheduledExecutorService scheduledExecutorService;
@ -52,7 +53,7 @@ final class ZatarCertificateProvider extends CertificateProvider {
@VisibleForTesting SynchronizationContext.ScheduledHandle scheduledHandle;
private Path lastModifiedTarget;
ZatarCertificateProvider(
DynamicReloadingCertificateProvider(
DistributorWatcher watcher,
boolean notifyCertUpdates,
String directory,
@ -75,7 +76,8 @@ final class ZatarCertificateProvider extends CertificateProvider {
}
private SynchronizationContext createSynchronizationContext(String details) {
final InternalLogId logId = InternalLogId.allocate("ZatarCertificateProvider", details);
final InternalLogId logId =
InternalLogId.allocate("DynamicReloadingCertificateProvider", details);
return new SynchronizationContext(
new Thread.UncaughtExceptionHandler() {
private boolean panicMode;
@ -182,7 +184,7 @@ final class ZatarCertificateProvider extends CertificateProvider {
private static final Factory DEFAULT_INSTANCE =
new Factory() {
@Override
ZatarCertificateProvider create(
DynamicReloadingCertificateProvider create(
DistributorWatcher watcher,
boolean notifyCertUpdates,
String directory,
@ -192,7 +194,7 @@ final class ZatarCertificateProvider extends CertificateProvider {
long refreshIntervalInSeconds,
ScheduledExecutorService scheduledExecutorService,
TimeProvider timeProvider) {
return new ZatarCertificateProvider(
return new DynamicReloadingCertificateProvider(
watcher,
notifyCertUpdates,
directory,
@ -209,7 +211,7 @@ final class ZatarCertificateProvider extends CertificateProvider {
return DEFAULT_INSTANCE;
}
abstract ZatarCertificateProvider create(
abstract DynamicReloadingCertificateProvider create(
DistributorWatcher watcher,
boolean notifyCertUpdates,
String directory,

View File

@ -28,9 +28,9 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
/**
* Provider of {@link ZatarCertificateProvider}s.
* Provider of {@link DynamicReloadingCertificateProvider}s.
*/
final class ZatarCertificateProviderProvider implements CertificateProviderProvider {
final class DynamicReloadingCertificateProviderProvider implements CertificateProviderProvider {
private static final String DIRECTORY_KEY = "directory";
private static final String CERT_FILE_KEY = "certificate-file";
@ -41,34 +41,34 @@ final class ZatarCertificateProviderProvider implements CertificateProviderProvi
@VisibleForTesting static final long REFRESH_INTERVAL_DEFAULT = 600L;
static final String ZATAR_PROVIDER_NAME = "gke-cas-certs";
static final String DYNAMIC_RELOADING_PROVIDER_NAME = "gke-cas-certs";
static {
CertificateProviderRegistry.getInstance()
.register(
new ZatarCertificateProviderProvider(
ZatarCertificateProvider.Factory.getInstance(),
new DynamicReloadingCertificateProviderProvider(
DynamicReloadingCertificateProvider.Factory.getInstance(),
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
TimeProvider.SYSTEM_TIME_PROVIDER));
}
final ZatarCertificateProvider.Factory zatarCertificateProviderFactory;
final DynamicReloadingCertificateProvider.Factory dynamicReloadingCertificateProviderFactory;
private final ScheduledExecutorServiceFactory scheduledExecutorServiceFactory;
private final TimeProvider timeProvider;
@VisibleForTesting
ZatarCertificateProviderProvider(
ZatarCertificateProvider.Factory zatarCertificateProviderFactory,
DynamicReloadingCertificateProviderProvider(
DynamicReloadingCertificateProvider.Factory dynamicReloadingCertificateProviderFactory,
ScheduledExecutorServiceFactory scheduledExecutorServiceFactory,
TimeProvider timeProvider) {
this.zatarCertificateProviderFactory = zatarCertificateProviderFactory;
this.dynamicReloadingCertificateProviderFactory = dynamicReloadingCertificateProviderFactory;
this.scheduledExecutorServiceFactory = scheduledExecutorServiceFactory;
this.timeProvider = timeProvider;
}
@Override
public String getName() {
return ZATAR_PROVIDER_NAME;
return DYNAMIC_RELOADING_PROVIDER_NAME;
}
@Override
@ -76,7 +76,7 @@ final class ZatarCertificateProviderProvider implements CertificateProviderProvi
Object config, CertificateProvider.DistributorWatcher watcher, boolean notifyCertUpdates) {
Config configObj = validateAndTranslateConfig(config);
return zatarCertificateProviderFactory.create(
return dynamicReloadingCertificateProviderFactory.create(
watcher,
notifyCertUpdates,
configObj.directory,
@ -117,7 +117,7 @@ final class ZatarCertificateProviderProvider implements CertificateProviderProvi
ScheduledExecutorService create() {
return Executors.newSingleThreadScheduledExecutor(
new ThreadFactoryBuilder()
.setNameFormat("zatar" + "-%d")
.setNameFormat("dynamicReloading" + "-%d")
.setDaemon(true)
.build());
}

View File

@ -36,35 +36,40 @@ import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
/** Unit tests for {@link ZatarCertificateProviderProvider}. */
/** Unit tests for {@link DynamicReloadingCertificateProviderProvider}. */
@RunWith(JUnit4.class)
public class ZatarCertificateProviderProviderTest {
public class DynamicReloadingCertificateProviderProviderTest {
@Mock ZatarCertificateProvider.Factory zatarCertificateProviderFactory;
@Mock private ZatarCertificateProviderProvider.ScheduledExecutorServiceFactory
@Mock DynamicReloadingCertificateProvider.Factory dynamicReloadingCertificateProviderFactory;
@Mock private DynamicReloadingCertificateProviderProvider.ScheduledExecutorServiceFactory
scheduledExecutorServiceFactory;
@Mock private TimeProvider timeProvider;
private ZatarCertificateProviderProvider provider;
private DynamicReloadingCertificateProviderProvider provider;
@Before
public void setUp() throws IOException {
MockitoAnnotations.initMocks(this);
provider =
new ZatarCertificateProviderProvider(
zatarCertificateProviderFactory, scheduledExecutorServiceFactory, timeProvider);
new DynamicReloadingCertificateProviderProvider(
dynamicReloadingCertificateProviderFactory,
scheduledExecutorServiceFactory,
timeProvider);
}
@Test
public void providerRegisteredName() {
CertificateProviderProvider certProviderProvider =
CertificateProviderRegistry.getInstance()
.getProvider(ZatarCertificateProviderProvider.ZATAR_PROVIDER_NAME);
assertThat(certProviderProvider).isInstanceOf(ZatarCertificateProviderProvider.class);
ZatarCertificateProviderProvider zatarCertificateProviderProvider =
(ZatarCertificateProviderProvider) certProviderProvider;
assertThat(zatarCertificateProviderProvider.zatarCertificateProviderFactory)
.isSameInstanceAs(ZatarCertificateProvider.Factory.getInstance());
.getProvider(
DynamicReloadingCertificateProviderProvider.DYNAMIC_RELOADING_PROVIDER_NAME);
assertThat(certProviderProvider)
.isInstanceOf(DynamicReloadingCertificateProviderProvider.class);
DynamicReloadingCertificateProviderProvider dynamicReloadingCertificateProviderProvider =
(DynamicReloadingCertificateProviderProvider) certProviderProvider;
assertThat(
dynamicReloadingCertificateProviderProvider.dynamicReloadingCertificateProviderFactory)
.isSameInstanceAs(DynamicReloadingCertificateProvider.Factory.getInstance());
}
@Test
@ -72,11 +77,11 @@ public class ZatarCertificateProviderProviderTest {
CertificateProvider.DistributorWatcher distWatcher =
new CertificateProvider.DistributorWatcher();
@SuppressWarnings("unchecked")
Map<String, ?> map = (Map<String, ?>) JsonParser.parse(MINIMAL_ZATAR_CONFIG);
Map<String, ?> map = (Map<String, ?>) JsonParser.parse(MINIMAL_DYNAMIC_RELOADING_CONFIG);
ScheduledExecutorService mockService = mock(ScheduledExecutorService.class);
when(scheduledExecutorServiceFactory.create()).thenReturn(mockService);
provider.createCertificateProvider(map, distWatcher, true);
verify(zatarCertificateProviderFactory, times(1))
verify(dynamicReloadingCertificateProviderFactory, times(1))
.create(
eq(distWatcher),
eq(true),
@ -94,11 +99,11 @@ public class ZatarCertificateProviderProviderTest {
CertificateProvider.DistributorWatcher distWatcher =
new CertificateProvider.DistributorWatcher();
@SuppressWarnings("unchecked")
Map<String, ?> map = (Map<String, ?>) JsonParser.parse(FULL_ZATAR_CONFIG);
Map<String, ?> map = (Map<String, ?>) JsonParser.parse(FULL_DYNAMIC_RELOADING_CONFIG);
ScheduledExecutorService mockService = mock(ScheduledExecutorService.class);
when(scheduledExecutorServiceFactory.create()).thenReturn(mockService);
provider.createCertificateProvider(map, distWatcher, true);
verify(zatarCertificateProviderFactory, times(1))
verify(dynamicReloadingCertificateProviderFactory, times(1))
.create(
eq(distWatcher),
eq(true),
@ -167,7 +172,7 @@ public class ZatarCertificateProviderProviderTest {
}
}
private static final String MINIMAL_ZATAR_CONFIG =
private static final String MINIMAL_DYNAMIC_RELOADING_CONFIG =
"{\n"
+ " \"directory\": \"/var/run/gke-spiffe/certs/..data\","
+ " \"certificate-file\": \"certificates.pem\","
@ -175,7 +180,7 @@ public class ZatarCertificateProviderProviderTest {
+ " \"ca-certificate-file\": \"ca_certificates.pem\""
+ " }";
private static final String FULL_ZATAR_CONFIG =
private static final String FULL_DYNAMIC_RELOADING_CONFIG =
"{\n"
+ " \"directory\": \"/var/run/gke-spiffe/certs/..data1\","
+ " \"certificate-file\": \"certificates2.pem\","

View File

@ -58,9 +58,9 @@ import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
/** Unit tests for {@link ZatarCertificateProvider}. */
/** Unit tests for {@link DynamicReloadingCertificateProvider}. */
@RunWith(JUnit4.class)
public class ZatarCertificateProviderTest {
public class DynamicReloadingCertificateProviderTest {
private static final String CERT_FILE = "cert.pem";
private static final String KEY_FILE = "key.pem";
private static final String ROOT_FILE = "root.pem";
@ -72,7 +72,7 @@ public class ZatarCertificateProviderTest {
@Rule public TemporaryFolder tempFolder = new TemporaryFolder();
private String symlink;
private ZatarCertificateProvider provider;
private DynamicReloadingCertificateProvider provider;
@Before
public void setUp() throws IOException {
@ -83,7 +83,7 @@ public class ZatarCertificateProviderTest {
symlink = new File(tempFolder.getRoot(), "..data").getAbsolutePath();
provider =
new ZatarCertificateProvider(
new DynamicReloadingCertificateProvider(
watcher,
true,
symlink,