@Override public MixedOperation<PersistentVolumeClaim, PersistentVolumeClaimList, DoneablePersistentVolumeClaim, Resource<PersistentVolumeClaim, DoneablePersistentVolumeClaim>> persistentVolumeClaims() { return delegate.persistentVolumeClaims(); }
@Override protected MixedOperation<PersistentVolumeClaim, PersistentVolumeClaimList, DoneablePersistentVolumeClaim, Resource<PersistentVolumeClaim, DoneablePersistentVolumeClaim>> operation() { return client.persistentVolumeClaims(); } }
@Override public MixedOperation<PersistentVolumeClaim, PersistentVolumeClaimList, DoneablePersistentVolumeClaim, Resource<PersistentVolumeClaim, DoneablePersistentVolumeClaim>> persistentVolumeClaims() { return delegate.persistentVolumeClaims(); }
@Override protected void mocker(KubernetesClient mockClient, MixedOperation op) { when(mockClient.persistentVolumeClaims()).thenReturn(op); }
protected void doList(Exchange exchange, String operation) throws Exception { PersistentVolumeClaimList persistentVolumeClaimList = getEndpoint() .getKubernetesClient().persistentVolumeClaims().list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(persistentVolumeClaimList.getItems()); }
private void deletePvc(Map<String, String> labels) { FilterWatchListDeletable<PersistentVolumeClaim, PersistentVolumeClaimList, Boolean, Watch, Watcher<PersistentVolumeClaim>> pvcsToDelete = client.persistentVolumeClaims() .withLabels(labels); if (pvcsToDelete != null && pvcsToDelete.list().getItems() != null) { boolean pvcsDeleted = pvcsToDelete.delete(); logger.debug(String.format("PVC deleted for: %s - %b", labels, pvcsDeleted)); } } }
protected void doGetPersistentVolumeClaim(Exchange exchange, String operation) throws Exception { PersistentVolumeClaim pvc = null; String pvcName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_PERSISTENT_VOLUME_CLAIM_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(pvcName)) { LOG.error("Get a specific Persistent Volume Claim require specify a Persistent Volume Claim name"); throw new IllegalArgumentException( "Get a specific Persistent Volume Claim require specify a Persistent Volume Claim name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific Persistent Volume Claim require specify a namespace name"); throw new IllegalArgumentException( "Get a specific Persistent Volume Claim require specify a namespace name"); } pvc = getEndpoint().getKubernetesClient().persistentVolumeClaims() .inNamespace(namespaceName).withName(pvcName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pvc); }
protected void doDeletePersistentVolumeClaim(Exchange exchange, String operation) throws Exception { String pvcName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_PERSISTENT_VOLUME_CLAIM_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(pvcName)) { LOG.error("Delete a specific Persistent Volume Claim require specify a Persistent Volume Claim name"); throw new IllegalArgumentException( "Delete a specific Persistent Volume Claim require specify a Persistent Volume Claim name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific Persistent Volume Claim require specify a namespace name"); throw new IllegalArgumentException( "Delete a specific Persistent Volume Claim require specify a namespace name"); } boolean pvcDeleted = getEndpoint().getKubernetesClient() .persistentVolumeClaims().inNamespace(namespaceName) .withName(pvcName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pvcDeleted); } }
protected void doListPersistentVolumesClaimsByLabels(Exchange exchange, String operation) throws Exception { PersistentVolumeClaimList pvcList = null; Map<String, String> labels = exchange .getIn() .getHeader( KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_CLAIMS_LABELS, Map.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (!ObjectHelper.isEmpty(namespaceName)) { NonNamespaceOperation<PersistentVolumeClaim, PersistentVolumeClaimList, DoneablePersistentVolumeClaim, Resource<PersistentVolumeClaim, DoneablePersistentVolumeClaim>> pvcs = getEndpoint().getKubernetesClient().persistentVolumeClaims() .inNamespace(namespaceName); for (Map.Entry<String, String> entry : labels.entrySet()) { pvcs.withLabel(entry.getKey(), entry.getValue()); } pvcList = pvcs.list(); } else { FilterWatchListMultiDeletable<PersistentVolumeClaim, PersistentVolumeClaimList, Boolean, Watch, Watcher<PersistentVolumeClaim>> pvcs = getEndpoint().getKubernetesClient().persistentVolumeClaims().inAnyNamespace(); for (Map.Entry<String, String> entry : labels.entrySet()) { pvcs.withLabel(entry.getKey(), entry.getValue()); } pvcList = pvcs.list(); } MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pvcList.getItems()); }
protected void doCreatePersistentVolumeClaim(PersistentVolumeClaim entity, String namespace, String sourceName) { log.info("Creating a PersistentVolumeClaim from " + sourceName + " namespace " + namespace + " name " + getName(entity)); try { Object answer; if (StringUtils.isNotBlank(namespace)) { answer = kubernetesClient.persistentVolumeClaims().inNamespace(namespace).create(entity); } else { answer = kubernetesClient.persistentVolumeClaims().inNamespace(getNamespace()).create(entity); } logGeneratedEntity("Created PersistentVolumeClaim: ", namespace, entity, answer); } catch (Exception e) { onApplyError("Failed to create PersistentVolumeClaim from " + sourceName + ". " + e + ". " + entity, e); } }
.withNewMetadata().withName(pvcName).withLabels(labels) .endMetadata().withSpec(pvcSpec).build(); pvc = getEndpoint().getKubernetesClient().persistentVolumeClaims() .inNamespace(namespaceName).create(pvcCreating);
public List<PersistentVolumeClaim> listPersistentVolumeClaims(Map<String, String> labels) { return client.persistentVolumeClaims().inNamespace(globalNamespace).withLabels(labels).list().getItems(); }
String buildPvcName = "jenkins-workspace-" + jobname; String volumeName = String.format(VOLUME_FORMAT, volumeIndex); if (client.persistentVolumeClaims().withName(buildPvcName).get() != null) { LOGGER.info("Using build pvc: ["+buildPvcName+"] for build workspace:[" + buildWorkspace + "]."); volumes.add(new VolumeBuilder().withName(volumeName).withNewPersistentVolumeClaim(buildPvcName, false).build()); mounts.add(new VolumeMountBuilder().withName(volumeName).withMountPath(buildWorkspace).build()); volumeIndex++; } else if (client.persistentVolumeClaims().withName(rootPvcName).get() != null) { LOGGER.info("Using workspace pvc: ["+rootPvcName+"] for workspace:[" + rootWorkspace + "]."); volumes.add(new VolumeBuilder().withName(volumeName).withNewPersistentVolumeClaim(rootPvcName, false).build());
return; PersistentVolumeClaim old = kubernetesClient.persistentVolumeClaims().inNamespace(namespace).withName(id).get(); if (isRunning(old)) { if (UserConfigurationCompare.configEqual(entity, old)) { } else { log.info("Deleting PersistentVolumeClaim from namespace " + namespace + " with name " + id); kubernetesClient.persistentVolumeClaims().inNamespace(namespace).withName(id).delete(); log.info("Deleted PersistentVolumeClaim from namespace " + namespace + " with name " + id);
private static EntityPatcher<PersistentVolumeClaim> pvcPatcher() { return (KubernetesClient client, String namespace, PersistentVolumeClaim newObj, PersistentVolumeClaim oldObj) -> { if (UserConfigurationCompare.configEqual(newObj, oldObj)) { return oldObj; } DoneablePersistentVolumeClaim entity = client.persistentVolumeClaims() .inNamespace(namespace) .withName(oldObj.getMetadata().getName()) .edit(); if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) { entity.withMetadata(newObj.getMetadata()); } if(!UserConfigurationCompare.configEqual(newObj.getSpec(), oldObj.getSpec())) { entity.withSpec(newObj.getSpec()); } return entity.done(); }; }