00001
00002
00003 #include "structFileDriver.h"
00004 #include "subStructFileRename.h"
00005 #include "miscServerFunct.h"
00006 #include "dataObjOpr.h"
00007
00008 int
00009 rsSubStructFileRename (rsComm_t *rsComm, subStructFileRenameInp_t *subStructFileRenameInp)
00010 {
00011 rodsServerHost_t *rodsServerHost;
00012 int remoteFlag;
00013 int status;
00014
00015 remoteFlag = resolveHost (&subStructFileRenameInp->subFile.addr, &rodsServerHost);
00016
00017 if (remoteFlag == LOCAL_HOST) {
00018 status = _rsSubStructFileRename (rsComm, subStructFileRenameInp);
00019 } else if (remoteFlag == REMOTE_HOST) {
00020 status = remoteSubStructFileRename (rsComm, subStructFileRenameInp, rodsServerHost);
00021 } else {
00022 if (remoteFlag < 0) {
00023 return (remoteFlag);
00024 } else {
00025 rodsLog (LOG_NOTICE,
00026 "rsSubStructFileRename: resolveHost returned unrecognized value %d",
00027 remoteFlag);
00028 return (SYS_UNRECOGNIZED_REMOTE_FLAG);
00029 }
00030 }
00031
00032 return (status);
00033 }
00034
00035 int
00036 remoteSubStructFileRename (rsComm_t *rsComm, subStructFileRenameInp_t *subStructFileRenameInp,
00037 rodsServerHost_t *rodsServerHost)
00038 {
00039 int status;
00040
00041 if (rodsServerHost == NULL) {
00042 rodsLog (LOG_NOTICE,
00043 "remoteSubStructFileRename: Invalid rodsServerHost");
00044 return SYS_INVALID_SERVER_HOST;
00045 }
00046
00047 if ((status = svrToSvrConnect (rsComm, rodsServerHost)) < 0) {
00048 return status;
00049 }
00050
00051 status = rcSubStructFileRename (rodsServerHost->conn, subStructFileRenameInp);
00052
00053 if (status < 0) {
00054 rodsLog (LOG_NOTICE,
00055 "remoteSubStructFileRename: rcSubStructFileRename failed for %s, status = %d",
00056 subStructFileRenameInp->subFile.subFilePath, status);
00057 }
00058
00059 return status;
00060 }
00061
00062 int
00063 _rsSubStructFileRename (rsComm_t *rsComm, subStructFileRenameInp_t *subStructFileRenameInp)
00064 {
00065 int status;
00066
00067 status = subStructFileRename (rsComm, &subStructFileRenameInp->subFile,
00068 subStructFileRenameInp->newSubFilePath);
00069
00070 return (status);
00071 }
00072