int filePathReg (rsComm_t *rsComm, dataObjInp_t *phyPathRegInp, char *filePath, rescInfo_t *rescInfo) { dataObjInfo_t dataObjInfo; int status; initDataObjInfoWithInp (&dataObjInfo, phyPathRegInp); dataObjInfo.replStatus = NEWLY_CREATED_COPY; dataObjInfo.rescInfo = rescInfo; rstrcpy (dataObjInfo.rescName, rescInfo->rescName, NAME_LEN); if (dataObjInfo.dataSize <= 0 && (dataObjInfo.dataSize = getSizeInVault (rsComm, &dataObjInfo)) < 0) { status = (int) dataObjInfo.dataSize; rodsLog (LOG_ERROR, "filePathReg: getSizeInVault for %s failed, status = %d", dataObjInfo.objPath, status); return (status); } status = svrRegDataObj (rsComm, &dataObjInfo); if (status < 0) { rodsLog (LOG_ERROR, "filePathReg: rsRegDataObj for %s failed, status = %d", dataObjInfo.objPath, status); } else { ruleExecInfo_t rei; initReiWithDataObjInp (&rei, rsComm, phyPathRegInp); rei.doi = &dataObjInfo; rei.status = status; rei.status = applyRule ("acPostProcForFilePathReg", NULL, &rei, NO_SAVE_REI); } return (status); }
int filePathReg (rsComm_t *rsComm, dataObjInp_t *phyPathRegInp, char *filePath, rescInfo_t *rescInfo) { dataObjInfo_t dataObjInfo; int status; char *rescGroupName = NULL; char *chksum; initDataObjInfoWithInp (&dataObjInfo, phyPathRegInp); if ((rescGroupName = getValByKey (&phyPathRegInp->condInput, RESC_GROUP_NAME_KW)) != NULL) { rstrcpy (dataObjInfo.rescGroupName, rescGroupName, NAME_LEN); } dataObjInfo.replStatus = NEWLY_CREATED_COPY; dataObjInfo.rescInfo = rescInfo; rstrcpy (dataObjInfo.rescName, rescInfo->rescName, NAME_LEN); if (dataObjInfo.dataSize <= 0 && #ifdef FILESYSTEM_META (dataObjInfo.dataSize = getFileMetadataFromVault (rsComm, &dataObjInfo)) < 0 && #else (dataObjInfo.dataSize = getSizeInVault (rsComm, &dataObjInfo)) < 0 && #endif dataObjInfo.dataSize != UNKNOWN_FILE_SZ) { status = (int) dataObjInfo.dataSize; rodsLog (LOG_ERROR, #ifdef FILESYSTEM_META "filePathReg: getFileMetadataFromVault for %s failed, status = %d", #else "filePathReg: getSizeInVault for %s failed, status = %d", #endif dataObjInfo.objPath, status); return (status); } #ifdef FILESYSTEM_META addKeyVal(&dataObjInfo.condInput, FILE_SOURCE_PATH_KW, filePath); #endif if ((chksum = getValByKey (&phyPathRegInp->condInput, REG_CHKSUM_KW)) != NULL) { rstrcpy (dataObjInfo.chksum, chksum, NAME_LEN); } else if ((chksum = getValByKey (&phyPathRegInp->condInput, VERIFY_CHKSUM_KW)) != NULL) { status = _dataObjChksum (rsComm, &dataObjInfo, &chksum); if (status < 0) { rodsLog (LOG_ERROR, "rodsPathReg: _dataObjChksum for %s failed, status = %d", dataObjInfo.objPath, status); return (status); } rstrcpy (dataObjInfo.chksum, chksum, NAME_LEN); } status = svrRegDataObj (rsComm, &dataObjInfo); if (status < 0) { rodsLog (LOG_ERROR, "filePathReg: rsRegDataObj for %s failed, status = %d", dataObjInfo.objPath, status); } else { ruleExecInfo_t rei; initReiWithDataObjInp (&rei, rsComm, phyPathRegInp); rei.doi = &dataObjInfo; rei.status = status; rei.status = applyRule ("acPostProcForFilePathReg", NULL, &rei, NO_SAVE_REI); } return (status); }