Fix daemonset dependency panic when POD_NAME is unset

Simple refactor
This commit is contained in:
Michał Żyłowski 2017-01-17 16:22:19 +01:00
parent aa68192110
commit e072c1d986
3 changed files with 17 additions and 16 deletions

View File

@ -23,6 +23,7 @@ func init() {
daemonset, err := NewDaemonset(dep)
if err != nil {
logger.Error.Printf("Cannot initialize daemonset: %v", err)
continue
}
entry.Register(daemonset)
}
@ -31,7 +32,7 @@ func init() {
func NewDaemonset(name string) (*Daemonset, error) {
if os.Getenv("POD_NAME") == "" {
return nil, fmt.Errorf("Env POD_NAME not set")
return nil, fmt.Errorf("Env POD_NAME not set. Daemonset dependency %s will be ignored!", name)
}
return &Daemonset{
name: name,

View File

@ -16,6 +16,12 @@ const (
interval = 2
)
//Resolver is an interface which all dependencies should implement
type Resolver interface {
IsResolved(entrypoint EntrypointInterface) (bool, error)
GetName() string
}
type EntrypointInterface interface {
Resolve()
Client() cli.ClientInterface
@ -28,6 +34,14 @@ type Entrypoint struct {
namespace string
}
//Register is a function which registers new dependencies
func Register(res Resolver) {
if res == nil {
panic("Entrypoint: could not register nil Resolver")
}
dependencies = append(dependencies, res)
}
//New is a constructor for entrypoint
func New(config *rest.Config) (entry *Entrypoint, err error) {
entry = new(Entrypoint)
@ -74,17 +88,3 @@ func (e Entrypoint) Resolve() {
wg.Wait()
}
//Resolver is an interface which all dependencies should implement
type Resolver interface {
IsResolved(entrypoint EntrypointInterface) (bool, error)
GetName() string
}
//Register is a function which registers new dependencies
func Register(res Resolver) {
if res == nil {
panic("Entrypoint: could not register nil Resolver")
}
dependencies = append(dependencies, res)
}

View File

@ -17,5 +17,5 @@ var (
func init() {
Info = log.New(os.Stdout, "Entrypoint INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
Warning = log.New(os.Stdout, "Entrypoint WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)
Error = log.New(os.Stderr, "Entrypoint Error: ", log.Ldate|log.Ltime|log.Lshortfile)
Error = log.New(os.Stderr, "Entrypoint ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
}