de.gesellix.docker.client.volume.ManageVolumeClient.groovy Maven / Gradle / Ivy
package de.gesellix.docker.client.volume
import de.gesellix.docker.client.EngineResponseContent
import de.gesellix.docker.remote.api.EngineApiClient
import de.gesellix.docker.remote.api.Volume
import de.gesellix.docker.remote.api.VolumeConfig
import de.gesellix.docker.remote.api.VolumeListResponse
import de.gesellix.docker.remote.api.VolumePruneResponse
import de.gesellix.util.QueryUtil
import groovy.util.logging.Slf4j
@Slf4j
class ManageVolumeClient implements ManageVolume {
private EngineApiClient client
private QueryUtil queryUtil
ManageVolumeClient(EngineApiClient client) {
this.client = client
this.queryUtil = new QueryUtil()
}
@Override
EngineResponseContent volumes(Map query) {
log.info("docker volume ls")
Map actualQuery = [:]
if (query) {
actualQuery.putAll(query)
}
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters")
return volumes(actualQuery.filters as String)
}
@Override
EngineResponseContent volumes(String filters = null) {
log.info("docker volume ls")
VolumeListResponse volumeList = client.getVolumeApi().volumeList(filters)
return new EngineResponseContent(volumeList)
}
@Override
EngineResponseContent inspectVolume(String name) {
log.info("docker volume inspect")
Volume volumeInspect = client.getVolumeApi().volumeInspect(name)
return new EngineResponseContent(volumeInspect)
}
@Override
EngineResponseContent createVolume(Map config) {
log.info("docker volume create")
return createVolume(new VolumeConfig(config?.Name as String, config?.Driver as String, config?.DriverOpts as Map, config?.Labels as Map))
}
@Override
EngineResponseContent createVolume(VolumeConfig volumeConfig = new VolumeConfig()) {
log.info("docker volume create")
Volume volume = client.getVolumeApi().volumeCreate(volumeConfig)
return new EngineResponseContent(volume)
}
@Override
void rmVolume(String name) {
log.info("docker volume rm")
client.getVolumeApi().volumeDelete(name, null)
}
@Override
EngineResponseContent pruneVolumes(Map query) {
log.info("docker volume prune")
Map actualQuery = [:]
if (query) {
actualQuery.putAll(query)
}
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters")
return pruneVolumes(actualQuery.filters as String)
}
@Override
EngineResponseContent pruneVolumes(String filters = null) {
log.info("docker volume prune")
VolumePruneResponse pruneResponse = client.getVolumeApi().volumePrune(filters)
return new EngineResponseContent(pruneResponse)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy