MCPcopy Index your code
hub / github.com/smallstep/cli / Daemon

Method Daemon

command/ca/renew.go:586–619  ·  view source on GitHub ↗
(outFile string, next, expiresIn, renewPeriod time.Duration, afterRenew func() error)

Source from the content-addressed store, hash-verified

584}
585
586func (r *renewer) Daemon(outFile string, next, expiresIn, renewPeriod time.Duration, afterRenew func() error) error {
587 // Loggers
588 infoLog := log.New(os.Stdout, "INFO: ", log.LstdFlags)
589 errLog := log.New(os.Stderr, "ERROR: ", log.LstdFlags)
590
591 // Daemon loop
592 signals := make(chan os.Signal, 1)
593 signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
594 defer signal.Stop(signals)
595
596 infoLog.Printf("first renewal in %s", next.Round(time.Second))
597 var err error
598 for {
599 select {
600 case sig := <-signals:
601 switch sig {
602 case syscall.SIGHUP:
603 if next, err = r.RenewAndPrepareNext(outFile, expiresIn, renewPeriod); err != nil {
604 errLog.Println(err)
605 } else if err := afterRenew(); err != nil {
606 errLog.Println(err)
607 }
608 case syscall.SIGINT, syscall.SIGTERM:
609 return nil
610 }
611 case <-time.After(next):
612 if next, err = r.RenewAndPrepareNext(outFile, expiresIn, renewPeriod); err != nil {
613 errLog.Println(err)
614 } else if err := afterRenew(); err != nil {
615 errLog.Println(err)
616 }
617 }
618 }
619}
620
621// RenewWithToken creates an authorization token with the given certificate and
622// attempts to renew the given certificate. It can be used to renew expired

Callers 2

rekeyCertificateActionFunction · 0.80
renewCertificateActionFunction · 0.80

Calls 1

RenewAndPrepareNextMethod · 0.95

Tested by

no test coverage detected