rpc/client: Implement RenameFile properly. (#1443)

This commit is contained in:
Harshavardhana 2016-05-02 03:12:18 -07:00 committed by Anand Babu (AB) Periasamy
parent 8102a4712a
commit 3bf3d18f1f
3 changed files with 40 additions and 2 deletions

View File

@ -287,6 +287,21 @@ func (n networkFS) DeleteFile(volume, path string) (err error) {
}
// RenameFile - Rename file.
func (n networkFS) RenameFile(srcVolume, srcPath, dstVolume, dstPath string) error {
return errUnexpected
func (n networkFS) RenameFile(srcVolume, srcPath, dstVolume, dstPath string) (err error) {
reply := GenericReply{}
if err = n.rpcClient.Call("Storage.RenameFileHandler", RenameFileArgs{
SrcVol: srcVolume,
SrcPath: srcPath,
DstVol: dstVolume,
DstPath: dstPath,
}, &reply); err != nil {
log.WithFields(logrus.Fields{
"srcVolume": srcVolume,
"srcPath": srcPath,
"dstVolume": dstVolume,
"dstPath": dstPath,
}).Errorf("Storage.RenameFileHandler failed with %s", err)
return toStorageErr(err)
}
return nil
}

View File

@ -53,3 +53,11 @@ type DeleteFileArgs struct {
Vol string
Path string
}
// RenameFileArgs rename file args.
type RenameFileArgs struct {
SrcVol string
SrcPath string
DstVol string
DstPath string
}

View File

@ -118,6 +118,21 @@ func (s *storageServer) DeleteFileHandler(arg *DeleteFileArgs, reply *GenericRep
return nil
}
// RenameFileHandler - rename file handler is rpc wrapper to rename file.
func (s *storageServer) RenameFileHandler(arg *RenameFileArgs, reply *GenericReply) error {
err := s.storage.RenameFile(arg.SrcVol, arg.SrcPath, arg.DstVol, arg.DstPath)
if err != nil {
log.WithFields(logrus.Fields{
"srcVolume": arg.SrcVol,
"srcPath": arg.SrcPath,
"dstVolume": arg.DstVol,
"dstPath": arg.DstPath,
}).Errorf("RenameFile failed with error %s", err)
return err
}
return nil
}
// Initialize new storage rpc.
func newRPCServer(exportPath string) (*storageServer, error) {
// Initialize posix storage API.