1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-06-08 06:41:56 +00:00
YAO-scheduler/src/configuration.go

44 lines
965 B
Go
Raw Normal View History

2020-06-14 13:12:22 +00:00
package main
import (
"sync"
log "github.com/sirupsen/logrus"
)
type Configuration struct {
KafkaBrokers []string `json:"kafkaBrokers"`
KafkaTopic string `json:"kafkaTopic"`
SchedulerPolicy string `json:"schedulerPolicy"`
mock bool
mu sync.Mutex
}
var ConfigurationInstance *Configuration
var ConfigurationInstanceLock sync.Mutex
func InstanceOfConfiguration() *Configuration {
ConfigurationInstanceLock.Lock()
defer ConfigurationInstanceLock.Unlock()
if ConfigurationInstance == nil {
ConfigurationInstance = &Configuration{mock: false}
}
return ConfigurationInstance
}
func (config *Configuration) EnableMock() bool {
config.mu.Lock()
defer config.mu.Unlock()
config.mock = true
log.Info("configuration.mock = true")
return true
}
func (config *Configuration) DisableMock() bool {
config.mu.Lock()
defer config.mu.Unlock()
config.mock = false
log.Info("configuration.mock = false")
return true
}