| Index: tokenserver/appengine/impl/certchecker/warmup.go
 | 
| diff --git a/tokenserver/appengine/impl/certchecker/warmup.go b/tokenserver/appengine/impl/certchecker/warmup.go
 | 
| index 8307d0aaac1f54b3999501e45d7eaec2d50e7f3c..713b298249f1b8d091f97e12606d8c2103064c96 100644
 | 
| --- a/tokenserver/appengine/impl/certchecker/warmup.go
 | 
| +++ b/tokenserver/appengine/impl/certchecker/warmup.go
 | 
| @@ -7,12 +7,33 @@ package certchecker
 | 
|  import (
 | 
|  	"golang.org/x/net/context"
 | 
|  
 | 
| +	"github.com/luci/luci-go/common/errors"
 | 
| +	"github.com/luci/luci-go/common/logging"
 | 
|  	"github.com/luci/luci-go/server/warmup"
 | 
| +	"github.com/luci/luci-go/tokenserver/appengine/impl/certconfig"
 | 
|  )
 | 
|  
 | 
|  func init() {
 | 
|  	warmup.Register("tokenserver/appengine/impl/certchecker", func(c context.Context) error {
 | 
| -		// TODO
 | 
| -		return nil
 | 
| +		names, err := certconfig.ListCAs(c)
 | 
| +		if err != nil {
 | 
| +			return err
 | 
| +		}
 | 
| +		var merr errors.MultiError
 | 
| +		for _, cn := range names {
 | 
| +			logging.Infof(c, "Warming up %q", cn)
 | 
| +			checker, err := GetCertChecker(c, cn)
 | 
| +			if err == nil {
 | 
| +				_, err = checker.GetCA(c)
 | 
| +			}
 | 
| +			if err != nil {
 | 
| +				logging.WithError(err).Warningf(c, "Failed to warm up %q", cn)
 | 
| +				merr = append(merr, err)
 | 
| +			}
 | 
| +		}
 | 
| +		if len(merr) == 0 {
 | 
| +			return nil
 | 
| +		}
 | 
| +		return merr
 | 
|  	})
 | 
|  }
 | 
| 
 |