Skip to content

Commit fbd1ce1

Browse files
authored
Merge pull request #868 from KostyaSha/travis1_13
try more versions
2 parents a2b819a + 13e4e9f commit fbd1ce1

20 files changed

+204
-76
lines changed

.travis.yml

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ services:
66
- docker
77

88
jdk:
9-
- oraclejdk7
9+
- oraclejdk8
1010

1111
install: true
1212

1313
env:
1414
global:
15+
- CODECOV=true
1516
- DOCKER_TLS_VERIFY=""
1617
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
1718
# via the "travis encrypt" command using the project repo's public key
@@ -21,14 +22,16 @@ env:
2122
- COVERITY_SCAN_NOTIFICATION_EMAIL="kanstantsin.sha@gmail.com"
2223

2324
matrix:
24-
# - repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.13.1-0~ubuntu-trusty" CODECOV=true
25-
# - repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.13.1-0~ubuntu-trusty" CODECOV=true
26-
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.12.6-0~ubuntu-trusty" DEPLOY=true COVERITY=true CODECOV=true
27-
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.12.6-0~ubuntu-trusty" CODECOV=true
28-
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.11.2-0~trusty" CODECOV=true
29-
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.11.2-0~trusty" CODECOV=true
30-
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.10.3-0~trusty" CODECOV=true
31-
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.10.3-0~trusty" CODECOV=true
25+
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="17.05.0~ce-0~ubuntu-trusty" DEPLOY=true COVERITY=true
26+
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="17.05.0~ce-0~ubuntu-trusty"
27+
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.13.1-0~ubuntu-trusty"
28+
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.13.1-0~ubuntu-trusty"
29+
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.12.6-0~ubuntu-trusty"
30+
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.12.6-0~ubuntu-trusty"
31+
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.11.2-0~trusty"
32+
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.11.2-0~trusty"
33+
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.10.3-0~trusty"
34+
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.10.3-0~trusty"
3235
# - repo="testing" DOCKER_HOST="tcp://127.0.0.1:2375"
3336
# - repo="testing" DOCKER_HOST="unix:///var/run/docker.sock"
3437
# - repo="experimental" DOCKER_HOST="tcp://127.0.0.1:2375"
@@ -50,5 +53,5 @@ script:
5053
after_success:
5154
- ./.travis/travis-after-success.sh
5255

53-
after_script:
54-
- sudo cat /var/log/upstart/docker.log
56+
#after_script:
57+
# - sudo cat /var/log/upstart/docker.log

.travis/travis-before-install.sh

Lines changed: 83 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,32 @@
11
#!/usr/bin/env bash
22

3+
SWARM_VERSION="${SWARM_VERSION:-}"
4+
FAST_BUILD="${FAST_BUILD:-}"
35

6+
## fix coverity issue
47
sudo apt-get install -y -q ca-certificates
5-
6-
export HOST_PORT=2375
78
echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
9+
##
810

9-
10-
if [ "$FAST_BUILD" == true ]; then
11+
if [ "$FAST_BUILD" == "true" ]; then
1112
echo "Fast build, skipping docker installations."
1213
exit 0
1314
fi
1415

1516
set -exu
1617

18+
sudo ip a ls
19+
sudo ip r ls
20+
sudo ss -antpl
21+
22+
export HOST_PORT="2375"
23+
export SWARM_PORT="2377"
24+
export HOST_IP="$(ip a show dev eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)"
25+
# because of swarm use docker-engine directly
26+
export PRE_DOCKER_HOST="$DOCKER_HOST"
27+
export DOCKER_HOST="tcp://127.0.0.1:${HOST_PORT}"
28+
29+
1730
docker info
1831
docker version
1932

