mirror of https://github.com/grpc/grpc-java.git
xds: Rename to dynamic reloading cert provider. (#7547)
Co-authored-by: matthewstevenson88 <mattstev@google.com>
This commit is contained in:
parent
45b8b0eb60
commit
26a4ca38ec
|
|
@ -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,
|
||||
|
|
@ -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());
|
||||
}
|
||||
|
|
@ -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\","
|
||||
|
|
@ -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,
|
||||
Loading…
Reference in New Issue