diff options
18 files changed, 31 insertions, 44 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java index fcfad041b76..29a0fb9fffc 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java @@ -18,9 +18,8 @@ class ContainerInfoImpl implements Docker.ContainerInfo { @Override public Optional<Integer> getPid() { InspectContainerResponse.ContainerState state = inspectContainerResponse.getState(); - Integer containerPid = -1; if (state.getRunning()) { - containerPid = state.getPid(); + Integer containerPid = state.getPid(); if (containerPid == null) { throw new RuntimeException("PID of running container " + containerName + " is null"); } diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java index 587061488b6..337cbdadd77 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java @@ -120,7 +120,7 @@ public class DockerImpl implements Docker { return dockerConfigBuilder; } - private void setupDockerNetworkIfNeeded() throws IOException, InterruptedException { + private void setupDockerNetworkIfNeeded() throws IOException { if (! dockerClient.listNetworksCmd().withNameFilter(DOCKER_CUSTOM_MACVLAN_NETWORK_NAME).exec().isEmpty()) return; // Use IPv6 address if there is a mix of IP4 and IPv6 by taking the longest address. diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerNetworkCreator.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerNetworkCreator.java index 03f8375e02d..7d767b689d6 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerNetworkCreator.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerNetworkCreator.java @@ -11,10 +11,10 @@ import java.net.UnknownHostException; import java.util.Collections; /** - * @author valerijf + * @author freva */ class DockerNetworkCreator { - static InetAddress getDefaultGatewayLinux(boolean ipv6) throws IOException, InterruptedException { + static InetAddress getDefaultGatewayLinux(boolean ipv6) throws IOException { String command = ipv6 ? "route -A inet6 -n | grep 'UG[ \t]' | awk '{print $2}'" : "route -n | grep 'UG[ \t]' | awk '{print $2}'"; diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java index b02f7f17686..523abe0f5ce 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerTestUtils.java @@ -6,8 +6,6 @@ import com.yahoo.metrics.simple.MetricReceiver; import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper; import java.io.File; -import java.io.IOException; -import java.util.concurrent.ExecutionException; /** * Helper class for testing full integration with docker daemon, requires running daemon. To run these tests: @@ -69,7 +67,7 @@ public class DockerTestUtils { .withName(DockerImpl.DOCKER_CUSTOM_MACVLAN_NETWORK_NAME).withDriver("bridge").withIpam(ipam).exec(); } - public static void buildSimpleHttpServerDockerImage(DockerImpl docker, DockerImage dockerImage) throws IOException, ExecutionException, InterruptedException { + public static void buildSimpleHttpServerDockerImage(DockerImpl docker, DockerImage dockerImage) { try { docker.deleteImage(dockerImage); } catch (Exception e) { diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/VespaSSLConfig.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/VespaSSLConfig.java index 1da95818393..a8db1de45c5 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/VespaSSLConfig.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/VespaSSLConfig.java @@ -76,7 +76,7 @@ public class VespaSSLConfig implements SSLConfig { } public static KeyStore createKeyStore(final String keypem, final String certpem) throws NoSuchAlgorithmException, - InvalidKeySpecException, IOException, CertificateException, KeyStoreException { + IOException, CertificateException, KeyStoreException { PrivateKey privateKey = loadPrivateKey(keypem); requireNonNull(privateKey); List<Certificate> privateCertificates = loadCertificates(certpem); @@ -128,8 +128,7 @@ public class VespaSSLConfig implements SSLConfig { /** * Return private key ("key.pem") from Reader */ - private static PrivateKey loadPrivateKey(final Reader reader) throws IOException, NoSuchAlgorithmException, - InvalidKeySpecException { + private static PrivateKey loadPrivateKey(final Reader reader) throws IOException, NoSuchAlgorithmException { try (PEMParser pemParser = new PEMParser(reader)) { Object readObject = pemParser.readObject(); while (readObject != null) { @@ -175,8 +174,7 @@ public class VespaSSLConfig implements SSLConfig { /** * Return KeyPair from "key.pem" */ - private static PrivateKey loadPrivateKey(final String keypem) throws IOException, NoSuchAlgorithmException, - InvalidKeySpecException { + private static PrivateKey loadPrivateKey(final String keypem) throws IOException, NoSuchAlgorithmException { try (StringReader certReader = new StringReader(keypem); BufferedReader reader = new BufferedReader(certReader)) { return loadPrivateKey(reader); diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java index 72fe753c82b..e83270b5949 100644 --- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java +++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java @@ -138,7 +138,7 @@ public class DockerImageGarbageCollectionTest { return this; } - private void expectUnusedImages(final String... imageIds) throws Exception { + private void expectUnusedImages(final String... imageIds) { final List<DockerImage> expectedUnusedImages = Arrays.stream(imageIds) .map(DockerImage::new) .collect(Collectors.toList()); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java index cafc4254f60..ed1e23efd24 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java @@ -24,8 +24,7 @@ public interface DockerOperations { void scheduleDownloadOfImage(ContainerNodeSpec nodeSpec, Runnable callback); - void removeContainer(ContainerNodeSpec nodeSpec, Container existingContainer, Orchestrator orchestrator) - throws Exception; + void removeContainer(ContainerNodeSpec nodeSpec, Container existingContainer, Orchestrator orchestrator); void executeCommandInContainer(ContainerName containerName, String[] command); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java index 985345f4196..ebca0c3b253 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java @@ -307,8 +307,7 @@ public class DockerOperationsImpl implements DockerOperations { } @Override - public void removeContainer(final ContainerNodeSpec nodeSpec, final Container existingContainer, Orchestrator orchestrator) - throws Exception { + public void removeContainer(final ContainerNodeSpec nodeSpec, final Container existingContainer, Orchestrator orchestrator) { PrefixLogger logger = PrefixLogger.getNodeAgentLogger(DockerOperationsImpl.class, nodeSpec.containerName); final ContainerName containerName = existingContainer.name; if (existingContainer.isRunning) { diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java index cf42940734e..3356d36f9b7 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java @@ -16,7 +16,6 @@ import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgent; import com.yahoo.vespa.hosted.node.admin.util.PrefixLogger; import com.yahoo.vespa.hosted.provision.Node; -import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -236,15 +235,11 @@ public class NodeAdminImpl implements NodeAdmin { return; } - try { - ensureNodeAgentForNodeIsStarted(nodeSpec.get()); - } catch (IOException e) { - logger.warning("Failed to bring container to desired state", e); - } + ensureNodeAgentForNodeIsStarted(nodeSpec.get()); }); } - private void ensureNodeAgentForNodeIsStarted(final ContainerNodeSpec nodeSpec) throws IOException { + private void ensureNodeAgentForNodeIsStarted(final ContainerNodeSpec nodeSpec) { if (nodeAgents.containsKey(nodeSpec.hostname)) { return; } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java index 389ff95f9de..d03a5fe9af5 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java @@ -25,7 +25,7 @@ public interface NodeAgent { */ void unfreeze(); - void stopServices(ContainerName containerName) throws Exception; + void stopServices(ContainerName containerName); /** * Make NodeAgent check for work to be done. diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index 13bae004e5a..bbeb87f85e1 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -196,7 +196,7 @@ public class NodeAgentImpl implements NodeAgent { containerState = RUNNING; } - private void updateNodeRepoAndMarkNodeAsReady(ContainerNodeSpec nodeSpec) throws IOException { + private void updateNodeRepoAndMarkNodeAsReady(ContainerNodeSpec nodeSpec) { publishStateToNodeRepoIfChanged( nodeSpec.hostname, // Clear current Docker image and vespa version, as nothing is running on this node @@ -208,7 +208,7 @@ public class NodeAgentImpl implements NodeAgent { nodeRepository.markAsReady(nodeSpec.hostname); } - private void updateNodeRepoWithCurrentAttributes(final ContainerNodeSpec nodeSpec) throws IOException { + private void updateNodeRepoWithCurrentAttributes(final ContainerNodeSpec nodeSpec) { final NodeAttributes nodeAttributes = new NodeAttributes() .withRestartGeneration(nodeSpec.wantedRestartGeneration.orElse(null)) // update reboot gen with wanted gen if set, we ignore reboot for Docker nodes but @@ -220,7 +220,7 @@ public class NodeAgentImpl implements NodeAgent { publishStateToNodeRepoIfChanged(nodeSpec.hostname, nodeAttributes); } - private void publishStateToNodeRepoIfChanged(String hostName, NodeAttributes currentAttributes) throws IOException { + private void publishStateToNodeRepoIfChanged(String hostName, NodeAttributes currentAttributes) { // TODO: We should only update if the new current values do not match the node repo's current values if (!currentAttributes.equals(lastAttributesSet)) { logger.info("Publishing new set of attributes to node repo: " @@ -291,7 +291,7 @@ public class NodeAgentImpl implements NodeAgent { } @Override - public void stopServices(ContainerName containerName) throws Exception { + public void stopServices(ContainerName containerName) { logger.info("Stopping services for " + containerName); dockerOperations.stopServicesOnNode(containerName); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepository.java index f29e79ec271..c6613610150 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepository.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepository.java @@ -14,9 +14,9 @@ import java.util.Optional; public interface NodeRepository { List<ContainerNodeSpec> getContainersToRun() throws IOException; - Optional<ContainerNodeSpec> getContainerNodeSpec(String hostName) throws IOException; + Optional<ContainerNodeSpec> getContainerNodeSpec(String hostName); - void updateNodeAttributes(String hostName, NodeAttributes nodeAttributes) throws IOException; + void updateNodeAttributes(String hostName, NodeAttributes nodeAttributes); - void markAsReady(String hostName) throws IOException; + void markAsReady(String hostName); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java index 43219ccf2e2..d6272c40674 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java @@ -126,7 +126,7 @@ public class NodeRepositoryImpl implements NodeRepository { } @Override - public void updateNodeAttributes(final String hostName, final NodeAttributes nodeAttributes) throws IOException { + public void updateNodeAttributes(final String hostName, final NodeAttributes nodeAttributes) { UpdateNodeAttributesResponse response = requestExecutor.patch( "/nodes/v2/node/" + hostName, port, @@ -140,7 +140,7 @@ public class NodeRepositoryImpl implements NodeRepository { } @Override - public void markAsReady(final String hostName) throws IOException { + public void markAsReady(final String hostName) { NodeReadyResponse response = requestExecutor.put( "/nodes/v2/state/ready/" + hostName, port, diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoreCollector.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoreCollector.java index 0f15268147b..3f0f504bf65 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoreCollector.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoreCollector.java @@ -136,7 +136,7 @@ public class CoreCollector { return path.toFile().getFreeSpace() > parseTotalMemorySize(memInfo); } - int parseTotalMemorySize(String memInfo) throws IOException { + int parseTotalMemorySize(String memInfo) { Matcher matcher = TOTAL_MEMORY_PATTERN.matcher(memInfo); if (!matcher.find()) throw new RuntimeException("Could not parse meminfo: " + memInfo); return Integer.valueOf(matcher.group("totalMem")); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoredumpHandler.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoredumpHandler.java index d936975f2c9..2004a126d81 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoredumpHandler.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/CoredumpHandler.java @@ -99,7 +99,7 @@ public class CoredumpHandler { return Files.move(coredumpPath, folder.resolve(coredumpPath.getFileName())); } - private Map<String, Object> collectMetadata(Path coredumpPath, Map<String, Object> nodeAttributes) throws IOException, InterruptedException { + private Map<String, Object> collectMetadata(Path coredumpPath, Map<String, Object> nodeAttributes) { Map<String, Object> metadata = coreCollector.collect(coredumpPath); metadata.putAll(nodeAttributes); @@ -112,7 +112,7 @@ public class CoredumpHandler { Files.write(metadataPath, gson.toJson(metadata).getBytes()); } - void report(Path coredumpDirectory) throws IOException, InterruptedException { + void report(Path coredumpDirectory) throws IOException { // Use core dump UUID as document ID String documentId = coredumpDirectory.getFileName().toString(); String metadata = new String(Files.readAllBytes(coredumpDirectory.resolve(METADATA_FILE_NAME))); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java index 1a0fb5f4dc8..1c8a74b959f 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java @@ -72,7 +72,7 @@ public class RunVespaLocal { /** * Starts config server, provisions numNodesToProvision and puts them in ready state */ - void startLocalZoneWithNodes(int numNodesToProvision) throws IOException, InterruptedException, ExecutionException { + void startLocalZoneWithNodes(int numNodesToProvision) throws IOException { logger.info("Starting config-server"); LocalZoneUtils.startConfigServerIfNeeded(docker, environmentBuilder.build()); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java index a5b0d7bb7a7..01551b28c02 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java @@ -15,7 +15,6 @@ import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl; import com.yahoo.vespa.hosted.node.admin.util.Environment; import com.yahoo.vespa.hosted.node.admin.util.InetAddressResolver; -import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Optional; @@ -68,7 +67,7 @@ public class DockerTester implements AutoCloseable { nodeRepositoryMock.addContainerNodeSpec(containerNodeSpec); } - public Optional<ContainerNodeSpec> getContainerNodeSpec(String hostname) throws IOException { + public Optional<ContainerNodeSpec> getContainerNodeSpec(String hostname) { return nodeRepositoryMock.getContainerNodeSpec(hostname); } diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java index b54bc4a6e61..77f2ffe518a 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java @@ -35,7 +35,7 @@ public class NodeRepoMock implements NodeRepository { } @Override - public Optional<ContainerNodeSpec> getContainerNodeSpec(String hostName) throws IOException { + public Optional<ContainerNodeSpec> getContainerNodeSpec(String hostName) { synchronized (monitor) { return containerNodeSpecs.stream() .filter(containerNodeSpec -> containerNodeSpec.hostname.equals(hostName)) @@ -44,14 +44,14 @@ public class NodeRepoMock implements NodeRepository { } @Override - public void updateNodeAttributes(String hostName, NodeAttributes nodeAttributes) throws IOException { + public void updateNodeAttributes(String hostName, NodeAttributes nodeAttributes) { synchronized (monitor) { callOrderVerifier.add("updateNodeAttributes with HostName: " + hostName + ", " + nodeAttributes); } } @Override - public void markAsReady(String hostName) throws IOException { + public void markAsReady(String hostName) { Optional<ContainerNodeSpec> cns = getContainerNodeSpec(hostName); synchronized (monitor) { |