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 or lfn and guid are both
given and they point at a different file.
- 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