@Override public String toString() { return getPath(); }
@Override public boolean equals(Object obj) { if (obj instanceof Volume) { Volume other = (Volume) obj; return new EqualsBuilder().append(path, other.getPath()).isEquals(); } else { return super.equals(obj); } }
@Override public void serialize(Volumes volumes, JsonGenerator jsonGen, SerializerProvider serProvider) throws IOException, JsonProcessingException { jsonGen.writeStartObject(); for (Volume volume : volumes.getVolumes()) { jsonGen.writeFieldName(volume.getPath()); jsonGen.writeStartObject(); jsonGen.writeEndObject(); } jsonGen.writeEndObject(); }
@Override public void serialize(VolumeRW volumeRW, JsonGenerator jsonGen, SerializerProvider serProvider) throws IOException, JsonProcessingException { jsonGen.writeStartObject(); jsonGen.writeFieldName(volumeRW.getVolume().getPath()); jsonGen.writeString(Boolean.toString(volumeRW.getAccessMode().toBoolean())); jsonGen.writeEndObject(); }
@Override public void serialize(VolumesRW value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); for (final VolumeRW volumeRW : value.volumesRW) { jgen.writeBooleanField(volumeRW.getVolume().getPath(), volumeRW.getAccessMode().toBoolean()); } jgen.writeEndObject(); }
/** * Returns a string representation of this {@link Bind} suitable for inclusion in a JSON message. * The format is <code><host path>:<container path>:<access mode></code>, * like the argument in {@link #parse(String)}. * * @return a string representation of this {@link Bind} */ @Override public String toString() { return String.format("%s:%s:%s%s%s%s", path, volume.getPath(), accessMode.toString(), secMode != SELContext.none ? "," + secMode.toString() : "", noCopy != null ? ",nocopy" : "", propagationMode != PropagationMode.DEFAULT_MODE ? "," + propagationMode.toString() : ""); } }
private boolean checkMountableFile() { DockerClient dockerClient = client(); MountableFile mountableFile = MountableFile.forClasspathResource(ResourceReaper.class.getName().replace(".", "/") + ".class"); Volume volume = new Volume("/dummy"); try { return runInsideDocker( createContainerCmd -> createContainerCmd.withBinds(new Bind(mountableFile.getResolvedPath(), volume, AccessMode.ro)), (__, containerId) -> { try (InputStream stream = dockerClient.copyArchiveFromContainerCmd(containerId, volume.getPath()).exec()) { stream.read(); return true; } catch (Exception e) { return false; } } ); } catch (Exception e) { log.debug("Failure while checking for mountable file support", e); return false; } }
@Override public String toString() { return getPath(); }
@Override public boolean equals(Object obj) { if (obj instanceof Volume) { Volume other = (Volume) obj; return new EqualsBuilder().append(path, other.getPath()).isEquals(); } else { return super.equals(obj); } }
@Override public void serialize(Volumes volumes, JsonGenerator jsonGen, SerializerProvider serProvider) throws IOException, JsonProcessingException { jsonGen.writeStartObject(); for (Volume volume : volumes.getVolumes()) { jsonGen.writeFieldName(volume.getPath()); jsonGen.writeStartObject(); jsonGen.writeEndObject(); } jsonGen.writeEndObject(); }
@Override public void serialize(VolumeRW volumeRW, JsonGenerator jsonGen, SerializerProvider serProvider) throws IOException, JsonProcessingException { jsonGen.writeStartObject(); jsonGen.writeFieldName(volumeRW.getVolume().getPath()); jsonGen.writeString(Boolean.toString(volumeRW.getAccessMode().toBoolean())); jsonGen.writeEndObject(); }
@Override public void serialize(VolumesRW value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); for (final VolumeRW volumeRW : value.volumesRW) { jgen.writeBooleanField(volumeRW.getVolume().getPath(), volumeRW.getAccessMode().toBoolean()); } jgen.writeEndObject(); }
/** * Returns a string representation of this {@link Bind} suitable for inclusion in a JSON message. * The format is <code><host path>:<container path>:<access mode></code>, * like the argument in {@link #parse(String)}. * * @return a string representation of this {@link Bind} */ @Override public String toString() { return String.format("%s:%s:%s%s%s%s", path, volume.getPath(), accessMode.toString(), secMode != SELContext.none ? "," + secMode.toString() : "", noCopy != null ? ",nocopy" : "", propagationMode != PropagationMode.DEFAULT_MODE ? "," + propagationMode.toString() : ""); } }
private boolean checkMountableFile() { DockerClient dockerClient = client(); MountableFile mountableFile = MountableFile.forClasspathResource(ResourceReaper.class.getName().replace(".", "/") + ".class"); Volume volume = new Volume("/dummy"); try { return runInsideDocker(createContainerCmd -> createContainerCmd.withBinds(new Bind(mountableFile.getResolvedPath(), volume, AccessMode.ro)), (__, containerId) -> { try (InputStream stream = dockerClient.copyArchiveFromContainerCmd(containerId, volume.getPath()).exec()) { stream.read(); return true; } catch (Exception e) { return false; } }); } catch (Exception e) { log.debug("Failure while checking for mountable file support", e); return false; } }