Skip to content

Commit

Permalink
Adds version info back into the config.
Browse files Browse the repository at this point in the history
In hashicorp#2191 I accedentally broke SCADA by not populating the agent's version
information into the config structure. This adds it back, and makes the
distinction between the raw parts we send to APIs and the human form of
the version that we display.
  • Loading branch information
James Phillips committed Jul 20, 2016
1 parent 83bc68a commit e137f4d
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 22 deletions.
32 changes: 20 additions & 12 deletions command/agent/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,21 @@ var validDatacenter = regexp.MustCompile("^[a-zA-Z0-9_-]+$")
// ShutdownCh. If two messages are sent on the ShutdownCh it will forcibly
// exit.
type Command struct {
Version string
Ui cli.Ui
ShutdownCh <-chan struct{}
args []string
logFilter *logutils.LevelFilter
logOutput io.Writer
agent *Agent
rpcServer *AgentRPC
httpServers []*HTTPServer
dnsServer *DNSServer
scadaProvider *scada.Provider
scadaHttp *HTTPServer
Revision string
Version string
VersionPrerelease string
HumanVersion string
Ui cli.Ui
ShutdownCh <-chan struct{}
args []string
logFilter *logutils.LevelFilter
logOutput io.Writer
agent *Agent
rpcServer *AgentRPC
httpServers []*HTTPServer
dnsServer *DNSServer
scadaProvider *scada.Provider
scadaHttp *HTTPServer
}

// readConfig is responsible for setup of our configuration using
Expand Down Expand Up @@ -309,6 +312,11 @@ func (c *Command) readConfig() *Config {
c.Ui.Error("WARNING: Bootstrap mode enabled! Do not enable unless necessary")
}

// Set the version info
config.Revision = c.Revision
config.Version = c.Version
config.VersionPrerelease = c.VersionPrerelease

return config
}

Expand Down
6 changes: 3 additions & 3 deletions command/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ import (

// VersionCommand is a Command implementation prints the version.
type VersionCommand struct {
Version string
Ui cli.Ui
HumanVersion string
Ui cli.Ui
}

func (c *VersionCommand) Help() string {
return ""
}

func (c *VersionCommand) Run(_ []string) int {
c.Ui.Output(fmt.Sprintf("Consul Version: %s", c.Version))
c.Ui.Output(fmt.Sprintf("Consul Version: %s", c.HumanVersion))
c.Ui.Output(fmt.Sprintf("Supported Protocol Version(s): %d to %d",
consul.ProtocolVersionMin, consul.ProtocolVersionMax))
return 0
Expand Down
13 changes: 8 additions & 5 deletions commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@ func init() {
Commands = map[string]cli.CommandFactory{
"agent": func() (cli.Command, error) {
return &agent.Command{
Version: GetVersion(),
Ui: ui,
ShutdownCh: make(chan struct{}),
Revision: GitCommit,
Version: Version,
VersionPrerelease: VersionPrerelease,
HumanVersion: GetHumanVersion(),
Ui: ui,
ShutdownCh: make(chan struct{}),
}, nil
},

Expand Down Expand Up @@ -120,8 +123,8 @@ func init() {

"version": func() (cli.Command, error) {
return &command.VersionCommand{
Version: GetVersion(),
Ui: ui,
HumanVersion: GetHumanVersion(),
Ui: ui,
}, nil
},

Expand Down
5 changes: 3 additions & 2 deletions version.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ const Version = "0.7.0"
// such as "dev" (in development), "beta", "rc1", etc.
const VersionPrerelease = "dev"

// GetVersion returns the full version of Consul.
func GetVersion() string {
// GetHumanVersion composes the parts of the version in a way that's suitable
// for displaying to humans.
func GetHumanVersion() string {
version := Version
if GitDescribe != "" {
version = GitDescribe
Expand Down

0 comments on commit e137f4d

Please sign in to comment.