diff --git a/broker/src/asapo_broker/database/streams_test.go b/broker/src/asapo_broker/database/streams_test.go index c972ba789f8d4b77e44f3c9d8b5a26416db770c9..fef6ff3afb5d5f5f74bcf85975c5e22748d2388e 100644 --- a/broker/src/asapo_broker/database/streams_test.go +++ b/broker/src/asapo_broker/database/streams_test.go @@ -54,6 +54,27 @@ func (suite *StreamsTestSuite) TestStreamsUsesCache() { suite.Equal(int64(1), rec.Streams[0].TimestampLast) } +func (suite *StreamsTestSuite) TestStreamsCacheexpires() { + db.settings.UpdateStreamCachePeriodMs = 100 + var res1 StreamsRecord + go func() { + db.insertRecord(dbname, collection, &rec1) + streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""}) + db.insertRecord(dbname, collection, &rec_finished) + res1,_ = streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""}) + }() + db.insertRecord(dbname, collection+"1", &rec1_later) + res2,_ := streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""}) + db.insertRecord(dbname, collection+"1", &rec_finished) + time.Sleep(time.Second) + res3, err := streams.getStreams(&db, Request{DbName: dbname, ExtraParam: ""}) + suite.Nil(err) + suite.Equal(true, res3.Streams[0].Finished) + fmt.Println(res1,res2) +// suite.Equal(true, rec.Streams[1].Finished) +} + + func (suite *StreamsTestSuite) TestStreamsGetFinishedInfo() { db.settings.UpdateStreamCachePeriodMs = 1000 db.insertRecord(dbname, collection, &rec1) diff --git a/common/cpp/src/database/mongodb_client.cpp b/common/cpp/src/database/mongodb_client.cpp index 7cab88b4e40ae6f5e9b3547c65bb784213e6abf8..8a35d66cff0345d372b42ea078933351860e6256 100644 --- a/common/cpp/src/database/mongodb_client.cpp +++ b/common/cpp/src/database/mongodb_client.cpp @@ -417,7 +417,7 @@ Error StreamInfoFromDbResponse(const std::string &last_record_str, return err; } - return UpdateStreamInfoFromEarliestRecord(last_record_str,info); + return UpdateStreamInfoFromEarliestRecord(earliest_record_str,info); } diff --git a/file_transfer/src/asapo_file_transfer/server/transfer.go b/file_transfer/src/asapo_file_transfer/server/transfer.go index 8e6817007b75dc25ab7b589814c13a0788ea42f6..e6528ff34e280ccd9510d1e910f3038bb3ccb2b9 100644 --- a/file_transfer/src/asapo_file_transfer/server/transfer.go +++ b/file_transfer/src/asapo_file_transfer/server/transfer.go @@ -21,7 +21,7 @@ type fileTransferRequest struct { func Exists(name string) bool { fi, err := os.Stat(name) - return !os.IsNotExist(err) && !fi.IsDir() + return err==nil && !fi.IsDir() } @@ -42,7 +42,7 @@ func checkFileExists(r *http.Request,name string) (int,error) { if !Exists(name) { err_txt := "file "+name+" does not exist" log.Error("cannot transfer file: "+err_txt) - return http.StatusBadRequest,errors.New(err_txt) + return http.StatusNotFound,errors.New(err_txt) } return http.StatusOK,nil diff --git a/file_transfer/src/asapo_file_transfer/server/transfer_test.go b/file_transfer/src/asapo_file_transfer/server/transfer_test.go index 378426407d26265af17b2ee6e522d023a540b207..d4117dcfd9a71939914f3f7227c8d18b148320ab 100644 --- a/file_transfer/src/asapo_file_transfer/server/transfer_test.go +++ b/file_transfer/src/asapo_file_transfer/server/transfer_test.go @@ -60,7 +60,7 @@ var transferFileTests = [] struct { message string }{ {"folder","exists", prepareToken("folder"),http.StatusOK,"file transferred"}, - {"folder","not_exists", prepareToken("folder"),http.StatusBadRequest,"file not exists"}, + {"folder","not_exists", prepareToken("folder"),http.StatusNotFound,"file not exists"}, {"wrong_folder","p07", prepareToken("folder"),http.StatusUnauthorized,"wrong folder"}, {"folder","p07", "wrong token",http.StatusUnauthorized,"wrong token"}, }