mirror of
https://github.com/minio/minio.git
synced 2025-03-30 09:13:41 -04:00
Merge pull request #330 from harshavardhana/pr_out_return_error_during_joinfiles_back_to_the_caller_for_inspection
This commit is contained in:
commit
d92a179cbc
@ -103,11 +103,12 @@ func splitStreamGoRoutine(reader io.Reader, chunkSize uint64, ch chan Message) {
|
|||||||
// fmt.Println(buf)
|
// fmt.Println(buf)
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
func JoinFiles(dirname string, inputPrefix string) io.Reader {
|
func JoinFiles(dirname string, inputPrefix string) (io.Reader, error) {
|
||||||
reader, writer := io.Pipe()
|
reader, writer := io.Pipe()
|
||||||
fileInfos, readError := ioutil.ReadDir(dirname)
|
fileInfos, readError := ioutil.ReadDir(dirname)
|
||||||
if readError != nil {
|
if readError != nil {
|
||||||
writer.CloseWithError(readError)
|
writer.CloseWithError(readError)
|
||||||
|
return nil, readError
|
||||||
}
|
}
|
||||||
|
|
||||||
var newfileInfos []os.FileInfo
|
var newfileInfos []os.FileInfo
|
||||||
@ -118,11 +119,13 @@ func JoinFiles(dirname string, inputPrefix string) io.Reader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(newfileInfos) == 0 {
|
if len(newfileInfos) == 0 {
|
||||||
writer.CloseWithError(errors.New("no files found for given prefix"))
|
nofilesError := errors.New("no files found for given prefix " + inputPrefix)
|
||||||
|
writer.CloseWithError(nofilesError)
|
||||||
|
return nil, nofilesError
|
||||||
}
|
}
|
||||||
|
|
||||||
go joinFilesGoRoutine(newfileInfos, writer)
|
go joinFilesGoRoutine(newfileInfos, writer)
|
||||||
return reader
|
return reader, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func joinFilesGoRoutine(fileInfos []os.FileInfo, writer *io.PipeWriter) {
|
func joinFilesGoRoutine(fileInfos []os.FileInfo, writer *io.PipeWriter) {
|
||||||
|
@ -60,10 +60,13 @@ func (s *MySuite) TestFileSplitJoin(c *C) {
|
|||||||
|
|
||||||
devnull, err := os.OpenFile(os.DevNull, 2, os.ModeAppend)
|
devnull, err := os.OpenFile(os.DevNull, 2, os.ModeAppend)
|
||||||
defer devnull.Close()
|
defer devnull.Close()
|
||||||
reader := split.JoinFiles(".", "ERROR")
|
|
||||||
_, err = io.Copy(devnull, reader)
|
var reader io.Reader
|
||||||
|
reader, err = split.JoinFiles(".", "ERROR")
|
||||||
c.Assert(err, Not(IsNil))
|
c.Assert(err, Not(IsNil))
|
||||||
reader = split.JoinFiles(".", "TESTPREFIX")
|
|
||||||
|
reader, err = split.JoinFiles(".", "TESTPREFIX")
|
||||||
|
c.Assert(err, IsNil)
|
||||||
_, err = io.Copy(devnull, reader)
|
_, err = io.Copy(devnull, reader)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user