This repository has been archived by the owner on Nov 4, 2022. It is now read-only.
/
config.go
68 lines (50 loc) · 1.62 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package provider
import (
"os"
analysisdatastore "github.com/dpb587/boshua/analysis/datastore"
"github.com/dpb587/boshua/config"
compilationdatastore "github.com/dpb587/boshua/releaseversion/compilation/datastore"
releaseversiondatastore "github.com/dpb587/boshua/releaseversion/datastore"
stemcellversiondatastore "github.com/dpb587/boshua/stemcellversion/datastore"
"github.com/dpb587/boshua/task/scheduler"
"github.com/sirupsen/logrus"
yaml "gopkg.in/yaml.v2"
)
type Config struct {
*config.Config
logger logrus.FieldLogger
releaseFactory releaseversiondatastore.Factory
releaseIndices map[string]releaseversiondatastore.Index
releaseCompilationFactory compilationdatastore.Factory
releaseCompilationIndices map[string]compilationdatastore.Index
stemcellFactory stemcellversiondatastore.Factory
stemcellIndices map[string]stemcellversiondatastore.Index
analysisFactory analysisdatastore.Factory
analysisIndices map[string]analysisdatastore.Index
schedulerFactory scheduler.Factory
scheduler scheduler.Scheduler
}
func (c *Config) Marshal() ([]byte, error) {
if c.Config.RawConfig != nil {
return c.Config.RawConfig()
}
return yaml.Marshal(c.Config)
}
func (c *Config) GetLogger() logrus.FieldLogger {
c.requireLogger()
return c.logger
}
func (c *Config) AppendLoggerFields(fields logrus.Fields) {
c.requireLogger()
c.logger = c.logger.WithFields(fields)
}
func (c *Config) requireLogger() {
if c.logger != nil {
return
}
var logger = logrus.New()
logger.Out = os.Stderr
logger.Formatter = &logrus.JSONFormatter{}
logger.Level = logrus.Level(c.Config.Global.LogLevel)
c.logger = logger
}