blob: b65ad04b0d8e87f65291beb1c6c6a9793262b526 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2020 Red Hat.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Red Hat - Initial Contribution
*******************************************************************************/
package org.eclipse.linuxtools.internal.docker.core;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.linuxtools.docker.core.IDockerConnection;
import org.eclipse.linuxtools.docker.core.IDockerConnectionInfo;
import org.mandas.docker.client.messages.Info;
import org.mandas.docker.client.messages.Version;
/**
* Info about a given {@link IDockerConnection}
*/
public class DockerConnectionInfo implements IDockerConnectionInfo {
private final int containers;
private final boolean debug;
private final int fileDescriptors;
private final int goroutines;
private final int images;
private final String initPath;
private final String kernelVersion;
private final boolean memoryLimit;
private final String storageDriver;
private final boolean swapLimit;
private final String apiVersion;
private final String gitCommit;
private final String os;
private final String version;
private final List<List<String>> driverStatus;
private final int cpuNumber;
private final long totalMemory;
private final String name;
private final String id;
private final String initSha1;
private final String indexServerAddress;
private final boolean ipv4Forwarding;
private final List<String> labels;
private final String dockerRootDir;
public DockerConnectionInfo(final Info info, final Version version) {
this.containers = info != null ? info.containers() : -1;
this.debug = info != null ? info.debug() : false;
this.fileDescriptors = info != null ? info.fileDescriptors() : -1;
this.goroutines = info != null ? info.goroutines() : -1;
this.images = info != null ? info.images() : -1;
this.initPath = info != null ? info.initPath() : null;
this.kernelVersion = info != null ? info.kernelVersion() : null;
this.memoryLimit = info != null ? info.memoryLimit() : false;
this.storageDriver = info != null ? info.storageDriver() : null;
this.swapLimit = info != null ? info.swapLimit() : false;
this.apiVersion = version != null ? version.apiVersion() : null;
this.gitCommit = version != null ? version.gitCommit() : null;
this.os = version != null ? version.os() : "";
this.version = version != null ? version.version() : null;
List<List<String>> tmp = new ArrayList<>();
if (info != null && info.driverStatus() != null) {
for (List<String> ls : info.driverStatus()) {
tmp.add(ls);
}
}
this.driverStatus = tmp;
this.cpuNumber = info != null ? info.cpus() : -1;
this.totalMemory = info != null ? info.memTotal() : -1;
this.name = info != null ? info.name() : null;
this.id = info != null ? info.id() : null;
this.initSha1 = info != null ? info.initSha1() : null;
this.ipv4Forwarding = info != null ? info.ipv4Forwarding() : false;
this.indexServerAddress = info != null ? info.indexServerAddress()
: null;
this.labels = info != null ? info.labels() : null;
this.dockerRootDir = info != null ? info.dockerRootDir() : null;
}
@Override
public boolean isMemoryLimit() {
return memoryLimit;
}
@Override
public int getContainers() {
return containers;
}
@Override
public boolean isDebug() {
return debug;
}
@Override
public int getFileDescriptors() {
return fileDescriptors;
}
@Override
public int getGoroutines() {
return goroutines;
}
@Override
public int getImages() {
return images;
}
@Override
public String getInitPath() {
return initPath;
}
@Override
public String getKernelVersion() {
return kernelVersion;
}
@Override
public String getStorageDriver() {
return storageDriver;
}
@Override
public boolean isSwapLimit() {
return swapLimit;
}
@Override
public String getApiVersion() {
return apiVersion;
}
@Override
public String getGitCommit() {
return gitCommit;
}
@Override
public String getOs() {
return os;
}
@Override
public String getVersion() {
return version;
}
/**
* @return the driverStatus
*/
@Override
public List<List<String>> getDriverStatus() {
return driverStatus;
}
@Override
public int getCPUNumber() {
return cpuNumber;
}
@Override
public long getTotalMemory() {
return totalMemory;
}
@Override
public String getName() {
return name;
}
@Override
public String getId() {
return id;
}
@Override
public String getInitSha1() {
return initSha1;
}
@Override
public String getIndexServerAddress() {
return indexServerAddress;
}
@Override
public boolean isIPv4Forwarding() {
return ipv4Forwarding;
}
@Override
public List<String> getLabels() {
return labels;
}
@Override
public String getDockerRootDir() {
return dockerRootDir;
}
@Override
@Deprecated
public String getExecutionDriver() {
return null;
}
}