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  }