From 6eb0ed68dd098d4b0a12986efbb2566dcba67e44 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 18:02:49 +0100 Subject: [PATCH] Manager: /depsgraph: store & use Last-Modified header contents as string When querying Server .../depsgraph, we just take the Last-Modified header value as string, and store that without doing any parsing. This prevents issues with timezones getting lost, formatting going wrong, etc. --- .../src/flamenco-manager/flamenco/documents.go | 2 +- .../src/flamenco-manager/flamenco/upstream.go | 13 ++++--------- 2 files changed, 5 insertions(+), 10 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 46ae3b5a..047ac4f1 100644 --- a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/documents.go +++ b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/documents.go @@ -105,7 +105,7 @@ type MayKeepRunningResponse struct { // Settings we want to be able to update from within Flamenco Manager itself, // so those are stored in MongoDB itself. type SettingsInMongo struct { - DepsgraphLastModified *time.Time `bson:"depsgraph_last_modified"` + DepsgraphLastModified *string `bson:"depsgraph_last_modified"` } type StatusReport struct { diff --git a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/upstream.go b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/upstream.go index c4e78d9d..b50dfcdd 100644 --- a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/upstream.go +++ b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/upstream.go @@ -158,9 +158,8 @@ func download_tasks_from_upstream(config *Conf, mongo_sess *mgo.Session) { settings := GetSettings(db) if settings.DepsgraphLastModified != nil { log.Infof("Getting tasks from upstream Flamenco %s If-Modified-Since %s", get_url, - settings.DepsgraphLastModified) - req.Header.Set("If-Modified-Since", - settings.DepsgraphLastModified.Format(LastModifiedHeaderFormat)) + *settings.DepsgraphLastModified) + req.Header.Set("If-Modified-Since", *settings.DepsgraphLastModified) } else { log.Infof("Getting tasks from upstream Flamenco %s", get_url) } @@ -227,12 +226,8 @@ func download_tasks_from_upstream(config *Conf, mongo_sess *mgo.Session) { last_modified := resp.Header.Get("Last-Modified") if last_modified != "" { log.Info("Last modified task was at ", last_modified) - if parsed, err := time.Parse(LastModifiedHeaderFormat, last_modified); err != nil { - log.Errorf("Unable to parse Last-Modified header: ", err) - } else { - settings.DepsgraphLastModified = &parsed - SaveSettings(db, settings) - } + settings.DepsgraphLastModified = &last_modified + SaveSettings(db, settings) } } -- GitLab