summaryrefslogtreecommitdiffstats
path: root/docker-api
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-11-05 11:21:02 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-11-05 11:21:02 +0100
commit00e7d922dd9dc3defb28188d2a4775162afae519 (patch)
tree208ab3245fcf718e338a206c9c167fdee170c254 /docker-api
parenta0aa29e8c4fa396eba20612a2cea75ac3720f93e (diff)
Remove mac address for docker container
Diffstat (limited to 'docker-api')
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java34
-rw-r--r--docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java20
2 files changed, 0 insertions, 54 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
index ed623c82259..32302a98757 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
@@ -13,8 +13,6 @@ import com.yahoo.vespa.hosted.dockerapi.exception.DockerException;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.nio.file.Path;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -22,10 +20,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.Random;
import java.util.Set;
import java.util.stream.Collectors;
-import java.util.stream.IntStream;
import java.util.stream.Stream;
import static com.yahoo.vespa.hosted.dockerapi.DockerImpl.LABEL_NAME_MANAGEDBY;
@@ -192,10 +188,6 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand {
.withLabels(labels)
.withEnv(environmentAssignments);
- networkMode
- .filter(mode -> ! mode.toLowerCase().equals("host"))
- .ifPresent(mode -> containerCmd.withMacAddress(generateMACAddress(hostName, ipv4Address, ipv6Address)));
-
hostName.ifPresent(containerCmd::withHostName);
networkMode.ifPresent(hostConfig::withNetworkMode);
ipv4Address.ifPresent(containerCmd::withIpv4Address);
@@ -259,30 +251,4 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand {
.filter(s -> !s.isEmpty())
.collect(Collectors.joining(" "));
}
-
- /**
- * Generates a pseudo-random MAC address based on the hostname, IPv4- and IPv6-address.
- */
- static String generateMACAddress(Optional<String> hostname, Optional<String> ipv4Address, Optional<String> ipv6Address) {
- final String seed = hostname.orElse("") + ipv4Address.orElse("") + ipv6Address.orElse("");
- Random rand = getPRNG(seed);
- byte[] macAddr = new byte[6];
- rand.nextBytes(macAddr);
-
- // Set second-last bit (locally administered MAC address), unset last bit (unicast)
- macAddr[0] = (byte) ((macAddr[0] | 2) & 254);
- return IntStream.range(0, macAddr.length)
- .mapToObj(i -> String.format("%02x", macAddr[i]))
- .collect(Collectors.joining(":"));
- }
-
- private static Random getPRNG(String seed) {
- try {
- SecureRandom rand = SecureRandom.getInstance("SHA1PRNG");
- rand.setSeed(seed.getBytes());
- return rand;
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException("Failed to get pseudo-random number generator", e);
- }
- }
}
diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java
index 3b8b0a84e64..57d2c738904 100644
--- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java
+++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java
@@ -1,15 +1,12 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.dockerapi;
-
import com.yahoo.config.provision.DockerImage;
import org.junit.Test;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.file.Paths;
-import java.util.Optional;
-import java.util.stream.Stream;
import static org.junit.Assert.assertEquals;
@@ -64,21 +61,4 @@ public class CreateContainerCommandImplTest {
"arg1 " +
"arg2", createContainerCommand.toString());
}
-
- @Test
- public void generateMacAddressTest() {
- String[][] addresses = {
- {"test123.host.yahoo.com", null, "abcd:1234::1", "ee:ae:a9:de:ad:c2"},
- {"test123.host.yahoo.com", null, "abcd:1234::2", "fa:81:11:1b:ff:fb"},
- {"unique.host.yahoo.com", null, "abcd:1234::1", "96:a4:00:77:90:3b"},
- {"test123.host.yahoo.com", "10.0.0.1", null, "7e:de:b3:7c:9e:96"},
- {"test123.host.yahoo.com", "10.0.0.1", "abcd:1234::1", "6a:06:af:16:25:95"}};
-
- Stream.of(addresses).forEach(address -> {
- String generatedMac = CreateContainerCommandImpl.generateMACAddress(
- Optional.of(address[0]), Optional.ofNullable(address[1]), Optional.ofNullable(address[2]));
- String expectedMac = address[3];
- assertEquals(expectedMac, generatedMac);
- });
- }
}