All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.gesellix.docker.client.secret.ManageSecretClient.groovy Maven / Gradle / Ivy

package de.gesellix.docker.client.secret

import de.gesellix.docker.client.EngineResponseContent
import de.gesellix.docker.remote.api.EngineApiClient
import de.gesellix.docker.remote.api.IdResponse
import de.gesellix.docker.remote.api.Secret
import de.gesellix.docker.remote.api.SecretSpec
import de.gesellix.util.QueryUtil
import groovy.util.logging.Slf4j

@Slf4j
class ManageSecretClient implements ManageSecret {

  private EngineApiClient client

  ManageSecretClient(EngineApiClient client) {
    this.client = client
  }

  @Override
  EngineResponseContent createSecret(String name, byte[] secretData, Map labels = [:]) {
    log.info("docker secret create")
    def secretDataBase64 = Base64.encoder.encodeToString(secretData)
    def secretConfig = new SecretSpec(name, labels, secretDataBase64, null, null)
    def secretCreate = client.secretApi.secretCreate(secretConfig)
    return new EngineResponseContent(secretCreate)
  }

  @Override
  EngineResponseContent inspectSecret(String secretId) {
    log.info("docker secret inspect")
    def secretInspect = client.secretApi.secretInspect(secretId)
    return new EngineResponseContent(secretInspect)
  }

  @Override
  EngineResponseContent> secrets(Map query) {
    def actualQuery = [:]
    if (query) {
      actualQuery.putAll(query)
    }
    new QueryUtil().jsonEncodeQueryParameter(actualQuery, "filters")
    return secrets(actualQuery.filters as String)
  }

  @Override
  EngineResponseContent> secrets(String filters = null) {
    log.info("docker secret ls")
    def secrets = client.secretApi.secretList(filters)
    return new EngineResponseContent>(secrets)
  }

  @Override
  void rmSecret(String secretId) {
    log.info("docker secret rm")
    client.secretApi.secretDelete(secretId)
  }

  @Override
  void updateSecret(String secretId, long version, SecretSpec secretSpec) {
    log.info("docker secret update")
    client.secretApi.secretUpdate(secretId, version, secretSpec)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy