github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/cmd/jujud/agent/machine/stateflag.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package machine 5 6 import ( 7 "gopkg.in/juju/worker.v1" 8 "gopkg.in/juju/worker.v1/dependency" 9 10 "github.com/juju/juju/cmd/jujud/agent/engine" 11 ) 12 13 // isControllerFlagManifold returns a dependency.Manifold which requires 14 // State, and returns a worker implementing engine.Flag, whose Check method 15 // always returns true. This is used for flagging that the machine is a 16 // controller/model manager. 17 func isControllerFlagManifold() dependency.Manifold { 18 return dependency.Manifold{ 19 Inputs: []string{stateName}, 20 Output: engine.FlagOutput, 21 Start: func(context dependency.Context) (worker.Worker, error) { 22 if err := context.Get(stateName, nil); err != nil { 23 return nil, err 24 } 25 return engine.NewStaticFlagWorker(true), nil 26 }, 27 } 28 }