use of io.kubernetes.client.openapi.models.V1PersistentVolumeClaim in project java by kubernetes-client.
the class CoreV1Api method deleteNamespacedPersistentVolumeClaimAsync.
/**
* (asynchronously) delete a PersistentVolumeClaim
*
* @param name name of the PersistentVolumeClaim (required)
* @param namespace object name and auth scope, such as for teams and projects (required)
* @param pretty If 'true', then the output is pretty printed. (optional)
* @param dryRun When present, indicates that modifications should not be persisted. An invalid or
* unrecognized dryRun directive will result in an error response and no further processing of
* the request. Valid values are: - All: all dry run stages will be processed (optional)
* @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value
* must be non-negative integer. The value zero indicates delete immediately. If this value is
* nil, the default grace period for the specified type will be used. Defaults to a per object
* value if not specified. zero means delete immediately. (optional)
* @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be
* deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the
* \"orphan\" finalizer will be added to/removed from the object's finalizers
* list. Either this field or PropagationPolicy may be set, but not both. (optional)
* @param propagationPolicy Whether and how garbage collection will be performed. Either this
* field or OrphanDependents may be set, but not both. The default policy is decided by the
* existing finalizer set in the metadata.finalizers and the resource-specific default policy.
* Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -
* allow the garbage collector to delete the dependents in the background;
* 'Foreground' - a cascading policy that deletes all dependents in the foreground.
* (optional)
* @param body (optional)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
* @http.response.details
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK </td><td> - </td></tr>
* <tr><td> 202 </td><td> Accepted </td><td> - </td></tr>
* <tr><td> 401 </td><td> Unauthorized </td><td> - </td></tr>
* </table>
*/
public okhttp3.Call deleteNamespacedPersistentVolumeClaimAsync(String name, String namespace, String pretty, String dryRun, Integer gracePeriodSeconds, Boolean orphanDependents, String propagationPolicy, V1DeleteOptions body, final ApiCallback<V1PersistentVolumeClaim> _callback) throws ApiException {
okhttp3.Call localVarCall = deleteNamespacedPersistentVolumeClaimValidateBeforeCall(name, namespace, pretty, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, body, _callback);
Type localVarReturnType = new TypeToken<V1PersistentVolumeClaim>() {
}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
use of io.kubernetes.client.openapi.models.V1PersistentVolumeClaim in project java by kubernetes-client.
the class CoreV1Api method patchNamespacedPersistentVolumeClaimAsync.
/**
* (asynchronously) partially update the specified PersistentVolumeClaim
*
* @param name name of the PersistentVolumeClaim (required)
* @param namespace object name and auth scope, such as for teams and projects (required)
* @param body (required)
* @param pretty If 'true', then the output is pretty printed. (optional)
* @param dryRun When present, indicates that modifications should not be persisted. An invalid or
* unrecognized dryRun directive will result in an error response and no further processing of
* the request. Valid values are: - All: all dry run stages will be processed (optional)
* @param fieldManager fieldManager is a name associated with the actor or entity that is making
* these changes. The value must be less than or 128 characters long, and only contain
* printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is
* required for apply requests (application/apply-patch) but optional for non-apply patch
* types (JsonPatch, MergePatch, StrategicMergePatch). (optional)
* @param fieldValidation fieldValidation determines how the server should respond to
* unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
* servers or servers with the `ServerSideFieldValidation` feature disabled will
* discard valid values specified in this param and not perform any server side field
* validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
* with a warning for each unknown/duplicate field, but successfully serves the request. -
* Strict: fails the request on unknown/duplicate fields. (optional)
* @param force Force is going to \"force\" Apply requests. It means user will
* re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply
* patch requests. (optional)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
* @http.response.details
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK </td><td> - </td></tr>
* <tr><td> 201 </td><td> Created </td><td> - </td></tr>
* <tr><td> 401 </td><td> Unauthorized </td><td> - </td></tr>
* </table>
*/
public okhttp3.Call patchNamespacedPersistentVolumeClaimAsync(String name, String namespace, V1Patch body, String pretty, String dryRun, String fieldManager, String fieldValidation, Boolean force, final ApiCallback<V1PersistentVolumeClaim> _callback) throws ApiException {
okhttp3.Call localVarCall = patchNamespacedPersistentVolumeClaimValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _callback);
Type localVarReturnType = new TypeToken<V1PersistentVolumeClaim>() {
}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
use of io.kubernetes.client.openapi.models.V1PersistentVolumeClaim in project java by kubernetes-client.
the class CoreV1Api method patchNamespacedPersistentVolumeClaimStatusAsync.
/**
* (asynchronously) partially update status of the specified PersistentVolumeClaim
*
* @param name name of the PersistentVolumeClaim (required)
* @param namespace object name and auth scope, such as for teams and projects (required)
* @param body (required)
* @param pretty If 'true', then the output is pretty printed. (optional)
* @param dryRun When present, indicates that modifications should not be persisted. An invalid or
* unrecognized dryRun directive will result in an error response and no further processing of
* the request. Valid values are: - All: all dry run stages will be processed (optional)
* @param fieldManager fieldManager is a name associated with the actor or entity that is making
* these changes. The value must be less than or 128 characters long, and only contain
* printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is
* required for apply requests (application/apply-patch) but optional for non-apply patch
* types (JsonPatch, MergePatch, StrategicMergePatch). (optional)
* @param fieldValidation fieldValidation determines how the server should respond to
* unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
* servers or servers with the `ServerSideFieldValidation` feature disabled will
* discard valid values specified in this param and not perform any server side field
* validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
* with a warning for each unknown/duplicate field, but successfully serves the request. -
* Strict: fails the request on unknown/duplicate fields. (optional)
* @param force Force is going to \"force\" Apply requests. It means user will
* re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply
* patch requests. (optional)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
* @http.response.details
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK </td><td> - </td></tr>
* <tr><td> 201 </td><td> Created </td><td> - </td></tr>
* <tr><td> 401 </td><td> Unauthorized </td><td> - </td></tr>
* </table>
*/
public okhttp3.Call patchNamespacedPersistentVolumeClaimStatusAsync(String name, String namespace, V1Patch body, String pretty, String dryRun, String fieldManager, String fieldValidation, Boolean force, final ApiCallback<V1PersistentVolumeClaim> _callback) throws ApiException {
okhttp3.Call localVarCall = patchNamespacedPersistentVolumeClaimStatusValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _callback);
Type localVarReturnType = new TypeToken<V1PersistentVolumeClaim>() {
}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
use of io.kubernetes.client.openapi.models.V1PersistentVolumeClaim in project heron by twitter.
the class V1Controller method createPersistentVolumeClaims.
/**
* Generates <code>Persistent Volume Claims Templates</code> from a mapping of <code>Volumes</code>
* to <code>key-value</code> pairs of configuration options and values.
* @param mapOfOpts <code>Volume</code> to configuration <code>key-value</code> mappings.
* @return Fully populated list of only dynamically backed <code>Persistent Volume Claims</code>.
*/
@VisibleForTesting
protected List<V1PersistentVolumeClaim> createPersistentVolumeClaims(final Map<String, Map<KubernetesConstants.VolumeConfigKeys, String>> mapOfOpts) {
List<V1PersistentVolumeClaim> listOfPVCs = new LinkedList<>();
// Iterate over all the PVC Volumes.
for (Map.Entry<String, Map<KubernetesConstants.VolumeConfigKeys, String>> pvc : mapOfOpts.entrySet()) {
// Only create claims for `OnDemand` volumes.
final String claimName = pvc.getValue().get(KubernetesConstants.VolumeConfigKeys.claimName);
if (claimName != null && !KubernetesConstants.LABEL_ON_DEMAND.equalsIgnoreCase(claimName)) {
continue;
}
V1PersistentVolumeClaim claim = new V1PersistentVolumeClaimBuilder().withNewMetadata().withName(pvc.getKey()).withLabels(getPersistentVolumeClaimLabels(getTopologyName())).endMetadata().withNewSpec().withStorageClassName("").endSpec().build();
// Populate PVC options.
for (Map.Entry<KubernetesConstants.VolumeConfigKeys, String> option : pvc.getValue().entrySet()) {
String optionValue = option.getValue();
switch(option.getKey()) {
case storageClassName:
claim.getSpec().setStorageClassName(optionValue);
break;
case sizeLimit:
claim.getSpec().setResources(new V1ResourceRequirements().putRequestsItem("storage", new Quantity(optionValue)));
break;
case accessModes:
claim.getSpec().setAccessModes(Arrays.asList(optionValue.split(",")));
break;
case volumeMode:
claim.getSpec().setVolumeMode(optionValue);
break;
// Valid ignored options not used in a PVC.
default:
break;
}
}
listOfPVCs.add(claim);
}
return listOfPVCs;
}
use of io.kubernetes.client.openapi.models.V1PersistentVolumeClaim in project heron by twitter.
the class V1ControllerTest method testCreatePersistentVolumeClaims.
@Test
public void testCreatePersistentVolumeClaims() {
final String topologyName = "topology-name";
final String volumeNameOne = "volume-name-one";
final String volumeNameTwo = "volume-name-two";
final String volumeNameStatic = "volume-name-static";
final String claimNameOne = "OnDemand";
final String claimNameTwo = "claim-name-two";
final String claimNameStatic = "OnDEmaND";
final String storageClassName = "storage-class-name";
final String sizeLimit = "555Gi";
final String accessModesList = "ReadWriteOnce,ReadOnlyMany,ReadWriteMany";
final String accessModes = "ReadOnlyMany";
final String volumeMode = "VolumeMode";
final String path = "/path/to/mount/";
final String subPath = "/sub/path/to/mount/";
final Map<String, Map<VolumeConfigKeys, String>> mapPVCOpts = ImmutableMap.of(volumeNameOne, new HashMap<VolumeConfigKeys, String>() {
{
put(VolumeConfigKeys.claimName, claimNameOne);
put(VolumeConfigKeys.storageClassName, storageClassName);
put(VolumeConfigKeys.sizeLimit, sizeLimit);
put(VolumeConfigKeys.accessModes, accessModesList);
put(VolumeConfigKeys.volumeMode, volumeMode);
put(VolumeConfigKeys.path, path);
}
}, volumeNameTwo, new HashMap<VolumeConfigKeys, String>() {
{
put(VolumeConfigKeys.claimName, claimNameTwo);
put(VolumeConfigKeys.storageClassName, storageClassName);
put(VolumeConfigKeys.sizeLimit, sizeLimit);
put(VolumeConfigKeys.accessModes, accessModes);
put(VolumeConfigKeys.volumeMode, volumeMode);
put(VolumeConfigKeys.path, path);
put(VolumeConfigKeys.subPath, subPath);
}
}, volumeNameStatic, new HashMap<VolumeConfigKeys, String>() {
{
put(VolumeConfigKeys.claimName, claimNameStatic);
put(VolumeConfigKeys.sizeLimit, sizeLimit);
put(VolumeConfigKeys.accessModes, accessModes);
put(VolumeConfigKeys.volumeMode, volumeMode);
put(VolumeConfigKeys.path, path);
put(VolumeConfigKeys.subPath, subPath);
}
});
final V1PersistentVolumeClaim claimOne = new V1PersistentVolumeClaimBuilder().withNewMetadata().withName(volumeNameOne).withLabels(V1Controller.getPersistentVolumeClaimLabels(topologyName)).endMetadata().withNewSpec().withStorageClassName(storageClassName).withAccessModes(Arrays.asList(accessModesList.split(","))).withVolumeMode(volumeMode).withNewResources().addToRequests("storage", new Quantity(sizeLimit)).endResources().endSpec().build();
final V1PersistentVolumeClaim claimStatic = new V1PersistentVolumeClaimBuilder().withNewMetadata().withName(volumeNameStatic).withLabels(V1Controller.getPersistentVolumeClaimLabels(topologyName)).endMetadata().withNewSpec().withStorageClassName("").withAccessModes(Collections.singletonList(accessModes)).withVolumeMode(volumeMode).withNewResources().addToRequests("storage", new Quantity(sizeLimit)).endResources().endSpec().build();
final List<V1PersistentVolumeClaim> expectedClaims = new LinkedList<>(Arrays.asList(claimOne, claimStatic));
final List<V1PersistentVolumeClaim> actualClaims = v1ControllerWithPodTemplate.createPersistentVolumeClaims(mapPVCOpts);
Assert.assertTrue(expectedClaims.containsAll(actualClaims));
}
Aggregations