Skip to content

Commit

Permalink
etcdctl: add discovery-srv global flag for v3
Browse files Browse the repository at this point in the history
  • Loading branch information
jiaxuanzhou committed Aug 29, 2017
1 parent 3e32cd3 commit b9ca1d2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
28 changes: 18 additions & 10 deletions etcdctl/ctlv3/command/global.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ type GlobalFlags struct {
}

type secureCfg struct {
cert string
key string
cacert string

cert string
key string
cacert string
serverName string
insecureTransport bool
insecureSkipVerify bool
}
Expand Down Expand Up @@ -189,14 +189,15 @@ func dialTimeoutFromCmd(cmd *cobra.Command) time.Duration {
}

func secureCfgFromCmd(cmd *cobra.Command) *secureCfg {
cert, key, cacert := keyAndCertFromCmd(cmd)
cert, key, cacert, serverName := keyAndCertFromCmd(cmd)
insecureTr := insecureTransportFromCmd(cmd)
skipVerify := insecureSkipVerifyFromCmd(cmd)

return &secureCfg{
cert: cert,
key: key,
cacert: cacert,
cert: cert,
key: key,
cacert: cacert,
serverName: serverName,

insecureTransport: insecureTr,
insecureSkipVerify: skipVerify,
Expand All @@ -219,7 +220,7 @@ func insecureSkipVerifyFromCmd(cmd *cobra.Command) bool {
return skipVerify
}

func keyAndCertFromCmd(cmd *cobra.Command) (cert, key, cacert string) {
func keyAndCertFromCmd(cmd *cobra.Command) (cert, key, cacert, serverName string) {
var err error
if cert, err = cmd.Flags().GetString("cert"); err != nil {
ExitWithError(ExitBadArgs, err)
Expand All @@ -239,7 +240,14 @@ func keyAndCertFromCmd(cmd *cobra.Command) (cert, key, cacert string) {
ExitWithError(ExitBadArgs, errors.New("empty string is passed to --cacert option"))
}

return cert, key, cacert
// TODO: reconstruct the duplicated code
if serverName, err = cmd.Flags().GetString("discovery-srv"); err != nil {
ExitWithError(ExitBadArgs, err)
} else if serverName == "" && cmd.Flags().Changed("discovery-srv") {
ExitWithError(ExitBadArgs, errors.New("empty string is passed to --discovery-srv option"))
}

return cert, key, cacert, serverName
}

func authCfgFromCmd(cmd *cobra.Command) *authCfg {
Expand Down
1 change: 1 addition & 0 deletions etcdctl/ctlv3/ctl.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ func init() {
rootCmd.PersistentFlags().StringVar(&globalFlags.TLS.KeyFile, "key", "", "identify secure client using this TLS key file")
rootCmd.PersistentFlags().StringVar(&globalFlags.TLS.CAFile, "cacert", "", "verify certificates of TLS-enabled secure servers using this CA bundle")
rootCmd.PersistentFlags().StringVar(&globalFlags.User, "user", "", "username[:password] for authentication (prompt if password is not supplied)")
rootCmd.PersistentFlags().StringVar(&globalFlags.TLS.ServerName, "discovery-srv", "", "domain name to query for SRV records describing cluster endpoints")

rootCmd.AddCommand(
command.NewGetCommand(),
Expand Down

0 comments on commit b9ca1d2

Please sign in to comment.