agent: Add version to info output

This commit is contained in:
Armon Dadgar 2014-06-06 14:40:22 -07:00
parent a5f05fa902
commit 42e3729a7c
4 changed files with 40 additions and 10 deletions

View File

@ -514,6 +514,16 @@ func (a *Agent) Stats() map[string]map[string]string {
"checks": toString(uint64(len(a.state.checks))), "checks": toString(uint64(len(a.state.checks))),
"services": toString(uint64(len(a.state.services))), "services": toString(uint64(len(a.state.services))),
} }
revision := a.config.Revision
if len(revision) > 8 {
revision = revision[:8]
}
stats["build"] = map[string]string{
"revision": revision,
"version": a.config.Version,
"prerelease": a.config.VersionPrerelease,
}
return stats return stats
} }

View File

@ -25,6 +25,9 @@ var gracefulTimeout = 5 * time.Second
// ShutdownCh. If two messages are sent on the ShutdownCh it will forcibly // ShutdownCh. If two messages are sent on the ShutdownCh it will forcibly
// exit. // exit.
type Command struct { type Command struct {
Revision string
Version string
VersionPrerelease string
Ui cli.Ui Ui cli.Ui
ShutdownCh <-chan struct{} ShutdownCh <-chan struct{}
args []string args []string
@ -124,6 +127,11 @@ func (c *Command) readConfig() *Config {
c.Ui.Error("WARNING: Windows is not recommended as a Consul server. Do not use in production.") c.Ui.Error("WARNING: Windows is not recommended as a Consul server. Do not use in production.")
} }
// Set the version info
config.Revision = c.Revision
config.Version = c.Version
config.VersionPrerelease = c.VersionPrerelease
return config return config
} }

View File

@ -154,6 +154,15 @@ type Config struct {
// ConsulConfig can either be provided or a default one created // ConsulConfig can either be provided or a default one created
ConsulConfig *consul.Config `mapstructure:"-" json:"-"` ConsulConfig *consul.Config `mapstructure:"-" json:"-"`
// Revision is the GitCommit this maps to
Revision string `mapstructure:"-"`
// Version is the release version number
Version string `mapstructure:"-"`
// VersionPrerelease is a label for pre-release builds
VersionPrerelease string `mapstructure:"-"`
} }
type dirEnts []os.FileInfo type dirEnts []os.FileInfo

View File

@ -17,6 +17,9 @@ func init() {
Commands = map[string]cli.CommandFactory{ Commands = map[string]cli.CommandFactory{
"agent": func() (cli.Command, error) { "agent": func() (cli.Command, error) {
return &agent.Command{ return &agent.Command{
Revision: GitCommit,
Version: Version,
VersionPrerelease: VersionPrerelease,
Ui: ui, Ui: ui,
ShutdownCh: make(chan struct{}), ShutdownCh: make(chan struct{}),
}, nil }, nil