diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2020-11-30 03:09:30 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2020-11-30 03:13:03 +0300 |
commit | 9c51d46d39c1a2614aafca02bf1f3376a88e0280 (patch) | |
tree | b4148f0c236f878c38ffcd7fda5d91696c93ca27 /internal/serving | |
parent | aeff2242f8b8fe51bb02539bf73b90bb6cf2ed1b (diff) |
Add Reconfigure to serving and VFS interfaces
Diffstat (limited to 'internal/serving')
-rw-r--r-- | internal/serving/disk/serving.go | 6 | ||||
-rw-r--r-- | internal/serving/disk/zip/serving.go | 12 | ||||
-rw-r--r-- | internal/serving/serverless/serverless.go | 6 | ||||
-rw-r--r-- | internal/serving/serving.go | 3 |
4 files changed, 24 insertions, 3 deletions
diff --git a/internal/serving/disk/serving.go b/internal/serving/disk/serving.go index 30c821ea..fbcdf9f2 100644 --- a/internal/serving/disk/serving.go +++ b/internal/serving/disk/serving.go @@ -3,6 +3,7 @@ package disk import ( "os" + "gitlab.com/gitlab-org/gitlab-pages/internal/config" "gitlab.com/gitlab-org/gitlab-pages/internal/httperrors" "gitlab.com/gitlab-org/gitlab-pages/internal/serving" "gitlab.com/gitlab-org/gitlab-pages/internal/vfs" @@ -40,6 +41,11 @@ func (s *Disk) ServeNotFoundHTTP(h serving.Handler) { httperrors.Serve404(h.Writer) } +// Reconfigure VFS +func (s *Disk) Reconfigure(cfg *config.Config) error { + return s.reader.vfs.Reconfigure(cfg) +} + // New returns a serving instance that is capable of reading files // from the VFS func New(vfs vfs.VFS) serving.Serving { diff --git a/internal/serving/disk/zip/serving.go b/internal/serving/disk/zip/serving.go index 61d186da..b31d9090 100644 --- a/internal/serving/disk/zip/serving.go +++ b/internal/serving/disk/zip/serving.go @@ -3,6 +3,8 @@ package zip import ( "sync" + "gitlab.com/gitlab-org/labkit/log" + "gitlab.com/gitlab-org/gitlab-pages/internal/config" "gitlab.com/gitlab-org/gitlab-pages/internal/serving" "gitlab.com/gitlab-org/gitlab-pages/internal/serving/disk" @@ -10,14 +12,18 @@ import ( "gitlab.com/gitlab-org/gitlab-pages/internal/vfs/zip" ) -var instance serving.Serving -var once sync.Once +var ( + once sync.Once + instance = disk.New(vfs.Instrumented(zip.New(config.Default.Zip))) +) // Instance returns a serving instance that is capable of reading files // from a zip archives opened from a URL, most likely stored in object storage func Instance() serving.Serving { once.Do(func() { - instance = disk.New(vfs.Instrumented(zip.New(config.Default.Zip))) + if err := instance.Reconfigure(config.Default); err != nil { + log.WithError(err).Fatal("failed to reconfigure zip serving") + } }) return instance diff --git a/internal/serving/serverless/serverless.go b/internal/serving/serverless/serverless.go index e1881362..f8bd4e87 100644 --- a/internal/serving/serverless/serverless.go +++ b/internal/serving/serverless/serverless.go @@ -4,6 +4,7 @@ import ( "errors" "net/http/httputil" + "gitlab.com/gitlab-org/gitlab-pages/internal/config" "gitlab.com/gitlab-org/gitlab-pages/internal/httperrors" "gitlab.com/gitlab-org/gitlab-pages/internal/serving" "gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/api" @@ -65,3 +66,8 @@ func (s *Serverless) ServeFileHTTP(h serving.Handler) bool { func (s *Serverless) ServeNotFoundHTTP(h serving.Handler) { httperrors.Serve404(h.Writer) } + +// Reconfigure noop +func (s *Serverless) Reconfigure(*config.Config) error { + return nil +} diff --git a/internal/serving/serving.go b/internal/serving/serving.go index 6fde8216..786ee569 100644 --- a/internal/serving/serving.go +++ b/internal/serving/serving.go @@ -1,7 +1,10 @@ package serving +import "gitlab.com/gitlab-org/gitlab-pages/internal/config" + // Serving is an interface used to define a serving driver type Serving interface { ServeFileHTTP(Handler) bool ServeNotFoundHTTP(Handler) + Reconfigure(config *config.Config) error } |