Documentation
¶
Overview ¶
Package checkpoint is a package for checking version information and alerts for a Weaveworks product.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsCheckDisabled ¶
func IsCheckDisabled() bool
IsCheckDisabled returns true if checks are disabled.
Types ¶
type CheckAlert ¶
CheckAlert is a single alert message from a check request.
These never have to be manually constructed, and are typically populated into a CheckResponse as a result of the Check request.
type CheckParams ¶
type CheckParams struct {
// Product and version are used to lookup the correct product and
// alerts for the proper version. The version is also used to perform
// a version check.
Product string
Version string
// Generic product flags
Flags map[string]string
ExtraFlags func() []Flag
// Arch and OS are used to filter alerts potentially only to things
// affecting a specific os/arch combination. If these aren't specified,
// they'll be automatically filled in.
Arch string
OS string
// Signature is some random signature that should be stored and used
// as a cookie-like value. This ensures that alerts aren't repeated.
// If the signature is changed, repeat alerts may be sent down. The
// signature should NOT be anything identifiable to a user (such as
// a MAC address). It should be random.
//
// If SignatureFile is given, then the signature will be read from this
// file. If the file doesn't exist, then a random signature will
// automatically be generated and stored here. SignatureFile will be
// ignored if Signature is given.
Signature string
SignatureFile string
// CacheFile, if specified, will cache the result of a check. The
// duration of the cache is specified by CacheDuration, and defaults
// to 48 hours if not specified. If the CacheFile is newer than the
// CacheDuration, than the Check will short-circuit and use those
// results.
//
// If the CacheFile directory doesn't exist, it will be created with
// permissions 0755.
CacheFile string
CacheDuration time.Duration
// Force, if true, will force the check even if CHECKPOINT_DISABLE
// is set. Within HashiCorp products, this is ONLY USED when the user
// specifically requests it. This is never automatically done without
// the user's consent.
Force bool
}
CheckParams are the parameters for configuring a check request.
type CheckResponse ¶
type CheckResponse struct {
Product string
CurrentVersion string `json:"current_version"`
CurrentReleaseDate int `json:"current_release_date"`
CurrentDownloadURL string `json:"current_download_url"`
CurrentChangelogURL string `json:"current_changelog_url"`
ProjectWebsite string `json:"project_website"`
Outdated bool `json:"outdated"`
Alerts []*CheckAlert
}
CheckResponse is the response for a check request.
func Check ¶
func Check(p *CheckParams) (*CheckResponse, error)
Check checks for alerts and new version information.
type Checker ¶
type Checker struct {
// contains filtered or unexported fields
}
Checker is a state of a checker.
func CheckInterval ¶
func CheckInterval(p *CheckParams, interval time.Duration, cb func(*CheckResponse, error)) *Checker
CheckInterval is used to check for a response on a given interval duration. The interval is not exact, and checks are randomized to prevent a thundering herd. However, it is expected that on average one check is performed per interval. The first check happens immediately after a goroutine which is responsible for making checks has been started.
func (*Checker) NextCheckAt ¶
NextCheckAt returns at what time next check will happen.