Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Martinez <jmartinez@gitlab.com>2020-11-30 03:09:30 +0300
committerJaime Martinez <jmartinez@gitlab.com>2020-11-30 03:13:03 +0300
commit9c51d46d39c1a2614aafca02bf1f3376a88e0280 (patch)
treeb4148f0c236f878c38ffcd7fda5d91696c93ca27 /internal/serving
parentaeff2242f8b8fe51bb02539bf73b90bb6cf2ed1b (diff)
Add Reconfigure to serving and VFS interfaces
Diffstat (limited to 'internal/serving')
-rw-r--r--internal/serving/disk/serving.go6
-rw-r--r--internal/serving/disk/zip/serving.go12
-rw-r--r--internal/serving/serverless/serverless.go6
-rw-r--r--internal/serving/serving.go3
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
}