github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/worker/imagemetadataworker/metadataupdater.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package imagemetadataworker
     5  
     6  import (
     7  	"time"
     8  
     9  	"github.com/juju/juju/api/imagemetadata"
    10  	"github.com/juju/juju/worker"
    11  )
    12  
    13  // updatePublicImageMetadataPeriod is how frequently we check for
    14  // public image metadata updates.
    15  const updatePublicImageMetadataPeriod = time.Hour * 24
    16  
    17  // NewWorker returns a worker that lists published cloud
    18  // images metadata, and records them in state.
    19  func NewWorker(cl *imagemetadata.Client) worker.Worker {
    20  	// TODO (anastasiamac 2015-09-02) Bug#1491353 - don't ignore stop channel.
    21  	f := func(stop <-chan struct{}) error {
    22  		return cl.UpdateFromPublishedImages()
    23  	}
    24  	return worker.NewPeriodicWorker(f, updatePublicImageMetadataPeriod, worker.NewTimer)
    25  }