@@ -89,3 +102,69 @@ registry.email=${registry_email}
89102
registry.url=https://index.docker.io/v1/
90103
91104
EOF
105+
106+
if [[ -n $SWARM_VERSION ]]; then
107+
# export SWARM_PORT="${PRE_DOCKER_HOST##*:}"
108+
109+
docker pull swarm
110+
111+
# # kv store https://docs.docker.com/v1.11/engine/userguide/networking/get-started-overlay/
112+
# docker run -d \
113+
# -p "8500:8500" \
114+
# -h "consul" \
115+
# --name=consul \
116+
# progrium/consul -server -bootstrap
117+
#
118+
# sleep 5
119+
120+
# SWARM_TOKEN=$(docker run swarm c)
121+
122+
# docker run \
123+
# -d \
124+
# --name=swarm_manager \
125+
# -p ${SWARM_PORT}:2375 \
126+
# "swarm:${SWARM_VERSION}" \
127+
# manage token://${SWARM_TOKEN}
128+
129+
docker run \
130+
-d \
131+
-p ${SWARM_PORT}:2375 \
132+
--name=swarm_manager \
133+
swarm manage --engine-refresh-min-interval "3s" --engine-refresh-max-interval "6s" "nodes://${HOST_IP}:${HOST_PORT}"
134+
# swarm manage --engine-refresh-min-interval "3s" --engine-refresh-max-interval "6s" "consul://${HOST_IP}:8500"
135+
136+
# join engine to swarm
137+
docker run \
138+
-d \
139+
"--name=swarm_join" \
140+
"swarm:${SWARM_VERSION}" \
141+
join --advertise="${HOST_IP}:${HOST_PORT}" --delay="0s" --heartbeat "5s" "nodes://${HOST_IP}:${HOST_PORT}"
142+
# join --advertise="${HOST_IP}:${HOST_PORT}" --delay="0s" --heartbeat "5s" "token://${SWARM_TOKEN}"
143+
144+
docker run --rm \
145+
"swarm:${SWARM_VERSION}" list "nodes://${HOST_IP}:${HOST_PORT}"
146+
147+
docker ps -a
148+
sudo ss -antpl
149+
150+
sleep 30
151+
152+
docker logs swarm_join
153+
docker logs swarm_manager
154+
# docker logs consul
155+
156+
# switch to swarm connection
157+
DOCKER_HOST="$PRE_DOCKER_HOST"
158+
159+
docker version
160+
docker info
161+
162+
NODES=$(docker info | grep "Nodes:" | awk '{ print $2 }')
163+
if [[ $NODES -eq "0" ]]; then
164+
echo "Swarm didn't connect"
165+
exit 1
166+
fi
167+
168+
# test via swarm
169+
docker pull busybox
170+
fi

src/main/java/com/github/dockerjava/api/command/InspectContainerResponse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.github.dockerjava.api.model.VolumeRW;
2121
import com.github.dockerjava.api.model.VolumesRW;
2222
import com.github.dockerjava.core.RemoteApiVersion;
23+
import org.apache.commons.lang.builder.ToStringStyle;
2324

