NAME
dpns_registerfiles - register list of files with their corresponding
replica entry
SYNOPSIS
#include <sys/types.h>
#include "dpns_api.h"
int dpns_registerfiles (int nbfiles, struct dpns_filereg *files, int
*nbstatuses, int **statuses)
DESCRIPTION
dpns_registerfiles registers a list of files with their corresponding
replica entry. If the lfn is already registered, the guid is optional
and only the replica is added (after checking that filesize and
possibly checksum match). If the lfn is not registered yet, the guid
is mandatory for the LFC. The lfn and the replica get registered.
nbfiles
specifies the number of files in the array files.
files is a pointer to an array of dpns_filereg structures provided by
the application.
struct dpns_filereg {
char *lfn;
char *guid;
mode_t mode;
u_signed64 size;
char *csumtype;
char *csumvalue;
char *server;
char *sfn;
};
nbstatuses
will be set to the number of replies in the array of statuses.
statuses
will be set to the address of an array of integer statuses
allocated by the API. The client application is responsible for
freeing the array when not needed anymore. Individual statuses
are 0 if the operation was successful or set to the serrno value
in case of error.
RETURN VALUE
This routine returns 0 if the operation was successful or -1 if the
operation failed. In the latter case, serrno is set appropriately.
ERRORS
ENOENT A component of lfn prefix does not exist or lfn is a null
pathname.
E2BIG Request too large (max 1 MB).
ENOMEM Memory could not be allocated for marshalling the request
or unmarshalling the reply.
EACCES Search permission is denied on a component of the lfn
prefix or the file does not exist and write permission on
the parent directory is denied or write permission on the
file itself is denied.
EFAULT files, nbstatuses or statuses is a NULL pointer.
EEXIST The sfn exists already.
ENOTDIR A component of lfn prefix is not a directory.
EISDIR The lfn exists already and is not a regular file.
EINVAL nbfiles is not strictly positive, the length of one of the
guids exceeds CA_MAXGUIDLEN or the length of server
exceeds CA_MAXHOSTNAMELEN.
ENOSPC The name server database is full.
ENAMETOOLONG The length of lfn exceeds CA_MAXPATHLEN or the length of
an lfn component exceeds CA_MAXNAMELEN or the length of
sfn exceeds CA_MAXSFNLEN.
SENOSSERV Service unknown.
SEINTERNAL Database error.
SECOMERR Communication error.
ENSNACT Name server is not running or is being shutdown.
SEE ALSO
Castor_limits(4), dpns_addreplica(3), dpns_creat(3), dpns_setfsize(3)
AUTHOR
LCG Grid Deployment Team