Get space metadata
#include <sys/types.h>
#include "dpm_api.h"
int dpm_getspacemd (int nbtokens, char **s_tokens, int *nbreplies, struct dpm_space_metadata **spacemd)
dpm_getspacemd gets space metadata.
The input arguments are:
nbtokens
specifies the number of tokens in the request.
s_tokens
specifies an array of tokens returned by previous reservespace requests.
The output arguments are:
nbreplies
will be set to the number of replies in the array of space metadata.
spacemd
will be set to the address of an array of dpm_space_metadata structures allocated by the API. The client application is responsible for freeing the array when not needed anymore.
struct dpm_space_metadata { char s_type; char s_token[CA_MAXDPMTOKENLEN+1]; uid_t s_uid; gid_t s_gid; char ret_policy; char ac_latency; char u_token[256]; char client_dn[256]; u_signed64 t_space; /* Total space */ u_signed64 g_space; /* Guaranteed space */ signed64 u_space; /* Unused space */ char poolname[CA_MAXPOOLNAMELEN+1]; time_t a_lifetime; /* Lifetime assigned */ time_t r_lifetime; /* Remaining lifetime */ int nbgids; gid_t *gids; /* restrict the space to given group(s) */ };
This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.
EFAULT
s_tokens , nbreplies or spacemd is a NULL pointer.
ENOMEM
Memory could not be allocated for storing the reply.
EINVAL
nbtokens is not strictly positive or the specified tokens are invalid/unknown.
SENOSHOST
Host unknown.
SEINTERNAL
Database error.
SECOMERR
Communication error.