Files
c/kubernetes/model/v1_linux_container_user.c
Kubernetes Prow Robot f914036e5a Automated openapi generation from release-1.31
Signed-off-by: Hui Yu <ityuhui@gmail.com>
2024-10-12 12:08:56 +08:00

162 lines
4.6 KiB
C

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "v1_linux_container_user.h"
v1_linux_container_user_t *v1_linux_container_user_create(
long gid,
list_t *supplemental_groups,
long uid
) {
v1_linux_container_user_t *v1_linux_container_user_local_var = malloc(sizeof(v1_linux_container_user_t));
if (!v1_linux_container_user_local_var) {
return NULL;
}
v1_linux_container_user_local_var->gid = gid;
v1_linux_container_user_local_var->supplemental_groups = supplemental_groups;
v1_linux_container_user_local_var->uid = uid;
return v1_linux_container_user_local_var;
}
void v1_linux_container_user_free(v1_linux_container_user_t *v1_linux_container_user) {
if(NULL == v1_linux_container_user){
return ;
}
listEntry_t *listEntry;
if (v1_linux_container_user->supplemental_groups) {
list_ForEach(listEntry, v1_linux_container_user->supplemental_groups) {
free(listEntry->data);
}
list_freeList(v1_linux_container_user->supplemental_groups);
v1_linux_container_user->supplemental_groups = NULL;
}
free(v1_linux_container_user);
}
cJSON *v1_linux_container_user_convertToJSON(v1_linux_container_user_t *v1_linux_container_user) {
cJSON *item = cJSON_CreateObject();
// v1_linux_container_user->gid
if (!v1_linux_container_user->gid) {
goto fail;
}
if(cJSON_AddNumberToObject(item, "gid", v1_linux_container_user->gid) == NULL) {
goto fail; //Numeric
}
// v1_linux_container_user->supplemental_groups
if(v1_linux_container_user->supplemental_groups) {
cJSON *supplemental_groups = cJSON_AddArrayToObject(item, "supplementalGroups");
if(supplemental_groups == NULL) {
goto fail; //primitive container
}
listEntry_t *supplemental_groupsListEntry;
list_ForEach(supplemental_groupsListEntry, v1_linux_container_user->supplemental_groups) {
if(cJSON_AddNumberToObject(supplemental_groups, "", *(double *)supplemental_groupsListEntry->data) == NULL)
{
goto fail;
}
}
}
// v1_linux_container_user->uid
if (!v1_linux_container_user->uid) {
goto fail;
}
if(cJSON_AddNumberToObject(item, "uid", v1_linux_container_user->uid) == NULL) {
goto fail; //Numeric
}
return item;
fail:
if (item) {
cJSON_Delete(item);
}
return NULL;
}
v1_linux_container_user_t *v1_linux_container_user_parseFromJSON(cJSON *v1_linux_container_userJSON){
v1_linux_container_user_t *v1_linux_container_user_local_var = NULL;
// define the local list for v1_linux_container_user->supplemental_groups
list_t *supplemental_groupsList = NULL;
// v1_linux_container_user->gid
cJSON *gid = cJSON_GetObjectItemCaseSensitive(v1_linux_container_userJSON, "gid");
if (!gid) {
goto end;
}
if(!cJSON_IsNumber(gid))
{
goto end; //Numeric
}
// v1_linux_container_user->supplemental_groups
cJSON *supplemental_groups = cJSON_GetObjectItemCaseSensitive(v1_linux_container_userJSON, "supplementalGroups");
if (supplemental_groups) {
cJSON *supplemental_groups_local = NULL;
if(!cJSON_IsArray(supplemental_groups)) {
goto end;//primitive container
}
supplemental_groupsList = list_createList();
cJSON_ArrayForEach(supplemental_groups_local, supplemental_groups)
{
if(!cJSON_IsNumber(supplemental_groups_local))
{
goto end;
}
double *supplemental_groups_local_value = (double *)calloc(1, sizeof(double));
if(!supplemental_groups_local_value)
{
goto end;
}
*supplemental_groups_local_value = supplemental_groups_local->valuedouble;
list_addElement(supplemental_groupsList , supplemental_groups_local_value);
}
}
// v1_linux_container_user->uid
cJSON *uid = cJSON_GetObjectItemCaseSensitive(v1_linux_container_userJSON, "uid");
if (!uid) {
goto end;
}
if(!cJSON_IsNumber(uid))
{
goto end; //Numeric
}
v1_linux_container_user_local_var = v1_linux_container_user_create (
gid->valuedouble,
supplemental_groups ? supplemental_groupsList : NULL,
uid->valuedouble
);
return v1_linux_container_user_local_var;
end:
if (supplemental_groupsList) {
listEntry_t *listEntry = NULL;
list_ForEach(listEntry, supplemental_groupsList) {
free(listEntry->data);
listEntry->data = NULL;
}
list_freeList(supplemental_groupsList);
supplemental_groupsList = NULL;
}
return NULL;
}