github.com/verrazzano/verrazzano@v1.7.1/tools/psr/backend/workers/example/worker.go (about) 1 // Copyright (c) 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 // Package example has an example worker is used as the default worker when the helm chart is run without specifying a worker 5 // override file. 6 package example 7 8 import ( 9 "github.com/prometheus/client_golang/prometheus" 10 "github.com/verrazzano/verrazzano/pkg/log/vzlog" 11 "github.com/verrazzano/verrazzano/tools/psr/backend/config" 12 "github.com/verrazzano/verrazzano/tools/psr/backend/osenv" 13 "github.com/verrazzano/verrazzano/tools/psr/backend/spi" 14 ) 15 16 type state struct { 17 loggedLinesTotal int64 18 } 19 type exampleWorker struct { 20 *state 21 } 22 23 var _ spi.Worker = exampleWorker{} 24 25 func NewExampleWorker() (spi.Worker, error) { 26 return exampleWorker{&state{}}, nil 27 } 28 29 // GetWorkerDesc returns the WorkerDesc for the worker 30 func (w exampleWorker) GetWorkerDesc() spi.WorkerDesc { 31 return spi.WorkerDesc{ 32 WorkerType: config.WorkerTypeExample, 33 Description: "Example worker that demonstrates executing a fake use case", 34 MetricsPrefix: config.WorkerTypeExample, 35 } 36 } 37 38 func (w exampleWorker) GetEnvDescList() []osenv.EnvVarDesc { 39 return []osenv.EnvVarDesc{} 40 } 41 42 func (w exampleWorker) GetMetricDescList() []prometheus.Desc { 43 return nil 44 } 45 46 func (w exampleWorker) GetMetricList() []prometheus.Metric { 47 return nil 48 } 49 50 func (w exampleWorker) WantLoopInfoLogged() bool { 51 return true 52 } 53 54 func (w exampleWorker) PreconditionsMet() (bool, error) { 55 return true, nil 56 } 57 58 func (w exampleWorker) DoWork(conf config.CommonConfig, log vzlog.VerrazzanoLogger) error { 59 log.Infof("Example Worker doing work") 60 w.state.loggedLinesTotal++ 61 return nil 62 }