Files
c/kubernetes/model/v1beta1_csi_driver_spec.c
Hui Yu 8ba394045d commit
1. The kubernetes-client/gen setting for c generator

    2. The source code generated by OpenAPI c generator
2020-03-18 17:24:33 +08:00

134 lines
4.2 KiB
C

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "v1beta1_csi_driver_spec.h"
v1beta1_csi_driver_spec_t *v1beta1_csi_driver_spec_create(
int attach_required,
int pod_info_on_mount,
list_t *volume_lifecycle_modes
) {
v1beta1_csi_driver_spec_t *v1beta1_csi_driver_spec_local_var = malloc(sizeof(v1beta1_csi_driver_spec_t));
if (!v1beta1_csi_driver_spec_local_var) {
return NULL;
}
v1beta1_csi_driver_spec_local_var->attach_required = attach_required;
v1beta1_csi_driver_spec_local_var->pod_info_on_mount = pod_info_on_mount;
v1beta1_csi_driver_spec_local_var->volume_lifecycle_modes = volume_lifecycle_modes;
return v1beta1_csi_driver_spec_local_var;
}
void v1beta1_csi_driver_spec_free(v1beta1_csi_driver_spec_t *v1beta1_csi_driver_spec) {
if(NULL == v1beta1_csi_driver_spec){
return ;
}
listEntry_t *listEntry;
list_ForEach(listEntry, v1beta1_csi_driver_spec->volume_lifecycle_modes) {
free(listEntry->data);
}
list_free(v1beta1_csi_driver_spec->volume_lifecycle_modes);
free(v1beta1_csi_driver_spec);
}
cJSON *v1beta1_csi_driver_spec_convertToJSON(v1beta1_csi_driver_spec_t *v1beta1_csi_driver_spec) {
cJSON *item = cJSON_CreateObject();
// v1beta1_csi_driver_spec->attach_required
if(v1beta1_csi_driver_spec->attach_required) {
if(cJSON_AddBoolToObject(item, "attachRequired", v1beta1_csi_driver_spec->attach_required) == NULL) {
goto fail; //Bool
}
}
// v1beta1_csi_driver_spec->pod_info_on_mount
if(v1beta1_csi_driver_spec->pod_info_on_mount) {
if(cJSON_AddBoolToObject(item, "podInfoOnMount", v1beta1_csi_driver_spec->pod_info_on_mount) == NULL) {
goto fail; //Bool
}
}
// v1beta1_csi_driver_spec->volume_lifecycle_modes
if(v1beta1_csi_driver_spec->volume_lifecycle_modes) {
cJSON *volume_lifecycle_modes = cJSON_AddArrayToObject(item, "volumeLifecycleModes");
if(volume_lifecycle_modes == NULL) {
goto fail; //primitive container
}
listEntry_t *volume_lifecycle_modesListEntry;
list_ForEach(volume_lifecycle_modesListEntry, v1beta1_csi_driver_spec->volume_lifecycle_modes) {
if(cJSON_AddStringToObject(volume_lifecycle_modes, "", (char*)volume_lifecycle_modesListEntry->data) == NULL)
{
goto fail;
}
}
}
return item;
fail:
if (item) {
cJSON_Delete(item);
}
return NULL;
}
v1beta1_csi_driver_spec_t *v1beta1_csi_driver_spec_parseFromJSON(cJSON *v1beta1_csi_driver_specJSON){
v1beta1_csi_driver_spec_t *v1beta1_csi_driver_spec_local_var = NULL;
// v1beta1_csi_driver_spec->attach_required
cJSON *attach_required = cJSON_GetObjectItemCaseSensitive(v1beta1_csi_driver_specJSON, "attachRequired");
if (attach_required) {
if(!cJSON_IsBool(attach_required))
{
goto end; //Bool
}
}
// v1beta1_csi_driver_spec->pod_info_on_mount
cJSON *pod_info_on_mount = cJSON_GetObjectItemCaseSensitive(v1beta1_csi_driver_specJSON, "podInfoOnMount");
if (pod_info_on_mount) {
if(!cJSON_IsBool(pod_info_on_mount))
{
goto end; //Bool
}
}
// v1beta1_csi_driver_spec->volume_lifecycle_modes
cJSON *volume_lifecycle_modes = cJSON_GetObjectItemCaseSensitive(v1beta1_csi_driver_specJSON, "volumeLifecycleModes");
list_t *volume_lifecycle_modesList;
if (volume_lifecycle_modes) {
cJSON *volume_lifecycle_modes_local;
if(!cJSON_IsArray(volume_lifecycle_modes)) {
goto end;//primitive container
}
volume_lifecycle_modesList = list_create();
cJSON_ArrayForEach(volume_lifecycle_modes_local, volume_lifecycle_modes)
{
if(!cJSON_IsString(volume_lifecycle_modes_local))
{
goto end;
}
list_addElement(volume_lifecycle_modesList , strdup(volume_lifecycle_modes_local->valuestring));
}
}
v1beta1_csi_driver_spec_local_var = v1beta1_csi_driver_spec_create (
attach_required ? attach_required->valueint : 0,
pod_info_on_mount ? pod_info_on_mount->valueint : 0,
volume_lifecycle_modes ? volume_lifecycle_modesList : NULL
);
return v1beta1_csi_driver_spec_local_var;
end:
return NULL;
}