Loading .gitlab-ci.yml +2 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ service-build: - docker tag remote-data-broker $CONTAINER_RDM_URL:$TAG - docker push $CONTAINER_RDM_URL:$CI_COMMIT_SHORT_SHA - docker push $CONTAINER_RDM_URL:$TAG when: manual tags: - rse-multi-builder Loading @@ -40,5 +41,6 @@ build-packages: - docker run --rm -v `pwd`:/tmp remote-data-broker bash -c "cp /rdb/build/*.deb /tmp" - fname=`ls *.deb | head -n 1` - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $fname "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/deb/${TAG}/$fname"' when: manual tags: - rse-multi-builder src/common/settings.go +15 −5 Original line number Diff line number Diff line package common import ( "errors" "github.com/spf13/viper" log "remote_data_broker/logger" "strings" Loading @@ -11,6 +10,7 @@ type serverSettings struct { CatCommand string TestCommand string Auth struct { Enabled bool JwksUrl string UserList []string } Loading @@ -34,6 +34,20 @@ type serverSettings struct { var Settings serverSettings func ReadConfig(fname string) (log.Level, error) { viper.SetDefault("CatCommand", "cat $filename") viper.SetDefault("TestCommand", "test -r $filename") viper.SetDefault("Http.Enabled", true) viper.SetDefault("Http.Host", "http://localhost") viper.SetDefault("Http.Port", 7000) viper.SetDefault("Http.ChunkSize", 100000) viper.SetDefault("Http.Timeout", 3) viper.SetDefault("Rmq.Url", "amqp://guest:guest@localhost:5672") viper.SetDefault("Rmq.Queue", "test") viper.SetDefault("RmqClient.Enabled", true) viper.SetDefault("LogLevel", "debug") viper.SetDefault("Auth.Enabled", false) if fname != "" { viper.SetConfigFile(fname) viper.ReadInConfig() Loading @@ -45,10 +59,6 @@ func ReadConfig(fname string) (log.Level, error) { return log.FatalLevel, err } if Settings.Http.Port == 0 { return log.FatalLevel, errors.New("Server port not set") } level, err := log.LevelFromString(Settings.LogLevel) return level, err Loading src/common/version.go +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ var version string // Default build-time variable for library-import. // This file is overridden on build with build-time informations. func init() { version = "23.06" version = "0.1.0" rdbApiVersion = "v0.1" } Loading src/http_server/download_local.go +14 −10 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ import ( ) func downloadFromLocal(w http.ResponseWriter, r *http.Request, downloadRequest fileDownloadRequest) { if common.Settings.Auth.Enabled { _, err := auth.CheckAndGetContent(downloadRequest.Token) if err != nil { log.WithFields(map[string]interface{}{ Loading @@ -22,13 +23,15 @@ func downloadFromLocal(w http.ResponseWriter, r *http.Request, downloadRequest f http.Error(w, "Authorization failed", http.StatusUnauthorized) return } } _, file := path.Split(downloadRequest.FileName) w.Header().Set("Content-Disposition", "attachment; filename=\""+file+"\"") log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, }).Debug("transferring file") "mode": "as rdb user", }).Debug("Transferring file") http.ServeFile(w, r, downloadRequest.FileName) } Loading Loading @@ -105,5 +108,6 @@ func downloadFromLocalAsUser(w http.ResponseWriter, downloadRequest fileDownload w.Header().Set("Content-Disposition", "attachment; filename=\""+file+"\"") log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, }).Debug("file sent successfully") "mode": "as user", }).Debug("File sent successfully") } src/http_server/download_remote.go +8 −1 Original line number Diff line number Diff line Loading @@ -85,12 +85,19 @@ func downloadFromRemote(w http.ResponseWriter, downloadRequest fileDownloadReque select { case data := <-channel: if data == nil { log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, "mode": "as user, from remote", }).Debug("File sent successfully") return } w.Write(data) timer.Reset(timeout) case <-timer.C: fmt.Println("Timeout occurred") log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, "mode": "as user, from remote", }).Error("File sent timeout") utils.WriteServerError(w, errors.New("request timeout"), http.StatusInternalServerError) return } Loading Loading
.gitlab-ci.yml +2 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ service-build: - docker tag remote-data-broker $CONTAINER_RDM_URL:$TAG - docker push $CONTAINER_RDM_URL:$CI_COMMIT_SHORT_SHA - docker push $CONTAINER_RDM_URL:$TAG when: manual tags: - rse-multi-builder Loading @@ -40,5 +41,6 @@ build-packages: - docker run --rm -v `pwd`:/tmp remote-data-broker bash -c "cp /rdb/build/*.deb /tmp" - fname=`ls *.deb | head -n 1` - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $fname "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/deb/${TAG}/$fname"' when: manual tags: - rse-multi-builder
src/common/settings.go +15 −5 Original line number Diff line number Diff line package common import ( "errors" "github.com/spf13/viper" log "remote_data_broker/logger" "strings" Loading @@ -11,6 +10,7 @@ type serverSettings struct { CatCommand string TestCommand string Auth struct { Enabled bool JwksUrl string UserList []string } Loading @@ -34,6 +34,20 @@ type serverSettings struct { var Settings serverSettings func ReadConfig(fname string) (log.Level, error) { viper.SetDefault("CatCommand", "cat $filename") viper.SetDefault("TestCommand", "test -r $filename") viper.SetDefault("Http.Enabled", true) viper.SetDefault("Http.Host", "http://localhost") viper.SetDefault("Http.Port", 7000) viper.SetDefault("Http.ChunkSize", 100000) viper.SetDefault("Http.Timeout", 3) viper.SetDefault("Rmq.Url", "amqp://guest:guest@localhost:5672") viper.SetDefault("Rmq.Queue", "test") viper.SetDefault("RmqClient.Enabled", true) viper.SetDefault("LogLevel", "debug") viper.SetDefault("Auth.Enabled", false) if fname != "" { viper.SetConfigFile(fname) viper.ReadInConfig() Loading @@ -45,10 +59,6 @@ func ReadConfig(fname string) (log.Level, error) { return log.FatalLevel, err } if Settings.Http.Port == 0 { return log.FatalLevel, errors.New("Server port not set") } level, err := log.LevelFromString(Settings.LogLevel) return level, err Loading
src/common/version.go +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ var version string // Default build-time variable for library-import. // This file is overridden on build with build-time informations. func init() { version = "23.06" version = "0.1.0" rdbApiVersion = "v0.1" } Loading
src/http_server/download_local.go +14 −10 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ import ( ) func downloadFromLocal(w http.ResponseWriter, r *http.Request, downloadRequest fileDownloadRequest) { if common.Settings.Auth.Enabled { _, err := auth.CheckAndGetContent(downloadRequest.Token) if err != nil { log.WithFields(map[string]interface{}{ Loading @@ -22,13 +23,15 @@ func downloadFromLocal(w http.ResponseWriter, r *http.Request, downloadRequest f http.Error(w, "Authorization failed", http.StatusUnauthorized) return } } _, file := path.Split(downloadRequest.FileName) w.Header().Set("Content-Disposition", "attachment; filename=\""+file+"\"") log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, }).Debug("transferring file") "mode": "as rdb user", }).Debug("Transferring file") http.ServeFile(w, r, downloadRequest.FileName) } Loading Loading @@ -105,5 +108,6 @@ func downloadFromLocalAsUser(w http.ResponseWriter, downloadRequest fileDownload w.Header().Set("Content-Disposition", "attachment; filename=\""+file+"\"") log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, }).Debug("file sent successfully") "mode": "as user", }).Debug("File sent successfully") }
src/http_server/download_remote.go +8 −1 Original line number Diff line number Diff line Loading @@ -85,12 +85,19 @@ func downloadFromRemote(w http.ResponseWriter, downloadRequest fileDownloadReque select { case data := <-channel: if data == nil { log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, "mode": "as user, from remote", }).Debug("File sent successfully") return } w.Write(data) timer.Reset(timeout) case <-timer.C: fmt.Println("Timeout occurred") log.WithFields(map[string]interface{}{ "name": downloadRequest.FileName, "mode": "as user, from remote", }).Error("File sent timeout") utils.WriteServerError(w, errors.New("request timeout"), http.StatusInternalServerError) return } Loading