mirror of
https://github.com/google/nomulus.git
synced 2025-05-14 00:17:20 +02:00
Clean up some code quality issues in GCP proxy
All changes are suggested by IntelliJ code inspection. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=189586104
This commit is contained in:
parent
22b575b17d
commit
c72e01f75e
13 changed files with 27 additions and 32 deletions
|
@ -73,8 +73,8 @@ public class CertificateModule {
|
||||||
ImmutableList<Object> objects, Class<T> clazz, Function<T, E> converter) {
|
ImmutableList<Object> objects, Class<T> clazz, Function<T, E> converter) {
|
||||||
return objects
|
return objects
|
||||||
.stream()
|
.stream()
|
||||||
.filter(obj -> clazz.isInstance(obj))
|
.filter(clazz::isInstance)
|
||||||
.map(obj -> clazz.cast(obj))
|
.map(clazz::cast)
|
||||||
.map(converter)
|
.map(converter)
|
||||||
.collect(toImmutableList());
|
.collect(toImmutableList());
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ package google.registry.proxy;
|
||||||
|
|
||||||
import static google.registry.util.ResourceUtils.readResourceBytes;
|
import static google.registry.util.ResourceUtils.readResourceBytes;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
@ -43,6 +42,7 @@ import io.netty.handler.timeout.ReadTimeoutHandler;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Qualifier;
|
import javax.inject.Qualifier;
|
||||||
|
@ -56,7 +56,7 @@ public class EppProtocolModule {
|
||||||
|
|
||||||
/** Dagger qualifier to provide epp protocol related handlers and other bindings. */
|
/** Dagger qualifier to provide epp protocol related handlers and other bindings. */
|
||||||
@Qualifier
|
@Qualifier
|
||||||
public @interface EppProtocol {};
|
public @interface EppProtocol {}
|
||||||
|
|
||||||
private static final String PROTOCOL_NAME = "epp";
|
private static final String PROTOCOL_NAME = "epp";
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,6 @@ import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
|
||||||
import com.google.api.client.googleapis.util.Utils;
|
import com.google.api.client.googleapis.util.Utils;
|
||||||
import com.google.api.services.cloudkms.v1.CloudKMS;
|
import com.google.api.services.cloudkms.v1.CloudKMS;
|
||||||
import com.google.api.services.cloudkms.v1.model.DecryptRequest;
|
import com.google.api.services.cloudkms.v1.model.DecryptRequest;
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.monitoring.metrics.MetricReporter;
|
import com.google.monitoring.metrics.MetricReporter;
|
||||||
|
@ -48,10 +46,12 @@ import io.netty.handler.ssl.OpenSsl;
|
||||||
import io.netty.handler.ssl.SslProvider;
|
import io.netty.handler.ssl.SslProvider;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import java.util.logging.ConsoleHandler;
|
import java.util.logging.ConsoleHandler;
|
||||||
import java.util.logging.Handler;
|
import java.util.logging.Handler;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -96,9 +96,9 @@ public class ProxyModule {
|
||||||
private void configureLogging() {
|
private void configureLogging() {
|
||||||
// Remove all other handlers on the root logger to avoid double logging.
|
// Remove all other handlers on the root logger to avoid double logging.
|
||||||
Logger rootLogger = Logger.getLogger("");
|
Logger rootLogger = Logger.getLogger("");
|
||||||
Arrays.asList(rootLogger.getHandlers()).forEach(h -> rootLogger.removeHandler(h));
|
Arrays.asList(rootLogger.getHandlers()).forEach(rootLogger::removeHandler);
|
||||||
|
|
||||||
// If running on in a non-local environment, use GCP JSON formater.
|
// If running on in a non-local environment, use GCP JSON formatter.
|
||||||
Handler rootHandler = new ConsoleHandler();
|
Handler rootHandler = new ConsoleHandler();
|
||||||
rootHandler.setLevel(Level.FINE);
|
rootHandler.setLevel(Level.FINE);
|
||||||
if (env != Environment.LOCAL) {
|
if (env != Environment.LOCAL) {
|
||||||
|
@ -129,19 +129,19 @@ public class ProxyModule {
|
||||||
@Provides
|
@Provides
|
||||||
@WhoisProtocol
|
@WhoisProtocol
|
||||||
int provideWhoisPort(ProxyConfig config) {
|
int provideWhoisPort(ProxyConfig config) {
|
||||||
return Optional.fromNullable(whoisPort).or(config.whois.port);
|
return Optional.ofNullable(whoisPort).orElse(config.whois.port);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@EppProtocol
|
@EppProtocol
|
||||||
int provideEppPort(ProxyConfig config) {
|
int provideEppPort(ProxyConfig config) {
|
||||||
return Optional.fromNullable(eppPort).or(config.epp.port);
|
return Optional.ofNullable(eppPort).orElse(config.epp.port);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@HealthCheckProtocol
|
@HealthCheckProtocol
|
||||||
int provideHealthCheckPort(ProxyConfig config) {
|
int provideHealthCheckPort(ProxyConfig config) {
|
||||||
return Optional.fromNullable(healthCheckPort).or(config.healthCheck.port);
|
return Optional.ofNullable(healthCheckPort).orElse(config.healthCheck.port);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
@ -295,7 +295,7 @@ public class ProxyModule {
|
||||||
|
|
||||||
private final byte[] bytes;
|
private final byte[] bytes;
|
||||||
|
|
||||||
static final PemBytes create(byte[] bytes) {
|
static PemBytes create(byte[] bytes) {
|
||||||
return new PemBytes(bytes);
|
return new PemBytes(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
package google.registry.proxy;
|
package google.registry.proxy;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
@ -36,6 +35,7 @@ import io.netty.handler.codec.LineBasedFrameDecoder;
|
||||||
import io.netty.handler.timeout.ReadTimeoutHandler;
|
import io.netty.handler.timeout.ReadTimeoutHandler;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Qualifier;
|
import javax.inject.Qualifier;
|
||||||
|
@ -47,7 +47,7 @@ public class WhoisProtocolModule {
|
||||||
|
|
||||||
/** Dagger qualifier to provide whois protocol related handlers and other bindings. */
|
/** Dagger qualifier to provide whois protocol related handlers and other bindings. */
|
||||||
@Qualifier
|
@Qualifier
|
||||||
public @interface WhoisProtocol {};
|
public @interface WhoisProtocol {}
|
||||||
|
|
||||||
private static final String PROTOCOL_NAME = "whois";
|
private static final String PROTOCOL_NAME = "whois";
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ import static google.registry.proxy.handler.ProxyProtocolHandler.REMOTE_ADDRESS_
|
||||||
import static google.registry.proxy.handler.SslServerInitializer.CLIENT_CERTIFICATE_PROMISE_KEY;
|
import static google.registry.proxy.handler.SslServerInitializer.CLIENT_CERTIFICATE_PROMISE_KEY;
|
||||||
import static google.registry.util.X509Utils.getCertificateHash;
|
import static google.registry.util.X509Utils.getCertificateHash;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import google.registry.proxy.metric.FrontendMetrics;
|
import google.registry.proxy.metric.FrontendMetrics;
|
||||||
import google.registry.util.FormattingLogger;
|
import google.registry.util.FormattingLogger;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
@ -36,6 +35,7 @@ import io.netty.handler.ssl.SslHandshakeCompletionEvent;
|
||||||
import io.netty.util.AttributeKey;
|
import io.netty.util.AttributeKey;
|
||||||
import io.netty.util.concurrent.Promise;
|
import io.netty.util.concurrent.Promise;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/** Handler that processes EPP protocol logic. */
|
/** Handler that processes EPP protocol logic. */
|
||||||
public class EppServiceHandler extends HttpsRelayServiceHandler {
|
public class EppServiceHandler extends HttpsRelayServiceHandler {
|
||||||
|
|
|
@ -17,7 +17,6 @@ package google.registry.proxy.handler;
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import google.registry.proxy.metric.FrontendMetrics;
|
import google.registry.proxy.metric.FrontendMetrics;
|
||||||
import google.registry.util.FormattingLogger;
|
import google.registry.util.FormattingLogger;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
@ -38,6 +37,7 @@ import io.netty.handler.codec.http.cookie.Cookie;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler that relays a single (framed) ByteBuf message to an HTTPS server.
|
* Handler that relays a single (framed) ByteBuf message to an HTTPS server.
|
||||||
|
|
|
@ -14,13 +14,13 @@
|
||||||
|
|
||||||
package google.registry.proxy.handler;
|
package google.registry.proxy.handler;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import google.registry.proxy.metric.FrontendMetrics;
|
import google.registry.proxy.metric.FrontendMetrics;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.handler.codec.http.FullHttpRequest;
|
import io.netty.handler.codec.http.FullHttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpHeaderNames;
|
import io.netty.handler.codec.http.HttpHeaderNames;
|
||||||
import io.netty.handler.codec.http.HttpHeaderValues;
|
import io.netty.handler.codec.http.HttpHeaderValues;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/** Handler that processes WHOIS protocol logic. */
|
/** Handler that processes WHOIS protocol logic. */
|
||||||
public final class WhoisServiceHandler extends HttpsRelayServiceHandler {
|
public final class WhoisServiceHandler extends HttpsRelayServiceHandler {
|
||||||
|
|
|
@ -78,7 +78,7 @@ public class MetricParameters {
|
||||||
this(ImmutableMap.copyOf(System.getenv()), MetricParameters::gceConnectionFactory);
|
this(ImmutableMap.copyOf(System.getenv()), MetricParameters::gceConnectionFactory);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final HttpURLConnection gceConnectionFactory(String path) {
|
private static HttpURLConnection gceConnectionFactory(String path) {
|
||||||
String url = GCE_METADATA_URL_BASE + path;
|
String url = GCE_METADATA_URL_BASE + path;
|
||||||
try {
|
try {
|
||||||
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
|
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
|
||||||
|
@ -91,7 +91,7 @@ public class MetricParameters {
|
||||||
logger.warningfmt(e, "Incorrect GCE metadata server URL: %s", url);
|
logger.warningfmt(e, "Incorrect GCE metadata server URL: %s", url);
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
private String readEnvVar(String envVar) {
|
private String readEnvVar(String envVar) {
|
||||||
return envVarMap.getOrDefault(envVar, "");
|
return envVarMap.getOrDefault(envVar, "");
|
||||||
|
|
|
@ -37,16 +37,13 @@ public class GcpJsonFormatterTest {
|
||||||
private final LogRecord logRecord = new LogRecord(Level.WARNING, MESSAGE);
|
private final LogRecord logRecord = new LogRecord(Level.WARNING, MESSAGE);
|
||||||
|
|
||||||
private static String makeJson(String severity, String source, String message) {
|
private static String makeJson(String severity, String source, String message) {
|
||||||
StringBuilder builder = new StringBuilder();
|
return "{"
|
||||||
builder.append("{");
|
+ Joiner.on(",")
|
||||||
builder.append(
|
|
||||||
Joiner.on(",")
|
|
||||||
.join(
|
.join(
|
||||||
makeJsonField("severity", severity),
|
makeJsonField("severity", severity),
|
||||||
makeJsonField("source", source),
|
makeJsonField("source", source),
|
||||||
makeJsonField("message", "\\n" + message)));
|
makeJsonField("message", "\\n" + message))
|
||||||
builder.append("}\n");
|
+ "}\n";
|
||||||
return builder.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String makeJsonField(String name, String content) {
|
private static String makeJsonField(String name, String content) {
|
||||||
|
|
|
@ -18,7 +18,6 @@ import static com.google.common.collect.ImmutableList.toImmutableList;
|
||||||
import static google.registry.proxy.ProxyConfig.Environment.TEST;
|
import static google.registry.proxy.ProxyConfig.Environment.TEST;
|
||||||
import static google.registry.proxy.ProxyConfig.getProxyConfig;
|
import static google.registry.proxy.ProxyConfig.getProxyConfig;
|
||||||
|
|
||||||
import com.google.common.base.Supplier;
|
|
||||||
import com.google.common.base.Suppliers;
|
import com.google.common.base.Suppliers;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
@ -55,6 +54,7 @@ import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class ProxyProtocolHandlerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_proxyHeaderMalformed_singleFrame() {
|
public void testSuccess_proxyHeaderMalformed_singleFrame() {
|
||||||
header = String.format("PROXY UNKNOWN\r\n");
|
header = "PROXY UNKNOWN\r\n";
|
||||||
String message = "some message";
|
String message = "some message";
|
||||||
// Header processed, rest of the message passed along.
|
// Header processed, rest of the message passed along.
|
||||||
assertThat(channel.writeInbound(Unpooled.wrappedBuffer((header + message).getBytes(UTF_8))))
|
assertThat(channel.writeInbound(Unpooled.wrappedBuffer((header + message).getBytes(UTF_8))))
|
||||||
|
|
|
@ -62,8 +62,7 @@ public class MetricParametersTest {
|
||||||
ZONE_PATH,
|
ZONE_PATH,
|
||||||
zoneConnection);
|
zoneConnection);
|
||||||
private final HashMap<String, String> fakeEnvVarMap = new HashMap<>();
|
private final HashMap<String, String> fakeEnvVarMap = new HashMap<>();
|
||||||
private final Function<String, HttpURLConnection> fakeConnectionFactory =
|
private final Function<String, HttpURLConnection> fakeConnectionFactory = mockConnections::get;
|
||||||
path -> mockConnections.get(path);
|
|
||||||
|
|
||||||
private final MetricParameters metricParameters =
|
private final MetricParameters metricParameters =
|
||||||
new MetricParameters(fakeEnvVarMap, fakeConnectionFactory);
|
new MetricParameters(fakeEnvVarMap, fakeConnectionFactory);
|
||||||
|
|
|
@ -46,7 +46,6 @@ public class QuotaManagerTest {
|
||||||
new QuotaManager(tokenStore, MoreExecutors.newDirectExecutorService());
|
new QuotaManager(tokenStore, MoreExecutors.newDirectExecutorService());
|
||||||
private QuotaRequest request;
|
private QuotaRequest request;
|
||||||
private QuotaResponse response;
|
private QuotaResponse response;
|
||||||
private QuotaRebate rebate;
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_requestApproved() {
|
public void testSuccess_requestApproved() {
|
||||||
|
@ -74,7 +73,7 @@ public class QuotaManagerTest {
|
||||||
public void testSuccess_rebate() throws Exception {
|
public void testSuccess_rebate() throws Exception {
|
||||||
DateTime grantedTokenRefillTime = clock.nowUtc();
|
DateTime grantedTokenRefillTime = clock.nowUtc();
|
||||||
response = QuotaResponse.create(true, USER_ID, grantedTokenRefillTime);
|
response = QuotaResponse.create(true, USER_ID, grantedTokenRefillTime);
|
||||||
rebate = QuotaRebate.create(response);
|
QuotaRebate rebate = QuotaRebate.create(response);
|
||||||
Future<?> unusedFuture = quotaManager.releaseQuota(rebate);
|
Future<?> unusedFuture = quotaManager.releaseQuota(rebate);
|
||||||
verify(tokenStore).scheduleRefresh();
|
verify(tokenStore).scheduleRefresh();
|
||||||
verify(tokenStore).put(USER_ID, grantedTokenRefillTime);
|
verify(tokenStore).put(USER_ID, grantedTokenRefillTime);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue