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-07-27 04:43:02 +0300
committerVladimir Shushlin <v.shushlin@gmail.com>2020-08-04 11:23:51 +0300
commite5106118f14674565bedf7c3dc3733ce2739acc3 (patch)
treee21ac26d41ab1e004cf49412919679c8e7a9be8e
parent46160c0fd08b1628055de9fb94c009a924235d6f (diff)
Set disk source
-rw-r--r--internal/source/domains.go33
-rw-r--r--internal/source/domains_test.go10
2 files changed, 29 insertions, 14 deletions
diff --git a/internal/source/domains.go b/internal/source/domains.go
index b35774be..81c53bd6 100644
--- a/internal/source/domains.go
+++ b/internal/source/domains.go
@@ -41,29 +41,34 @@ type Domains struct {
// not initialize `dm` as we later check the readiness by comparing it with a
// nil value.
func NewDomains(config Config) (*Domains, error) {
- // TODO: choose domain source config via config.DomainConfigSource()
- // https://gitlab.com/gitlab-org/gitlab/-/issues/217912
+ domains := &Domains{
+ disk: disk.New(),
+ }
- domains := &Domains{}
+ // Creating a glClient will start polling connectivity in the background
+ glClient, glErr := newGitlabClient(config)
- if config.DomainConfigSource() == "disk" {
- domains.disk = disk.New()
- // TODO: start polling
+ switch config.DomainConfigSource() {
+ // TODO: handle DomainConfigSource == "gitlab" || "auto" https://gitlab.com/gitlab-org/gitlab/-/issues/218358
+ case "disk":
return domains, nil
}
- if len(config.InternalGitLabServerURL()) == 0 || len(config.GitlabAPISecret()) == 0 {
- return domains, nil
+ if glErr == nil {
+ domains.gitlab = glClient
+ } else {
+ log.WithError(glErr).Warn("failed to create GitLab domains source")
}
- glClient, err := gitlab.New(config)
- if err != nil {
- return nil, err
- }
+ return domains, nil
+}
- domains.gitlab = glClient
+func newGitlabClient(config Config) (*gitlab.Gitlab, error) {
+ if len(config.InternalGitLabServerURL()) == 0 || len(config.GitlabAPISecret()) == 0 {
+ return nil, nil
+ }
- return domains, nil
+ return gitlab.New(config)
}
// GetDomain retrieves a domain information from a source. We are using two
diff --git a/internal/source/domains_test.go b/internal/source/domains_test.go
index 2382e756..df41caa2 100644
--- a/internal/source/domains_test.go
+++ b/internal/source/domains_test.go
@@ -52,6 +52,16 @@ func TestDomainSources(t *testing.T) {
require.Nil(t, domains.gitlab)
require.NotNil(t, domains.disk)
})
+
+ t.Run("when source is set to disk", func(t *testing.T) {
+ domains, err := NewDomains(sourceConfig{
+ domainSource: "disk",
+ })
+ require.NoError(t, err)
+
+ require.Nil(t, domains.gitlab)
+ require.NotNil(t, domains.disk)
+ })
}
func TestGetDomain(t *testing.T) {