Move the caching and logic for the ConnectivityModule internally, since it isn't being used externally.
RELNOTES: None.
PiperOrigin-RevId: 252446380
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 487e2e3..8eba51a 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -841,7 +841,7 @@
"//src/main/java/com/google/devtools/build/lib/buildeventservice",
"//src/main/java/com/google/devtools/build/lib/dynamic",
"//src/main/java/com/google/devtools/build/lib/metrics:metrics_module",
- "//src/main/java/com/google/devtools/build/lib/network:connectivity",
+ "//src/main/java/com/google/devtools/build/lib/network:noop_connectivity",
"//src/main/java/com/google/devtools/build/lib/outputfilter",
"//src/main/java/com/google/devtools/build/lib/profiler/callcounts:callcounts_module",
"//src/main/java/com/google/devtools/build/lib/profiler/memory:allocationtracker_module",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/Bazel.java b/src/main/java/com/google/devtools/build/lib/bazel/Bazel.java
index 3e9afb0..1ba566e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/Bazel.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/Bazel.java
@@ -61,7 +61,7 @@
com.google.devtools.build.lib.dynamic.DynamicExecutionModule.class,
com.google.devtools.build.lib.bazel.rules.BazelRulesModule.class,
com.google.devtools.build.lib.bazel.rules.BazelStrategyModule.class,
- com.google.devtools.build.lib.network.ConnectivityModule.class,
+ com.google.devtools.build.lib.network.NoOpConnectivityModule.class,
com.google.devtools.build.lib.buildeventservice.BazelBuildEventServiceModule.class,
com.google.devtools.build.lib.profiler.callcounts.CallcountsModule.class,
com.google.devtools.build.lib.profiler.memory.AllocationTrackerModule.class,
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
index a49091f..ad37851 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
@@ -36,8 +36,8 @@
"//src/main/java/com/google/devtools/build/lib/buildeventstream",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/transports",
- "//src/main/java/com/google/devtools/build/lib/network:connectivity",
"//src/main/java/com/google/devtools/build/lib/network:connectivity_status",
+ "//src/main/java/com/google/devtools/build/lib/network:noop_connectivity",
"//src/main/java/com/google/devtools/build/lib/profiler",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/common/options",
diff --git a/src/main/java/com/google/devtools/build/lib/network/BUILD b/src/main/java/com/google/devtools/build/lib/network/BUILD
index dbc730e..349014c 100644
--- a/src/main/java/com/google/devtools/build/lib/network/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/network/BUILD
@@ -8,14 +8,11 @@
)
java_library(
- name = "connectivity",
- srcs = ["ConnectivityModule.java"],
+ name = "noop_connectivity",
+ srcs = ["NoOpConnectivityModule.java"],
deps = [
":connectivity_status",
"//src/main/java/com/google/devtools/build/lib:runtime",
- "//src/main/java/com/google/devtools/build/lib:util",
- "//src/main/java/com/google/devtools/common/options",
- "//third_party:guava",
],
)
diff --git a/src/main/java/com/google/devtools/build/lib/network/ConnectivityModule.java b/src/main/java/com/google/devtools/build/lib/network/ConnectivityModule.java
deleted file mode 100644
index 85343b8..0000000
--- a/src/main/java/com/google/devtools/build/lib/network/ConnectivityModule.java
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2019 The Bazel Authors. All rights reserved.
-//
-// 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.google.devtools.build.lib.network;
-
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.network.ConnectivityStatus.Status;
-import com.google.devtools.build.lib.runtime.BlazeModule;
-import com.google.devtools.build.lib.runtime.Command;
-import com.google.devtools.build.lib.runtime.CommandEnvironment;
-import com.google.devtools.build.lib.util.AbruptExitException;
-import com.google.devtools.common.options.Converters.DurationConverter;
-import com.google.devtools.common.options.Option;
-import com.google.devtools.common.options.OptionDocumentationCategory;
-import com.google.devtools.common.options.OptionEffectTag;
-import com.google.devtools.common.options.OptionsBase;
-import java.time.Duration;
-
-/** Stores network status for Bazel-adjacent services, usually remote build and BES. */
-public class ConnectivityModule extends BlazeModule implements ConnectivityStatusProvider {
-
- /** Options that define the behavior of the Connectivity Modules. */
- public static class ConnectivityOptions extends OptionsBase {
- @Option(
- name = "connectivity_check_frequency",
- defaultValue = "5s",
- documentationCategory = OptionDocumentationCategory.REMOTE,
- effectTags = {OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION},
- converter = DurationConverter.class,
- help =
- "How often to perform a connectivity and reachability check for remote services "
- + "(eg. 5s). 0 disables the check and assumes connectivity.")
- public Duration cacheLifetime;
- }
-
- /**
- * Attempts to retrieve and return the specified service's status from the cache, calculating it
- * if it's not present in the cache.
- *
- * @param service the name of the service we want to determine connectivity status for
- * @param cache a cache that stores the current connectivity status for each service
- * @return the connectivity status for the specified service
- */
- protected ConnectivityStatus determineConnectivity(String service, Cache<String, Status> cache) {
- return new ConnectivityStatus(Status.OK, /* serviceInfo= */ "");
- }
-
- private Duration cacheLifetime;
- private Cache<String, Status> cache;
-
- @Override
- public Iterable<Class<? extends OptionsBase>> getCommandOptions(Command command) {
- return ImmutableList.of(ConnectivityOptions.class);
- }
-
- @Override
- public void beforeCommand(CommandEnvironment env) throws AbruptExitException {
- ConnectivityOptions options = env.getOptions().getOptions(ConnectivityOptions.class);
- Duration newCacheLifetime = options.cacheLifetime;
- // Initialize the cache if we haven't yet, or if the options have changed.
- // TODO(steinman): Make this a LoadingCache where load() calls determineConnectivity().
- if (cache == null || !newCacheLifetime.equals(cacheLifetime)) {
- cache = CacheBuilder.newBuilder().expireAfterWrite(newCacheLifetime).build();
- cacheLifetime = newCacheLifetime;
- }
- }
-
- @Override
- public ConnectivityStatus getStatus(String service) {
- if (cacheLifetime.isZero()) {
- return new ConnectivityStatus(Status.OK, /* serviceInfo= */ "");
- }
- return determineConnectivity(service, cache);
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/network/NoOpConnectivityModule.java b/src/main/java/com/google/devtools/build/lib/network/NoOpConnectivityModule.java
new file mode 100644
index 0000000..75c28bb
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/network/NoOpConnectivityModule.java
@@ -0,0 +1,29 @@
+// Copyright 2019 The Bazel Authors. All rights reserved.
+//
+// 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.google.devtools.build.lib.network;
+
+import com.google.devtools.build.lib.network.ConnectivityStatus.Status;
+import com.google.devtools.build.lib.runtime.BlazeModule;
+
+/**
+ * No-op implementation of {@link ConnectivityStatusProvider}, which always returns an OK status.
+ */
+public class NoOpConnectivityModule extends BlazeModule implements ConnectivityStatusProvider {
+
+ @Override
+ public ConnectivityStatus getStatus(String service) {
+ return new ConnectivityStatus(Status.OK, /* serviceInfo= */ "");
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/BUILD b/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
index 5d38918..b008e6e 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
@@ -33,7 +33,7 @@
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/exec/local:options",
"//src/main/java/com/google/devtools/build/lib/includescanning",
- "//src/main/java/com/google/devtools/build/lib/network:connectivity",
+ "//src/main/java/com/google/devtools/build/lib/network:noop_connectivity",
"//src/main/java/com/google/devtools/build/lib/sandbox",
"//src/main/java/com/google/devtools/build/lib/shell",
"//src/main/java/com/google/devtools/build/lib/standalone",
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/util/BlazeRuntimeWrapper.java b/src/test/java/com/google/devtools/build/lib/buildtool/util/BlazeRuntimeWrapper.java
index 5a02509..4ea6a29 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/util/BlazeRuntimeWrapper.java
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/util/BlazeRuntimeWrapper.java
@@ -33,7 +33,6 @@
import com.google.devtools.build.lib.exec.BinTools;
import com.google.devtools.build.lib.exec.ExecutionOptions;
import com.google.devtools.build.lib.exec.local.LocalExecutionOptions;
-import com.google.devtools.build.lib.network.ConnectivityModule;
import com.google.devtools.build.lib.packages.StarlarkSemanticsOptions;
import com.google.devtools.build.lib.pkgcache.LoadingOptions;
import com.google.devtools.build.lib.pkgcache.PackageCacheOptions;
@@ -148,7 +147,6 @@
PackageCacheOptions.class,
StarlarkSemanticsOptions.class,
BlazeCommandEventHandler.Options.class,
- ConnectivityModule.ConnectivityOptions.class,
SandboxOptions.class));
for (BlazeModule module : runtime.getBlazeModules()) {