From 8dc18fadf0c0f449c0b78b7c61eb836e138b9984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= <sybren@stuvel.eu> Date: Thu, 26 Jan 2017 16:59:14 +0100 Subject: [PATCH] Manager: exposed version to CLI (-version) and status reports Now the / url shows the version of Flamenco Manager that is running, and 'flamenco-manager -version' shows that too (then stops). --- .../src/flamenco-manager/flamenco/documents.go | 6 ++++++ .../src/flamenco-manager/flamenco/statusreport.go | 9 +++------ .../flamenco-manager-go/src/flamenco-manager/main.go | 9 ++++++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/documents.go b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/documents.go index ca2e1bbd..46ae3b5a 100644 --- a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/documents.go +++ b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/documents.go @@ -107,3 +107,9 @@ type MayKeepRunningResponse struct { type SettingsInMongo struct { DepsgraphLastModified *time.Time `bson:"depsgraph_last_modified"` } + +type StatusReport struct { + NrOfWorkers int `json:"nr_of_workers"` + NrOfTasks int `json:"nr_of_tasks"` + Version string `json:"version"` +} diff --git a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/statusreport.go b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/statusreport.go index c227de36..3af60750 100644 --- a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/statusreport.go +++ b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/statusreport.go @@ -9,15 +9,11 @@ import ( mgo "gopkg.in/mgo.v2" ) -type StatusReport struct { - NrOfWorkers int `json:"nr_of_workers"` - NrOfTasks int `json:"nr_of_tasks"` -} - /** * Reports the status of the manager in JSON. */ -func SendStatusReport(w http.ResponseWriter, r *http.Request, session *mgo.Session) { +func SendStatusReport(w http.ResponseWriter, r *http.Request, session *mgo.Session, + flamenco_version string) { log.Info(r.RemoteAddr, "Status request received") mongo_sess := session.Copy() @@ -42,6 +38,7 @@ func SendStatusReport(w http.ResponseWriter, r *http.Request, session *mgo.Sessi statusreport := StatusReport{ worker_count, task_count, + flamenco_version, } encoder := json.NewEncoder(w) diff --git a/packages/flamenco-manager-go/src/flamenco-manager/main.go b/packages/flamenco-manager-go/src/flamenco-manager/main.go index dda062bf..a0a92cfd 100644 --- a/packages/flamenco-manager-go/src/flamenco-manager/main.go +++ b/packages/flamenco-manager-go/src/flamenco-manager/main.go @@ -32,7 +32,7 @@ var task_update_pusher *flamenco.TaskUpdatePusher var task_timeout_checker *flamenco.TaskTimeoutChecker func http_status(w http.ResponseWriter, r *http.Request) { - flamenco.SendStatusReport(w, r, session) + flamenco.SendStatusReport(w, r, session, FLAMENCO_VERSION) } func http_register_worker(w http.ResponseWriter, r *http.Request) { @@ -124,6 +124,7 @@ var cliArgs struct { debug bool jsonLog bool cleanSlate bool + version bool } func parseCliArgs() { @@ -131,6 +132,7 @@ func parseCliArgs() { flag.BoolVar(&cliArgs.debug, "debug", false, "Enable debug-level logging") flag.BoolVar(&cliArgs.jsonLog, "json", false, "Log in JSON format") flag.BoolVar(&cliArgs.cleanSlate, "cleanslate", false, "Start with a clean slate; erases all tasks from the local MongoDB") + flag.BoolVar(&cliArgs.version, "version", false, "Show the version of Flamenco Manager") flag.Parse() } @@ -155,6 +157,11 @@ func configLogging() { func main() { parseCliArgs() + if cliArgs.version { + fmt.Println(FLAMENCO_VERSION) + return + } + configLogging() log.Infof("Starting Flamenco Manager version %s", FLAMENCO_VERSION) -- GitLab