2425
/**
2526
*
@@ -217,7 +218,7 @@ public List<String> getExecIds() {
217218

218219
@Override
219220
public String toString() {
220-
return ToStringBuilder.reflectionToString(this);
221+
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
221222
}
222223

223224
@JsonIgnoreProperties(ignoreUnknown = true)

src/main/java/com/github/dockerjava/core/AuthConfigFile.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
import com.fasterxml.jackson.core.type.TypeReference;
1515
import com.fasterxml.jackson.databind.ObjectMapper;
16+
import com.fasterxml.jackson.databind.node.ObjectNode;
1617
import com.github.dockerjava.api.model.AuthConfig;
1718
import com.github.dockerjava.api.model.AuthConfigurations;
1819

@@ -26,11 +27,12 @@ public class AuthConfigFile {
2627
private static final TypeReference<Map<String, Map<String, AuthConfig>>> CONFIG_JSON_MAP_TYPE =
2728
new TypeReference<Map<String, Map<String, AuthConfig>>>() {
2829
};
30+
private static final String AUTHS_PROPERTY = "auths";
2931

3032
private final Map<String, AuthConfig> authConfigMap;
3133

3234
public AuthConfigFile() {
33-
authConfigMap = new HashMap<String, AuthConfig>();
35+
authConfigMap = new HashMap<>();
3436
}
3537

3638
void addConfig(AuthConfig config) {
@@ -114,10 +116,12 @@ public static AuthConfigFile loadConfig(File confFile) throws IOException {
114116
*/
115117
try {
116118
// try registry version 2
117-
Map<String, Map<String, AuthConfig>> configJson = MAPPER.readValue(confFile, CONFIG_JSON_MAP_TYPE);
118-
if (configJson != null) {
119-
configMap = configJson.get("auths");
119+
final ObjectNode node = filterNonAuthsFromJSON(confFile);
120+
Map<String, Map<String, AuthConfig>> configJson = MAPPER.convertValue(node, CONFIG_JSON_MAP_TYPE);
121+
if (configJson != null && !configJson.isEmpty()) {
122+
configMap = configJson.get(AUTHS_PROPERTY);
120123
}
124+
121125
} catch (IOException e1) {
122126
try {
123127
// try registry version 1
@@ -130,7 +134,10 @@ public static AuthConfigFile loadConfig(File confFile) throws IOException {
130134
if (configMap != null) {
131135
for (Map.Entry<String, AuthConfig> entry : configMap.entrySet()) {
132136
AuthConfig authConfig = entry.getValue();
133-
decodeAuth(authConfig.getAuth(), authConfig);
137+
final String auth = authConfig.getAuth();
138+
if (auth == null) continue;
139+
140+
decodeAuth(auth, authConfig);
134141
authConfig.withAuth(null);
135142
authConfig.withRegistryAddress(entry.getKey());
136143
configFile.addConfig(authConfig);
@@ -158,6 +165,15 @@ public static AuthConfigFile loadConfig(File confFile) throws IOException {
158165

159166
}
160167

168+
private static ObjectNode filterNonAuthsFromJSON(final File confFile) throws IOException {
169+
final ObjectNode node = MAPPER.readValue(confFile, ObjectNode.class);
170+
if (!node.has(AUTHS_PROPERTY)) {
171+
throw new IOException("No Auth Config contained");
172+
}
173+
node.retain(AUTHS_PROPERTY);
174+
return node;
175+
}
176+
161177
static void decodeAuth(String auth, AuthConfig config) throws IOException {
162178
String str = new String(Base64.decodeBase64(auth), Charset.forName("UTF-8"));
163179
String[] parts = str.split(":", 2);

src/main/java/com/github/dockerjava/jaxrs/CommitCmdExec.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@ public CommitCmdExec(WebTarget baseResource, DockerClientConfig dockerClientConf
2222

2323
@Override
2424
protected String execute(CommitCmd command) {
25-
WebTarget webTarget = getBaseResource().path("/commit").queryParam("container", command.getContainerId())
26-
.queryParam("repo", command.getRepository()).queryParam("tag", command.getTag())
27-
.queryParam("m", command.getMessage()).queryParam("author", command.getAuthor());
25+
WebTarget webTarget = getBaseResource().path("/commit")
26+
.queryParam("container", command.getContainerId())
27+
.queryParam("repo", command.getRepository())
28+
.queryParam("tag", command.getTag())
29+
.queryParam("m", command.getMessage())
30+
.queryParam("author", command.getAuthor());
2831

2932
webTarget = booleanQueryParam(webTarget, "pause", command.hasPauseEnabled());
3033

src/main/java/com/github/dockerjava/netty/exec/EventsCmdExec.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.github.dockerjava.netty.exec;
22

3-
import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper;
4-
53
import org.slf4j.Logger;
64
import org.slf4j.LoggerFactory;
75

@@ -29,7 +27,7 @@ protected Void execute0(EventsCmd command, ResultCallback<Event> resultCallback)
2927

3028
if (command.getFilters() != null && !command.getFilters().isEmpty()) {
3129
webTarget = webTarget
32-
.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters())));
30+
.queryParam("filters", FiltersEncoder.jsonEncode(command.getFilters()));
3331
}
3432

3533
LOGGER.trace("GET: {}", webTarget);

src/main/java/com/github/dockerjava/netty/exec/ListContainersCmdExec.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
package com.github.dockerjava.netty.exec;
22

3-
import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper;
4-
5-
import java.util.List;
6-
7-
import org.slf4j.Logger;
8-
import org.slf4j.LoggerFactory;
9-
103
import com.fasterxml.jackson.core.type.TypeReference;
114
import com.github.dockerjava.api.command.ListContainersCmd;
125
import com.github.dockerjava.api.model.Container;
136
import com.github.dockerjava.core.DockerClientConfig;
147
import com.github.dockerjava.core.util.FiltersEncoder;
158
import com.github.dockerjava.netty.MediaType;
169
import com.github.dockerjava.netty.WebTarget;
10+
import org.slf4j.Logger;
11+
import org.slf4j.LoggerFactory;
12+
13+
import java.util.List;
1714

1815
public class ListContainersCmdExec extends AbstrSyncDockerCmdExec<ListContainersCmd, List<Container>> implements
1916
ListContainersCmd.Exec {
@@ -38,7 +35,7 @@ protected List<Container> execute(ListContainersCmd command) {
3835

3936
if (command.getFilters() != null && !command.getFilters().isEmpty()) {
4037
webTarget = webTarget
41-
.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters())));
38+
.queryParam("filters", FiltersEncoder.jsonEncode(command.getFilters()));
4239
}
4340

4441
LOGGER.trace("GET: {}", webTarget);

src/main/java/com/github/dockerjava/netty/exec/ListImagesCmdExec.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.github.dockerjava.netty.exec;
22

3-
import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper;
4-
53
import java.util.List;
64

75
import org.slf4j.Logger;
@@ -30,11 +28,11 @@ protected List<Image> execute(ListImagesCmd command) {
3028
webTarget = booleanQueryParam(webTarget, "all", command.hasShowAllEnabled());
3129

3230
if (command.getFilters() != null && !command.getFilters().isEmpty()) {
33-
webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters())));
31+
webTarget = webTarget.queryParam("filters", FiltersEncoder.jsonEncode(command.getFilters()));
3432
}
3533

3634
if (command.getImageNameFilter() != null) {
37-
webTarget = webTarget.queryParam("filter", urlPathSegmentEscaper().escape(command.getImageNameFilter()));
35+
webTarget = webTarget.queryParam("filter", command.getImageNameFilter());
3836
}
3937

4038
LOGGER.trace("GET: {}", webTarget);

src/main/java/com/github/dockerjava/netty/exec/ListNetworksCmdExec.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313

1414
import java.util.List;
1515

16-
import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper;
17-
1816
public class ListNetworksCmdExec extends AbstrSyncDockerCmdExec<ListNetworksCmd, List<Network>> implements
1917
ListNetworksCmd.Exec {
2018

@@ -29,7 +27,7 @@ protected List<Network> execute(ListNetworksCmd command) {
2927
WebTarget webTarget = getBaseResource().path("/networks");
3028

3129
if (command.getFilters() != null && !command.getFilters().isEmpty()) {
32-
webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters())));
30+
webTarget = webTarget.queryParam("filters", FiltersEncoder.jsonEncode(command.getFilters()));
3331
}
3432

3533
LOGGER.trace("GET: {}", webTarget);

src/main/java/com/github/dockerjava/netty/exec/ListVolumesCmdExec.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.github.dockerjava.netty.exec;
22

3-
import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper;
4-
53
import org.slf4j.Logger;
64
import org.slf4j.LoggerFactory;
75

@@ -27,7 +25,7 @@ protected ListVolumesResponse execute(ListVolumesCmd command) {
2725
WebTarget webTarget = getBaseResource().path("/volumes");
2826

2927
if (command.getFilters() != null && !command.getFilters().isEmpty()) {
30-
webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters())));
28+
webTarget = webTarget.queryParam("filters", FiltersEncoder.jsonEncode(command.getFilters()));
3129
}
3230

3331
LOGGER.trace("GET: {}", webTarget);

0 commit comments

Comments
 (0)