diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2019-09-25 13:52:55 +0300 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2019-09-25 17:00:28 +0300 |
commit | 8e11c9aa018c157966f30a4d809c7ca454d310fa (patch) | |
tree | 725dba41021b57ae175deceee7b8c268265a61ef /internal | |
parent | 508be9806c17d6ab8ca75104f831c7a7a9dc9a3a (diff) |
Do not export disk source internal config types
Diffstat (limited to 'internal')
-rw-r--r-- | internal/source/disk/config.go | 12 | ||||
-rw-r--r-- | internal/source/disk/config_test.go | 22 | ||||
-rw-r--r-- | internal/source/disk/group.go | 6 | ||||
-rw-r--r-- | internal/source/disk/group_domain_test.go | 46 | ||||
-rw-r--r-- | internal/source/disk/group_test.go | 10 | ||||
-rw-r--r-- | internal/source/disk/map.go | 10 |
6 files changed, 53 insertions, 53 deletions
diff --git a/internal/source/disk/config.go b/internal/source/disk/config.go index de3576d2..d2e6c123 100644 --- a/internal/source/disk/config.go +++ b/internal/source/disk/config.go @@ -8,7 +8,7 @@ import ( ) // DomainConfig represents a custom domain config -type DomainConfig struct { +type domainConfig struct { Domain string Certificate string Key string @@ -18,15 +18,15 @@ type DomainConfig struct { } // MultiDomainConfig represents a group of custom domain configs -type MultiDomainConfig struct { - Domains []DomainConfig +type multiDomainConfig struct { + Domains []domainConfig HTTPSOnly bool `json:"https_only"` ID uint64 `json:"id"` AccessControl bool `json:"access_control"` } // ProjectConfig is a project-level configuration -type ProjectConfig struct { +type projectConfig struct { NamespaceProject bool HTTPSOnly bool AccessControl bool @@ -34,7 +34,7 @@ type ProjectConfig struct { } // Valid validates a custom domain config for a root domain -func (c *DomainConfig) Valid(rootDomain string) bool { +func (c *domainConfig) Valid(rootDomain string) bool { if c.Domain == "" { return false } @@ -46,7 +46,7 @@ func (c *DomainConfig) Valid(rootDomain string) bool { } // Read reads a multi domain config and decodes it from a `config.json` -func (c *MultiDomainConfig) Read(group, project string) error { +func (c *multiDomainConfig) Read(group, project string) error { configFile, err := os.Open(filepath.Join(group, project, "config.json")) if err != nil { return err diff --git a/internal/source/disk/config_test.go b/internal/source/disk/config_test.go index c0e22c04..1bb2364a 100644 --- a/internal/source/disk/config_test.go +++ b/internal/source/disk/config_test.go @@ -14,25 +14,25 @@ const invalidConfig = `{"Domains":{}}` const validConfig = `{"Domains":[{"Domain":"test"}]}` func TestDomainConfigValidness(t *testing.T) { - d := DomainConfig{} + d := domainConfig{} require.False(t, d.Valid("gitlab.io")) - d = DomainConfig{Domain: "test"} + d = domainConfig{Domain: "test"} require.True(t, d.Valid("gitlab.io")) - d = DomainConfig{Domain: "test"} + d = domainConfig{Domain: "test"} require.True(t, d.Valid("gitlab.io")) - d = DomainConfig{Domain: "test.gitlab.io"} + d = domainConfig{Domain: "test.gitlab.io"} require.False(t, d.Valid("gitlab.io")) - d = DomainConfig{Domain: "test.test.gitlab.io"} + d = domainConfig{Domain: "test.test.gitlab.io"} require.False(t, d.Valid("gitlab.io")) - d = DomainConfig{Domain: "test.testgitlab.io"} + d = domainConfig{Domain: "test.testgitlab.io"} require.True(t, d.Valid("gitlab.io")) - d = DomainConfig{Domain: "test.GitLab.Io"} + d = domainConfig{Domain: "test.GitLab.Io"} require.False(t, d.Valid("gitlab.io")) } @@ -40,26 +40,26 @@ func TestDomainConfigRead(t *testing.T) { cleanup := setUpTests(t) defer cleanup() - d := MultiDomainConfig{} + d := multiDomainConfig{} err := d.Read("test-group", "test-project") require.Error(t, err) os.MkdirAll(filepath.Dir(configFile), 0700) defer os.RemoveAll("test-group") - d = MultiDomainConfig{} + d = multiDomainConfig{} err = d.Read("test-group", "test-project") require.Error(t, err) err = ioutil.WriteFile(configFile, []byte(invalidConfig), 0600) require.NoError(t, err) - d = MultiDomainConfig{} + d = multiDomainConfig{} err = d.Read("test-group", "test-project") require.Error(t, err) err = ioutil.WriteFile(configFile, []byte(validConfig), 0600) require.NoError(t, err) - d = MultiDomainConfig{} + d = multiDomainConfig{} err = d.Read("test-group", "test-project") require.NoError(t, err) } diff --git a/internal/source/disk/group.go b/internal/source/disk/group.go index fd96124d..0c8d0810 100644 --- a/internal/source/disk/group.go +++ b/internal/source/disk/group.go @@ -28,10 +28,10 @@ type Group struct { projects projects } -type projects map[string]*ProjectConfig +type projects map[string]*projectConfig type subgroups map[string]*Group -func (g *Group) digProjectWithSubpath(parentPath string, keys []string) (*ProjectConfig, string, string) { +func (g *Group) digProjectWithSubpath(parentPath string, keys []string) (*projectConfig, string, string) { if len(keys) >= 1 { head := keys[0] tail := keys[1:] @@ -52,7 +52,7 @@ func (g *Group) digProjectWithSubpath(parentPath string, keys []string) (*Projec // Look up a project inside the domain based on the host and path. Returns the // project and its name (if applicable) -func (g *Group) getProjectConfigWithSubpath(r *http.Request) (*ProjectConfig, string, string) { +func (g *Group) getProjectConfigWithSubpath(r *http.Request) (*projectConfig, string, string) { // Check for a project specified in the URL: http://group.gitlab.io/projectA // If present, these projects shadow the group domain. split := strings.SplitN(r.URL.Path, "/", maxProjectDepth) diff --git a/internal/source/disk/group_domain_test.go b/internal/source/disk/group_domain_test.go index 8fcb0f1b..3b4471f4 100644 --- a/internal/source/disk/group_domain_test.go +++ b/internal/source/disk/group_domain_test.go @@ -31,11 +31,11 @@ func testGroupServeHTTPHost(t *testing.T, host string) { Group: "group", GroupConfig: &Group{ name: "group", - projects: map[string]*ProjectConfig{ - "group.test.io": &ProjectConfig{}, - "group.gitlab-example.com": &ProjectConfig{}, - "project": &ProjectConfig{}, - "project2": &ProjectConfig{}, + projects: map[string]*projectConfig{ + "group.test.io": &projectConfig{}, + "group.gitlab-example.com": &projectConfig{}, + "project": &projectConfig{}, + "project2": &projectConfig{}, }, }, } @@ -112,7 +112,7 @@ func TestIsHTTPSOnly(t *testing.T) { Project: "project", GroupConfig: &Group{ name: "group", - projects: projects{"test-domain": &ProjectConfig{HTTPSOnly: true}}, + projects: projects{"test-domain": &projectConfig{HTTPSOnly: true}}, }, }, url: "http://test-domain", @@ -125,7 +125,7 @@ func TestIsHTTPSOnly(t *testing.T) { Project: "project", GroupConfig: &Group{ name: "group", - projects: projects{"test-domain": &ProjectConfig{HTTPSOnly: false}}, + projects: projects{"test-domain": &projectConfig{HTTPSOnly: false}}, }, }, url: "http://test-domain", @@ -138,7 +138,7 @@ func TestIsHTTPSOnly(t *testing.T) { Group: "group", GroupConfig: &Group{ name: "group", - projects: projects{"test-domain": &ProjectConfig{HTTPSOnly: true}}, + projects: projects{"test-domain": &projectConfig{HTTPSOnly: true}}, }, }, url: "http://Test-domain", @@ -151,7 +151,7 @@ func TestIsHTTPSOnly(t *testing.T) { Group: "group", GroupConfig: &Group{ name: "group", - projects: projects{"project": &ProjectConfig{HTTPSOnly: true}}, + projects: projects{"project": &projectConfig{HTTPSOnly: true}}, }, }, url: "http://test-domain/project", @@ -164,7 +164,7 @@ func TestIsHTTPSOnly(t *testing.T) { Group: "group", GroupConfig: &Group{ name: "group", - projects: projects{"project": &ProjectConfig{HTTPSOnly: false}}, + projects: projects{"project": &projectConfig{HTTPSOnly: false}}, }, }, url: "http://test-domain/project", @@ -225,11 +225,11 @@ func TestGroupServeHTTPGzip(t *testing.T) { Group: "group", GroupConfig: &Group{ name: "group", - projects: map[string]*ProjectConfig{ - "group.test.io": &ProjectConfig{}, - "group.gitlab-example.com": &ProjectConfig{}, - "project": &ProjectConfig{}, - "project2": &ProjectConfig{}, + projects: map[string]*projectConfig{ + "group.test.io": &projectConfig{}, + "group.gitlab-example.com": &projectConfig{}, + "project": &projectConfig{}, + "project2": &projectConfig{}, }, }, } @@ -293,12 +293,12 @@ func TestGroup404ServeHTTP(t *testing.T) { Group: "group.404", GroupConfig: &Group{ name: "group.404", - projects: map[string]*ProjectConfig{ - "domain.404": &ProjectConfig{}, - "group.404.test.io": &ProjectConfig{}, - "project.404": &ProjectConfig{}, - "project.404.symlink": &ProjectConfig{}, - "project.no.404": &ProjectConfig{}, + projects: map[string]*projectConfig{ + "domain.404": &projectConfig{}, + "group.404.test.io": &projectConfig{}, + "project.404": &projectConfig{}, + "project.404.symlink": &projectConfig{}, + "project.no.404": &projectConfig{}, }, }, } @@ -389,8 +389,8 @@ func TestCacheControlHeaders(t *testing.T) { Group: "group", GroupConfig: &Group{ name: "group", - projects: map[string]*ProjectConfig{ - "group.test.io": &ProjectConfig{}, + projects: map[string]*projectConfig{ + "group.test.io": &projectConfig{}, }, }, } diff --git a/internal/source/disk/group_test.go b/internal/source/disk/group_test.go index 2aa3fc4e..d0fb49bd 100644 --- a/internal/source/disk/group_test.go +++ b/internal/source/disk/group_test.go @@ -8,13 +8,13 @@ import ( ) func TestGroupDig(t *testing.T) { - matchingProject := &ProjectConfig{ID: 1} + matchingProject := &projectConfig{ID: 1} tests := []struct { name string g Group path string - expectedProject *ProjectConfig + expectedProject *projectConfig expectedProjectPath string expectedPath string }{ @@ -49,7 +49,7 @@ func TestGroupDig(t *testing.T) { projects: projects{"projectb": matchingProject}, subgroups: subgroups{ "sub1": &Group{ - projects: projects{"another": &ProjectConfig{}}, + projects: projects{"another": &projectConfig{}}, }, }, }, @@ -66,7 +66,7 @@ func TestGroupDig(t *testing.T) { projects: projects{"projectb": matchingProject}, }, }, - projects: projects{"another": &ProjectConfig{}}, + projects: projects{"another": &projectConfig{}}, }, expectedProject: matchingProject, expectedProjectPath: "sub1/projectb", @@ -78,7 +78,7 @@ func TestGroupDig(t *testing.T) { g: Group{ subgroups: subgroups{ "sub1": &Group{ - projects: projects{"another": &ProjectConfig{}}, + projects: projects{"another": &projectConfig{}}, }, }, }, diff --git a/internal/source/disk/map.go b/internal/source/disk/map.go index aee03813..2a6ada2d 100644 --- a/internal/source/disk/map.go +++ b/internal/source/disk/map.go @@ -35,7 +35,7 @@ func (dm Map) updateDomainMap(domainName string, domain *domain.Domain) { dm[domainName] = domain } -func (dm Map) addDomain(rootDomain, groupName, projectName string, config *DomainConfig) { +func (dm Map) addDomain(rootDomain, groupName, projectName string, config *domainConfig) { newDomain := &domain.Domain{ Group: groupName, Project: projectName, @@ -88,7 +88,7 @@ func (dm Map) updateGroupDomain(rootDomain, groupName, projectPath string, https g = subgroup } - g.projects[projectName] = &ProjectConfig{ + g.projects[projectName] = &projectConfig{ NamespaceProject: domainName == projectName, HTTPSOnly: httpsOnly, AccessControl: accessControl, @@ -98,7 +98,7 @@ func (dm Map) updateGroupDomain(rootDomain, groupName, projectPath string, https dm[domainName] = groupDomain } -func (dm Map) readProjectConfig(rootDomain string, group, projectName string, config *MultiDomainConfig) { +func (dm Map) readProjectConfig(rootDomain string, group, projectName string, config *multiDomainConfig) { if config == nil { // This is necessary to preserve the previous behaviour where a // group domain is created even if no config.json files are @@ -140,7 +140,7 @@ func readProject(group, parent, projectName string, level int, fanIn chan<- jobR // We read the config.json file _before_ fanning in, because it does disk // IO and it does not need access to the domains map. - config := &MultiDomainConfig{} + config := &multiDomainConfig{} if err := config.Read(group, projectPath); err != nil { config = nil } @@ -172,7 +172,7 @@ func readProjects(group, parent string, level int, buf []byte, fanIn chan<- jobR type jobResult struct { group string project string - config *MultiDomainConfig + config *multiDomainConfig } // ReadGroups walks the pages directory and populates dm with all the domains it finds. |