Skip to content
Snippets Groups Projects
Commit dcb01d03 authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

Merge pull request #100 in ASAPO/asapo from develop to master

* commit '29da75bf':
  Merge pull request #99 in ASAPO/asapo from feature_ASAPO-112-allow-arbitrary-group-id to develop
parents 470ddc41 29da75bf
Branches
Tags 20.06.1
No related merge requests found
## 20.06.1
IMPROVEMENTS
* allow arbitrary group id
## 20.06.0
FEATURES
* implemented acknowledeges - one can acknowledge a data tuple, get last acknowledged tuple id, get list of unacknowledged tuple ids
......
......@@ -6,7 +6,6 @@ import (
log "asapo_common/logger"
"asapo_common/utils"
"github.com/gorilla/mux"
"github.com/rs/xid"
"net/http"
)
......@@ -25,19 +24,31 @@ func extractRequestParameters(r *http.Request, needGroupID bool) (string, string
return db_name, stream, substream, group_id, ok1 && ok2 && ok3 && ok4
}
var Sink bool
func IsLetterOrNumbers(s string) bool {
for _, r := range s {
if (r < 'a' || r > 'z') && (r < 'A' || r > 'Z') && (r<'0' || r>'9') {
return false
}
}
return true
}
func checkGroupID(w http.ResponseWriter, needGroupID bool, group_id string, db_name string, op string) bool {
if !needGroupID {
return true
}
if _, err := xid.FromString(group_id); err != nil {
err_str := "wrong groupid " + group_id
log_str := "processing get " + op + " request in " + db_name + " at " + settings.GetDatabaseServer() + ": " + err_str
logger.Error(log_str)
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte(err_str))
return false
if len(group_id) > 0 && len (group_id) < 100 && IsLetterOrNumbers(group_id) {
return true
}
return true
err_str := "wrong groupid " + group_id
log_str := "processing get " + op + " request in " + db_name + " at " + settings.GetDatabaseServer() + ": " + err_str
logger.Error(log_str)
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte(err_str))
return false
}
func processRequest(w http.ResponseWriter, r *http.Request, op string, extra_param string, needGroupID bool) {
......
......@@ -19,7 +19,7 @@ import (
var correctTokenSuffix, wrongTokenSuffix, suffixWithWrongToken, expectedBeamtimeId, expectedDBName string
const expectedGroupID = "bid2a5auidddp1vl71d0"
const wrongGroupID = "bid2a5auidddp1vl71"
const wrongGroupID = "_bid2a5auidddp1vl71"
const expectedStream = "stream"
const expectedSubstream = "substream"
......
......@@ -99,12 +99,12 @@ def check_single(broker,group_id):
assert_usermetadata(meta,"get next6")
try:
broker.get_next("bla", meta_only=True)
broker.get_next("_wrong_group_name", meta_only=True)
except asapo_consumer.AsapoWrongInputError as err:
print(err)
pass
else:
exit_on_noerr("wrong input")
exit_on_noerr("should give wrong input error")
try:
broker.get_last(group_id, meta_only=False)
......@@ -221,7 +221,7 @@ def check_dataset(broker,group_id):
except:
pass
else:
exit_on_noerr("get_next_dataset4 err")
exit_on_noerr("get_next_dataset4 get next6err")
source, path, beamtime, token, mode = sys.argv[1:]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment